1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00

Fix PublishedReportRepository related class

This commit is contained in:
dengchao@xgtl 2020-04-17 11:22:41 +08:00
parent 5837db1bfd
commit 66e16dceba
4 changed files with 303 additions and 315 deletions

View File

@ -27,16 +27,19 @@ import com.chatopera.cc.util.dsdata.DSData;
import com.chatopera.cc.util.dsdata.DSDataEvent; import com.chatopera.cc.util.dsdata.DSDataEvent;
import com.chatopera.cc.util.dsdata.ExcelImportProecess; import com.chatopera.cc.util.dsdata.ExcelImportProecess;
import com.chatopera.cc.util.dsdata.export.ExcelExporterProcess; import com.chatopera.cc.util.dsdata.export.ExcelExporterProcess;
import lombok.RequiredArgsConstructor;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.http.HttpStatus;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.server.ResponseStatusException;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -48,85 +51,78 @@ import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@Controller @Controller
@RequiredArgsConstructor
@RequestMapping("/apps/report") @RequestMapping("/apps/report")
public class ReportController extends Handler { 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}") @Value("${web.upload-path}")
private String 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") @RequestMapping("/index")
@Menu(type = "setting" , subtype = "report" , admin= true) @Menu(type = "setting", subtype = "report", admin = true)
public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String dicid) { public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String dicid) {
if(!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { if (!StringUtils.isBlank(dicid) && !"0".equals(dicid)) {
map.put("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); 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)))); 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("reportList", reportRes.findByOrgi(super.getOrgi(request), PageRequest.of(super.getP(request), super.getPs(request))));
} }
map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request)));
return request(super.createAppsTempletResponse("/apps/business/report/index")); return request(super.createAppsTempletResponse("/apps/business/report/index"));
} }
@RequestMapping("/add") @RequestMapping("/add")
@Menu(type = "setting" , subtype = "reportadd" , admin= true) @Menu(type = "setting", subtype = "reportadd", admin = true)
public ModelAndView quickreplyadd(ModelMap map , HttpServletRequest request , @Valid String dicid) { public ModelAndView quickreplyadd(ModelMap map, HttpServletRequest request, @Valid String dicid) {
if(!StringUtils.isBlank(dicid)){ if (!StringUtils.isBlank(dicid)) {
map.addAttribute("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))) ; map.addAttribute("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request)));
} }
map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request)));
return request(super.createRequestPageTempletResponse("/apps/business/report/add")); return request(super.createRequestPageTempletResponse("/apps/business/report/add"));
} }
@RequestMapping("/save") @RequestMapping("/save")
@Menu(type = "setting" , subtype = "report" , admin= true) @Menu(type = "setting", subtype = "report", admin = true)
public ModelAndView quickreplysave(ModelMap map , HttpServletRequest request , @Valid Report report) { public ModelAndView quickreplysave(HttpServletRequest request, @Valid Report report) {
ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+report.getDicid())); ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + report.getDicid()));
if(!StringUtils.isBlank(report.getName())){ if (!StringUtils.isBlank(report.getName())) {
int count = reportRes.countByOrgiAndName(super.getOrgi(request), report.getName()) ; int count = reportRes.countByOrgiAndName(super.getOrgi(request), report.getName());
if(count == 0) { if (count == 0) {
report.setOrgi(super.getOrgi(request)); report.setOrgi(super.getOrgi(request));
report.setCreater(super.getUser(request).getId()); report.setCreater(super.getUser(request).getId());
report.setReporttype(MainContext.ReportType.REPORT.toString()); report.setReporttype(MainContext.ReportType.REPORT.toString());
report.setCode(MainUtils.genID()); report.setCode(MainUtils.genID());
reportRes.save(report) ; reportRes.save(report);
}else { } else {
view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=rt_name_exist&dicid="+report.getDicid())); view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=rt_name_exist&dicid=" + report.getDicid()));
} }
} }
return view ; return view;
} }
@RequestMapping("/delete") @RequestMapping("/delete")
@Menu(type = "setting" , subtype = "report" , admin= true) @Menu(type = "setting", subtype = "report", admin = true)
public ModelAndView quickreplydelete(ModelMap map , HttpServletRequest request , @Valid String id) { public ModelAndView quickreplydelete(@Valid String id) {
Report report = reportRes.findOne(id) ; Report report = reportRes.findById(id)
if(report!=null){ .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Report %s not found", id)));
reportRes.delete(report); reportRes.delete(report);
} return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + report.getDicid()));
return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+report.getDicid()));
} }
@RequestMapping("/edit") @RequestMapping("/edit")
@Menu(type = "setting" , subtype = "report" , admin= true) @Menu(type = "setting", subtype = "report", admin = true)
public ModelAndView quickreplyedit(ModelMap map , HttpServletRequest request , @Valid String id) { public ModelAndView quickreplyedit(ModelMap map, HttpServletRequest request, @Valid String id) {
Report report = reportRes.findOne(id); Report report = reportRes.findById(id).orElse(null);
map.put("report", report); map.put("report", report);
if (report != null) { if (report != null) {
map.put("dataDic", dataDicRes.findByIdAndOrgi(report.getDicid(), super.getOrgi(request))); map.put("dataDic", dataDicRes.findByIdAndOrgi(report.getDicid(), super.getOrgi(request)));
@ -136,83 +132,82 @@ public class ReportController extends Handler {
} }
@RequestMapping("/update") @RequestMapping("/update")
@Menu(type = "setting" , subtype = "report" , admin= true) @Menu(type = "setting", subtype = "report", admin = true)
public ModelAndView quickreplyupdate(ModelMap map , HttpServletRequest request , @Valid Report report) { public ModelAndView quickreplyupdate(@Valid Report report) {
if(!StringUtils.isBlank(report.getId())){ if (!StringUtils.isBlank(report.getId())) {
Report temp = reportRes.findOne(report.getId()) ; reportRes.findById(report.getId()).ifPresent(temp -> {
if(temp!=null) { temp.setName(report.getName());
temp.setName(report.getName()); temp.setCode(report.getCode());
temp.setCode(report.getCode()); temp.setDicid(report.getDicid());
temp.setDicid(report.getDicid()); temp.setUpdatetime(new Date());
temp.setUpdatetime(new Date()); temp.setDescription(report.getDescription());
temp.setDescription(report.getDescription()); reportRes.save(temp);
reportRes.save(temp) ; });
} }
} return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + report.getDicid()));
return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+report.getDicid()));
} }
@RequestMapping({"/addtype"}) @RequestMapping({"/addtype"})
@Menu(type="apps", subtype="kbs") @Menu(type = "apps", subtype = "kbs")
public ModelAndView addtype(ModelMap map , HttpServletRequest request , @Valid String dicid){ public ModelAndView addtype(ModelMap map, HttpServletRequest request, @Valid String dicid) {
map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request)));
if(!StringUtils.isBlank(dicid)){ if (!StringUtils.isBlank(dicid)) {
map.addAttribute("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))) ; map.addAttribute("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request)));
} }
return request(super.createRequestPageTempletResponse("/apps/business/report/addtype")); return request(super.createRequestPageTempletResponse("/apps/business/report/addtype"));
} }
@RequestMapping("/type/save") @RequestMapping("/type/save")
@Menu(type = "apps" , subtype = "report") @Menu(type = "apps", subtype = "report")
public ModelAndView typesave(HttpServletRequest request ,@Valid DataDic dataDic) { public ModelAndView typesave(HttpServletRequest request, @Valid DataDic dataDic) {
List<DataDic> dicList = dataDicRes.findByOrgiAndName(super.getOrgi(request),dataDic.getName()) ; List<DataDic> dicList = dataDicRes.findByOrgiAndName(super.getOrgi(request), dataDic.getName());
if(dicList!=null && dicList.size() > 0){ if (dicList != null && dicList.size() > 0) {
return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+dataDic.getParentid()+"&msg=qr_type_exist")); return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + dataDic.getParentid() + "&msg=qr_type_exist"));
}else { } else {
dataDic.setOrgi(super.getOrgi(request)); dataDic.setOrgi(super.getOrgi(request));
dataDic.setCreater(super.getUser(request).getId()); dataDic.setCreater(super.getUser(request).getId());
dataDic.setCreatetime(new Date()); dataDic.setCreatetime(new Date());
dataDic.setTabtype(MainContext.QuickType.PUB.toString()); dataDic.setTabtype(MainContext.QuickType.PUB.toString());
dataDicRes.save(dataDic) ; dataDicRes.save(dataDic);
} }
return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+dataDic.getId())); return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + dataDic.getId()));
} }
@RequestMapping({"/edittype"}) @RequestMapping({"/edittype"})
@Menu(type="apps", subtype="kbs") @Menu(type = "apps", subtype = "kbs")
public ModelAndView edittype(ModelMap map , HttpServletRequest request , String id){ public ModelAndView edittype(ModelMap map, HttpServletRequest request, String id) {
DataDic dataDic = dataDicRes.findByIdAndOrgi(id, super.getOrgi(request)) ; DataDic dataDic = dataDicRes.findByIdAndOrgi(id, super.getOrgi(request));
map.addAttribute("dataDic", dataDic) ; map.addAttribute("dataDic", dataDic);
if(dataDic!=null) { if (dataDic != null) {
map.addAttribute("parentDataDic", dataDicRes.findByIdAndOrgi(dataDic.getParentid(), super.getOrgi(request))) ; map.addAttribute("parentDataDic", dataDicRes.findByIdAndOrgi(dataDic.getParentid(), super.getOrgi(request)));
} }
map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request)));
return request(super.createRequestPageTempletResponse("/apps/business/report/edittype")); return request(super.createRequestPageTempletResponse("/apps/business/report/edittype"));
} }
@RequestMapping("/type/update") @RequestMapping("/type/update")
@Menu(type = "apps" , subtype = "report") @Menu(type = "apps", subtype = "report")
public ModelAndView typeupdate(HttpServletRequest request ,@Valid DataDic dataDic) { public ModelAndView typeupdate(HttpServletRequest request, @Valid DataDic dataDic) {
ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+dataDic.getId())); ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + dataDic.getId()));
DataDic tempDataDic= dataDicRes.findByIdAndOrgi(dataDic.getId(), super.getOrgi(request)) ; DataDic tempDataDic = dataDicRes.findByIdAndOrgi(dataDic.getId(), super.getOrgi(request));
if(tempDataDic !=null){ if (tempDataDic != null) {
//判断名称是否重复 //判断名称是否重复
List<DataDic> dicList = dataDicRes.findByOrgiAndNameAndIdNot(super.getOrgi(request) , dataDic.getName() , dataDic.getId()) ; List<DataDic> dicList = dataDicRes.findByOrgiAndNameAndIdNot(super.getOrgi(request), dataDic.getName(), dataDic.getId());
if(dicList!=null && dicList.size() > 0) { if (dicList != null && dicList.size() > 0) {
view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=qr_type_exist&dicid="+dataDic.getId())); view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=qr_type_exist&dicid=" + dataDic.getId()));
}else { } else {
tempDataDic.setName(dataDic.getName()); tempDataDic.setName(dataDic.getName());
tempDataDic.setDescription(dataDic.getDescription()); tempDataDic.setDescription(dataDic.getDescription());
tempDataDic.setParentid(dataDic.getParentid()); tempDataDic.setParentid(dataDic.getParentid());
dataDicRes.save(tempDataDic) ; dataDicRes.save(tempDataDic);
} }
} }
return view ; return view;
} }
@RequestMapping({"/deletetype"}) @RequestMapping({"/deletetype"})
@Menu(type="apps", subtype="kbs") @Menu(type = "apps", subtype = "kbs")
public ModelAndView deletetype(ModelMap map , HttpServletRequest request , @Valid String id) { public ModelAndView deletetype(HttpServletRequest request, @Valid String id) {
ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + id)); ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + id));
if (!StringUtils.isBlank(id)) { if (!StringUtils.isBlank(id)) {
DataDic tempDataDic = dataDicRes.findByIdAndOrgi(id, super.getOrgi(request)); 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)); view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=report_exist&dicid=" + id));
} }
} }
return view ; return view;
} }
@RequestMapping("/imp") @RequestMapping("/imp")
@Menu(type = "setting" , subtype = "reportimp") @Menu(type = "setting", subtype = "reportimp")
public ModelAndView imp(ModelMap map , HttpServletRequest request , @Valid String type) { public ModelAndView imp(ModelMap map, @Valid String type) {
map.addAttribute("type", type) ; map.addAttribute("type", type);
return request(super.createRequestPageTempletResponse("/apps/business/report/imp")); return request(super.createRequestPageTempletResponse("/apps/business/report/imp"));
} }
@RequestMapping("/impsave") @RequestMapping("/impsave")
@Menu(type = "setting" , subtype = "reportimpsave") @Menu(type = "setting", subtype = "reportimpsave")
public ModelAndView impsave(ModelMap map , HttpServletRequest request , @RequestParam(value = "cusfile", required = false) MultipartFile cusfile , @Valid String type) throws IOException { public ModelAndView impsave(HttpServletRequest request, @RequestParam(value = "cusfile", required = false) MultipartFile cusfile, @Valid String type) throws IOException {
DSDataEvent event = new DSDataEvent(); DSDataEvent event = new DSDataEvent();
String fileName = "quickreply/"+ MainUtils.getUUID()+cusfile.getOriginalFilename().substring(cusfile.getOriginalFilename().lastIndexOf(".")) ; String originalFilename = Objects.requireNonNull(cusfile.getOriginalFilename());
File excelFile = new File(path , fileName) ; String fileName = "quickreply/" + MainUtils.getUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));
if(!excelFile.getParentFile().exists()){ File excelFile = new File(path, fileName);
excelFile.getParentFile().mkdirs() ; if (!excelFile.getParentFile().exists()) {
} //noinspection ResultOfMethodCallIgnored
MetadataTable table = metadataRes.findByTablename("uk_report") ; excelFile.getParentFile().mkdirs();
if(table!=null){ }
FileUtils.writeByteArrayToFile(new File(path , fileName), cusfile.getBytes()); MetadataTable table = metadataRes.findByTablename("uk_report");
event.setDSData(new DSData(table,excelFile , cusfile.getContentType(), super.getUser(request))); if (table != null) {
event.getDSData().setClazz(Report.class); FileUtils.writeByteArrayToFile(new File(path, fileName), cusfile.getBytes());
event.setOrgi(super.getOrgi(request)); event.setDSData(new DSData(table, excelFile, cusfile.getContentType(), super.getUser(request)));
if(!StringUtils.isBlank(type)){ event.getDSData().setClazz(Report.class);
event.getValues().put("cate", type) ; event.setOrgi(super.getOrgi(request));
}else{ if (!StringUtils.isBlank(type)) {
event.getValues().put("cate", Constants.DEFAULT_TYPE) ; event.getValues().put("cate", type);
} } else {
event.getValues().put("type", MainContext.QuickType.PUB.toString()) ; event.getValues().put("cate", Constants.DEFAULT_TYPE);
event.getValues().put("creater", super.getUser(request).getId()) ; }
event.getValues().put("type", MainContext.QuickType.PUB.toString());
event.getValues().put("creater", super.getUser(request).getId());
// exchange.getDSData().setProcess(new QuickReplyProcess(reportRes)); // exchange.getDSData().setProcess(new QuickReplyProcess(reportRes));
// reporterRes.save(exchange.getDSData().getReport()) ; // 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") @RequestMapping("/batdelete")
@Menu(type = "setting" , subtype = "reportbatdelete") @Menu(type = "setting", subtype = "reportbatdelete")
public ModelAndView batdelete(ModelMap map , HttpServletRequest request , HttpServletResponse response , @Valid String[] ids ,@Valid String type) throws IOException { public ModelAndView batdelete(@Valid String[] ids, @Valid String type) {
if(ids!=null && ids.length > 0){ if (ids != null && ids.length > 0) {
Iterable<Report> topicList = reportRes.findAll(Arrays.asList(ids)) ; Iterable<Report> topicList = reportRes.findAllById(Arrays.asList(ids));
reportRes.delete(topicList); 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") @RequestMapping("/expids")
@Menu(type = "setting" , subtype = "reportexpids") @Menu(type = "setting", subtype = "reportexpids")
public void expids(ModelMap map , HttpServletRequest request , HttpServletResponse response , @Valid String[] ids) throws IOException { public void expids(HttpServletResponse response, @Valid String[] ids) throws IOException {
if(ids!=null && ids.length > 0) { if (ids != null && ids.length > 0) {
Iterable<Report> topicList = reportRes.findAll(Arrays.asList(ids)); Iterable<Report> topicList = reportRes.findAllById(Arrays.asList(ids));
MetadataTable table = metadataRes.findByTablename("uk_report"); MetadataTable table = metadataRes.findByTablename("uk_report");
List<Map<String, Object>> values = new ArrayList<Map<String, Object>>(); List<Map<String, Object>> values = new ArrayList<>();
for (Report topic : topicList) { for (Report topic : topicList) {
values.add(MainUtils.transBean2Map(topic)); values.add(MainUtils.transBean2Map(topic));
} }
@ -293,16 +290,15 @@ public class ReportController extends Handler {
} }
} }
return ;
} }
@RequestMapping("/expall") @RequestMapping("/expall")
@Menu(type = "setting" , subtype = "reportexpall") @Menu(type = "setting", subtype = "reportexpall")
public void expall(ModelMap map , HttpServletRequest request , HttpServletResponse response,@Valid String type) throws IOException { public void expall(HttpServletRequest request, HttpServletResponse response, @Valid String type) throws IOException {
List<Report> reportList = reportRes.findByOrgiAndDicid(super.getOrgi(request), type); List<Report> reportList = reportRes.findByOrgiAndDicid(super.getOrgi(request), type);
MetadataTable table = metadataRes.findByTablename("uk_report"); MetadataTable table = metadataRes.findByTablename("uk_report");
List<Map<String, Object>> values = new ArrayList<Map<String, Object>>(); List<Map<String, Object>> values = new ArrayList<>();
for (Report report : reportList) { for (Report report : reportList) {
values.add(MainUtils.transBean2Map(report)); values.add(MainUtils.transBean2Map(report));
} }
@ -313,77 +309,74 @@ public class ReportController extends Handler {
ExcelExporterProcess excelProcess = new ExcelExporterProcess(values, table, response.getOutputStream()); ExcelExporterProcess excelProcess = new ExcelExporterProcess(values, table, response.getOutputStream());
excelProcess.process(); excelProcess.process();
} }
return;
} }
@RequestMapping("/pbreportindex") @RequestMapping("/pbreportindex")
@Menu(type = "setting" , subtype = "pbreport" , admin= true) @Menu(type = "setting", subtype = "pbreport", admin = true)
public ModelAndView pbreportindex(ModelMap map , HttpServletRequest request , @Valid String dicid) { public ModelAndView pbreportindex(ModelMap map, HttpServletRequest request, @Valid String dicid) {
if(!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { if (!StringUtils.isBlank(dicid) && !"0".equals(dicid)) {
map.put("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); 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)))); 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("reportList", publishedReportRes.findByOrgi(super.getOrgi(request), PageRequest.of(super.getP(request), super.getPs(request))));
} }
map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request)));
return request(super.createAppsTempletResponse("/apps/business/report/pbreportindex")); return request(super.createAppsTempletResponse("/apps/business/report/pbreportindex"));
} }
@RequestMapping("/pbreportlist") @RequestMapping("/pbreportlist")
@Menu(type = "setting" , subtype = "pbreport" , admin= true) @Menu(type = "setting", subtype = "pbreport", admin = true)
public ModelAndView pbreportlist(ModelMap map , HttpServletRequest request , @Valid String dicid) { public ModelAndView pbreportlist(ModelMap map, HttpServletRequest request, @Valid String dicid) {
if(!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { if (!StringUtils.isBlank(dicid) && !"0".equals(dicid)) {
map.put("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); 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)))); 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("reportList", publishedReportRes.findByOrgi(super.getOrgi(request), PageRequest.of(super.getP(request), super.getPs(request))));
} }
map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request)));
return request(super.createRequestPageTempletResponse("/apps/business/report/pbreportlist")); return request(super.createRequestPageTempletResponse("/apps/business/report/pbreportlist"));
} }
@RequestMapping("/pbdelete") @RequestMapping("/pbdelete")
@Menu(type = "setting" , subtype = "pbreport" , admin= true) @Menu(type = "setting", subtype = "pbreport", admin = true)
public ModelAndView pbdelete(ModelMap map , HttpServletRequest request , @Valid String id) { public ModelAndView pbdelete(@Valid String id) {
PublishedReport report = publishedReportRes.findOne(id) ; PublishedReport report = publishedReportRes.findById(id).orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Report %s not found", id)));
if(report!=null){ publishedReportRes.delete(report);
publishedReportRes.delete(report); return request(super.createRequestPageTempletResponse("redirect:/apps/report/pbreportindex.html?dicid=" + report.getDicid()));
}
return request(super.createRequestPageTempletResponse("redirect:/apps/report/pbreportindex.html?dicid="+report.getDicid()));
} }
/** /**
* 报表 * 报表
*
* @param map
* @param request
* @param id
* @return
* @throws Exception
*/ */
@RequestMapping("/view") @RequestMapping("/view")
@Menu(type = "report", subtype = "report") @Menu(type = "report", subtype = "report")
public ModelAndView view(ModelMap map, HttpServletRequest request, @Valid String id) throws Exception { public ModelAndView view(ModelMap map, HttpServletRequest request, @Valid String id) {
if (!StringUtils.isBlank(id)) { if (!StringUtils.isBlank(id)) {
PublishedReport publishedReport = publishedReportRes.findById(id); publishedReportRes.findById(id).ifPresent(publishedReport -> {
if(publishedReport!=null) {
map.addAttribute("publishedReport", publishedReport); map.addAttribute("publishedReport", publishedReport);
map.addAttribute("report", publishedReport.getReport()); map.addAttribute("report", publishedReport.getReport());
map.addAttribute("reportModels", publishedReport.getReport().getReportModels()); map.addAttribute("reportModels", publishedReport.getReport().getReportModels());
List<ReportFilter> listFilters = publishedReport.getReport().getReportFilters(); List<ReportFilter> listFilters = publishedReport.getReport().getReportFilters();
if(!listFilters.isEmpty()) { if (!listFilters.isEmpty()) {
Map<String,ReportFilter> filterMap = new HashMap<String,ReportFilter>(); Map<String, ReportFilter> filterMap = new HashMap<>();
for(ReportFilter rf:listFilters) { for (ReportFilter rf : listFilters) {
filterMap.put(rf.getId(), rf); filterMap.put(rf.getId(), rf);
} }
for(ReportFilter rf:listFilters) { for (ReportFilter rf : listFilters) {
if(!StringUtils.isBlank(rf.getCascadeid())) { if (!StringUtils.isBlank(rf.getCascadeid())) {
rf.setChildFilter(filterMap.get(rf.getCascadeid())); rf.setChildFilter(filterMap.get(rf.getCascadeid()));
} }
} }
} }
map.addAttribute("reportFilters", reportCubeService.fillReportFilterData(listFilters, request)); try {
} List<ReportFilter> list = reportCubeService.fillReportFilterData(listFilters, request);
} map.addAttribute("reportFilters", list);
return request(super.createRequestPageTempletResponse("/apps/business/report/view")); } catch (Exception e) {
} e.printStackTrace();
}
});
}
return request(super.createRequestPageTempletResponse("/apps/business/report/view"));
}
} }

View File

@ -252,7 +252,7 @@ public class ReportDesignController extends Handler {
*/ */
@RequestMapping("/modeldesign") @RequestMapping("/modeldesign")
@Menu(type = "report", subtype = "reportdesign") @Menu(type = "report", subtype = "reportdesign")
public ModelAndView modeldesign(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String tabid, HashMap<String, String> semap) { public ModelAndView modeldesign(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String tabid) {
List<SysDic> tpDicList = Dict.getInstance().getDic(Constants.CSKEFU_SYSTEM_DIC); List<SysDic> tpDicList = Dict.getInstance().getDic(Constants.CSKEFU_SYSTEM_DIC);
for (SysDic sysDic : tpDicList) { for (SysDic sysDic : tpDicList) {
if (sysDic.getCode().equals("report")) { if (sysDic.getCode().equals("report")) {
@ -587,7 +587,7 @@ public class ReportDesignController extends Handler {
*/ */
@RequestMapping("/getelement") @RequestMapping("/getelement")
@Menu(type = "report", subtype = "reportdesign") @Menu(type = "report", subtype = "reportdesign")
public ModelAndView getelement(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String publishedid, HashMap<String, String> semap) { public ModelAndView getelement(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String publishedid) {
if (!StringUtils.isBlank(id)) { if (!StringUtils.isBlank(id)) {
ReportModel model = this.getModel(id, super.getOrgi(request), publishedid); ReportModel model = this.getModel(id, super.getOrgi(request), publishedid);
if (model != null) { if (model != null) {
@ -618,8 +618,9 @@ public class ReportDesignController extends Handler {
private ReportModel getModel(String id, String orgi, String publishedid) { private ReportModel getModel(String id, String orgi, String publishedid) {
if (!StringUtils.isBlank(publishedid)) { if (!StringUtils.isBlank(publishedid)) {
PublishedReport publishedReport = publishedReportRes.findById(publishedid); Optional<PublishedReport> optional = publishedReportRes.findById(publishedid);
if (publishedReport != null) { if (optional.isPresent()) {
PublishedReport publishedReport = optional.get();
if (publishedReport.getReport() != null && !publishedReport.getReport().getReportModels().isEmpty()) { if (publishedReport.getReport() != null && !publishedReport.getReport().getReportModels().isEmpty()) {
for (ReportModel rm : publishedReport.getReport().getReportModels()) { for (ReportModel rm : publishedReport.getReport().getReportModels()) {
if (rm.getId().equals(id)) { if (rm.getId().equals(id)) {
@ -997,7 +998,7 @@ public class ReportDesignController extends Handler {
@RequestMapping("/changechartppy") @RequestMapping("/changechartppy")
@Menu(type = "report", subtype = "reportdesign") @Menu(type = "report", subtype = "reportdesign")
public ModelAndView changechartppy(ModelMap map, HttpServletRequest request, @Valid ReportModel reportModel, @Valid ChartProperties chartProperties, HashMap<String, String> 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)); ReportModel model = this.getModel(reportModel.getId(), super.getOrgi(request));
if (null != model) { if (null != model) {
model.setExchangerw(reportModel.isExchangerw()); model.setExchangerw(reportModel.isExchangerw());
@ -1054,8 +1055,9 @@ public class ReportDesignController extends Handler {
} }
} }
} else { } else {
PublishedReport publishedReport = publishedReportRes.findById(publishedid); Optional<PublishedReport> optional = publishedReportRes.findById(publishedid);
if (publishedReport != null) { if (optional.isPresent()) {
PublishedReport publishedReport = optional.get();
map.addAttribute("publishedReport", publishedReport); map.addAttribute("publishedReport", publishedReport);
ReportFilter filter = null; ReportFilter filter = null;
for (ReportFilter f : publishedReport.getReport().getReportFilters()) { for (ReportFilter f : publishedReport.getReport().getReportFilters()) {

View File

@ -23,11 +23,11 @@ import com.chatopera.cc.persistence.repository.DataDicRepository;
import com.chatopera.cc.persistence.repository.PublishedReportRepository; import com.chatopera.cc.persistence.repository.PublishedReportRepository;
import com.chatopera.cc.persistence.repository.ReportCubeService; import com.chatopera.cc.persistence.repository.ReportCubeService;
import com.chatopera.cc.util.Menu; import com.chatopera.cc.util.Menu;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils; 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.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@ -41,66 +41,59 @@ import java.util.Map;
@Controller @Controller
@RequestMapping("/apps/view") @RequestMapping("/apps/view")
@RequiredArgsConstructor
public class ReportViewController extends Handler { public class ReportViewController extends Handler {
@Value("${web.upload-path}") @NonNull
private String path; private final DataDicRepository dataDicRes;
@NonNull
@Value("${uk.im.server.port}") private final PublishedReportRepository publishedReportRes;
private Integer port; @NonNull
private final ReportCubeService reportCubeService;
@Autowired
private DataDicRepository dataDicRes;
@Autowired
private PublishedReportRepository publishedReportRes;
@Autowired
private ReportCubeService reportCubeService;
@RequestMapping("/index") @RequestMapping("/index")
@Menu(type = "setting" , subtype = "report" , admin= true) @Menu(type = "setting", subtype = "report", admin = true)
public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String dicid , @Valid String id) throws Exception { public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String dicid, @Valid String id) throws Exception {
Page<PublishedReport> publishedReportList = null ; Page<PublishedReport> publishedReportList;
if(!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { if (!StringUtils.isBlank(dicid) && !"0".equals(dicid)) {
map.put("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); 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)))); 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)))); map.put("reportList", publishedReportList = publishedReportRes.findByOrgi(super.getOrgi(request), PageRequest.of(super.getP(request), super.getPs(request))));
} }
if(publishedReportList!=null && publishedReportList.getContent().size() > 0) { if (publishedReportList != null && publishedReportList.getContent().size() > 0) {
PublishedReport publishedReport = publishedReportList.getContent().get(0); PublishedReport publishedReport = publishedReportList.getContent().get(0);
if(!StringUtils.isBlank(id)) { if (!StringUtils.isBlank(id)) {
for(PublishedReport report : publishedReportList) { for (PublishedReport report : publishedReportList) {
if(report.getId().equals(id)) { if (report.getId().equals(id)) {
publishedReport = report ; break ; publishedReport = report;
} break;
} }
} }
map.put("report", publishedReport) ; }
map.put("report", publishedReport);
if(publishedReport!=null) { if (publishedReport != null) {
map.addAttribute("publishedReport", publishedReport); map.addAttribute("publishedReport", publishedReport);
map.addAttribute("report", publishedReport.getReport()); map.addAttribute("report", publishedReport.getReport());
map.addAttribute("reportModels", publishedReport.getReport().getReportModels()); map.addAttribute("reportModels", publishedReport.getReport().getReportModels());
List<ReportFilter> listFilters = publishedReport.getReport().getReportFilters(); List<ReportFilter> listFilters = publishedReport.getReport().getReportFilters();
if(!listFilters.isEmpty()) { if (!listFilters.isEmpty()) {
Map<String,ReportFilter> filterMap = new HashMap<String,ReportFilter>(); Map<String, ReportFilter> filterMap = new HashMap<>();
for(ReportFilter rf:listFilters) { for (ReportFilter rf : listFilters) {
filterMap.put(rf.getId(), rf); filterMap.put(rf.getId(), rf);
} }
for(ReportFilter rf:listFilters) { for (ReportFilter rf : listFilters) {
if(!StringUtils.isBlank(rf.getCascadeid())) { if (!StringUtils.isBlank(rf.getCascadeid())) {
rf.setChildFilter(filterMap.get(rf.getCascadeid())); rf.setChildFilter(filterMap.get(rf.getCascadeid()));
} }
} }
} }
map.addAttribute("reportFilters", reportCubeService.fillReportFilterData(listFilters, request)); map.addAttribute("reportFilters", reportCubeService.fillReportFilterData(listFilters, request));
} }
} }
map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request)));
return request(super.createRequestPageTempletResponse("/apps/business/view/index")); return request(super.createRequestPageTempletResponse("/apps/business/view/index"));
} }
} }

View File

@ -1,39 +1,39 @@
/* /*
* Copyright (C) 2017 优客服-多渠道客服系统 * Copyright (C) 2017 优客服-多渠道客服系统
* Modifications copyright (C) 2018-2019 Chatopera Inc, <https://www.chatopera.com> * Modifications copyright (C) 2018-2019 Chatopera Inc, <https://www.chatopera.com>
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.chatopera.cc.persistence.repository; package com.chatopera.cc.persistence.repository;
import com.chatopera.cc.model.PublishedReport; import com.chatopera.cc.model.PublishedReport;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List; import java.util.List;
public interface PublishedReportRepository extends JpaRepository<PublishedReport, String> { public interface PublishedReportRepository extends JpaRepository<PublishedReport, String> {
List<PublishedReport> findByOrgiAndDataidOrderByDataversionDesc(String orgi, String dataid); List<PublishedReport> findByOrgiAndDataidOrderByDataversionDesc(String orgi, String dataid);
Page<PublishedReport> findByOrgiAndDicid(String orgi, String dicid, Pageable pageRequest); Page<PublishedReport> findByOrgiAndDicid(String orgi, String dicid, Pageable pageRequest);
Page<PublishedReport> findByOrgi(String orgi, Pageable pageRequest); Page<PublishedReport> findByOrgi(String orgi, Pageable pageRequest);
PublishedReport findById(String id); // PublishedReport findById(String id);
List<PublishedReport> findByCode(String code); List<PublishedReport> findByCode(String code);
} }