123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- package org.jeecg.modules.system.controller;
- import java.io.UnsupportedEncodingException;
- import java.net.URLDecoder;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.alibaba.fastjson.JSON;
- import org.apache.commons.lang.StringUtils;
- import org.apache.shiro.authz.annotation.RequiresPermissions;
- import org.jeecg.common.api.vo.Result;
- import org.jeecg.common.system.query.QueryGenerator;
- import org.jeecg.common.util.oConvertUtils;
- import org.jeecg.modules.demo.test.entity.JeecgOrderCustomer;
- import org.jeecg.modules.demo.test.entity.JeecgOrderMain;
- import org.jeecg.modules.demo.test.entity.JeecgOrderTicket;
- import org.jeecg.modules.demo.test.vo.JeecgOrderMainPage;
- import org.jeecg.modules.system.entity.SysDict;
- import org.jeecg.modules.system.entity.SysDictItem;
- import org.jeecg.modules.system.model.SysDictTree;
- import org.jeecg.modules.system.service.ISysDictItemService;
- import org.jeecg.modules.system.service.ISysDictService;
- import org.jeecg.modules.system.vo.SysDictPage;
- import org.jeecgframework.poi.excel.ExcelImportUtil;
- import org.jeecgframework.poi.excel.def.NormalExcelConstants;
- import org.jeecgframework.poi.excel.entity.ExportParams;
- import org.jeecgframework.poi.excel.entity.ImportParams;
- import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.cache.annotation.CacheEvict;
- import org.springframework.web.bind.annotation.*;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.multipart.MultipartHttpServletRequest;
- import org.springframework.web.servlet.ModelAndView;
- @RestController
- @RequestMapping("/sys/dict")
- @Slf4j
- public class SysDictController {
- @Autowired
- private ISysDictService sysDictService;
- @Autowired
- private ISysDictItemService sysDictItemService;
- @RequestMapping(value = "/list", method = RequestMethod.GET)
- public Result<IPage<SysDict>> queryPageList(SysDict sysDict,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
- @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
- Result<IPage<SysDict>> result = new Result<IPage<SysDict>>();
- sysDict.setDelFlag(0);
-
- String dictName = sysDict.getDictName();
- if (StringUtils.isNotBlank(sysDict.getDictName())) {
- sysDict.setDictName(null);
- }
-
- String dictCode = sysDict.getDictCode();
- if (StringUtils.isNotBlank(sysDict.getDictCode())) {
- sysDict.setDictCode(null);
- }
- QueryWrapper<SysDict> queryWrapper = QueryGenerator.initQueryWrapper(sysDict, req.getParameterMap());
- queryWrapper.orderByDesc("create_time");
- if (StringUtils.isNotBlank(dictName)) {
- queryWrapper.like("dict_name", dictName);
- }
- if (StringUtils.isNotBlank(dictCode)) {
- queryWrapper.like("dict_code", dictCode);
- }
- Page<SysDict> page = new Page<SysDict>(pageNo, pageSize);
- IPage<SysDict> pageList = sysDictService.page(page, queryWrapper);
- log.info("查询当前页:"+pageList.getCurrent());
- log.info("查询当前页数量:"+pageList.getSize());
- log.info("查询结果数量:"+pageList.getRecords().size());
- log.info("数据总数:"+pageList.getTotal());
- result.setSuccess(true);
- result.setResult(pageList);
- return result;
- }
- @RequestMapping(value = "/list1", method = RequestMethod.GET)
- @RequiresPermissions("url:dict:view")
- public Result<IPage<SysDict>> queryPageList1(SysDict sysDict,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
- @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
- Result<IPage<SysDict>> result = new Result<IPage<SysDict>>();
- sysDict.setDelFlag(0);
-
- String dictName = sysDict.getDictName();
- if (StringUtils.isNotBlank(sysDict.getDictName())) {
- sysDict.setDictName(null);
- }
-
- String dictCode = sysDict.getDictCode();
- if (StringUtils.isNotBlank(sysDict.getDictCode())) {
- sysDict.setDictCode(null);
- }
- QueryWrapper<SysDict> queryWrapper = QueryGenerator.initQueryWrapper(sysDict, req.getParameterMap());
- queryWrapper.orderByDesc("create_time");
- if (StringUtils.isNotBlank(dictName)) {
- queryWrapper.like("dict_name", dictName);
- }
- if (StringUtils.isNotBlank(dictCode)) {
- queryWrapper.like("dict_code", dictCode);
- }
- Page<SysDict> page = new Page<SysDict>(pageNo, pageSize);
- IPage<SysDict> pageList = sysDictService.page(page, queryWrapper);
- log.info("查询当前页:"+pageList.getCurrent());
- log.info("查询当前页数量:"+pageList.getSize());
- log.info("查询结果数量:"+pageList.getRecords().size());
- log.info("数据总数:"+pageList.getTotal());
- result.setSuccess(true);
- result.setResult(pageList);
- return result;
- }
-
- @SuppressWarnings("unchecked")
- @RequestMapping(value = "/treeList", method = RequestMethod.GET)
- public Result<List<SysDictTree>> treeList(SysDict sysDict,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
- @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {
- Result<List<SysDictTree>> result = new Result<>();
- LambdaQueryWrapper<SysDict> query = new LambdaQueryWrapper<>();
-
- String dictName = sysDict.getDictName();
- if(oConvertUtils.isNotEmpty(dictName)) {
- query.like(true, SysDict::getDictName, dictName);
- }
- query.eq(true, SysDict::getDelFlag, "1");
- query.orderByDesc(true, SysDict::getCreateTime);
- List<SysDict> list = sysDictService.list(query);
- List<SysDictTree> treeList = new ArrayList<>();
- for (SysDict node : list) {
- treeList.add(new SysDictTree(node));
- }
- result.setSuccess(true);
- result.setResult(treeList);
- return result;
- }
-
- @RequestMapping(value = "/getDictItems/{dictCode}", method = RequestMethod.GET)
- public Result<List<Map<String, Object>>> getDictItems(@PathVariable String dictCode) {
- log.info(" dictCode : "+ dictCode);
- Result<List<Map<String,Object>>> result = new Result<List<Map<String,Object>>>();
- List<Map<String,Object>> ls = null;
- try {
- if(dictCode.indexOf(",")!=-1) {
-
- String[] params = dictCode.split(",");
- if(params.length!=3) {
- result.error500("字典Code格式不正确!");
- return result;
- }
- ls = sysDictService.queryTableDictItemsByCode(params[0],params[1],params[2]);
- }else {
-
- ls = sysDictService.queryDictItemsByCode(dictCode);
- }
- result.setSuccess(true);
- result.setResult(ls);
- log.info(result.toString());
- } catch (Exception e) {
- log.info(e.getMessage());
- result.error500("操作失败");
- return result;
- }
- return result;
- }
-
- @RequestMapping(value = "/getDictText/{dictCode}/{key}", method = RequestMethod.GET)
- public Result<String> getDictItems(@PathVariable("dictCode") String dictCode, @PathVariable("key") String key) {
- log.info(" dictCode : "+ dictCode);
- Result<String> result = new Result<String>();
- String text = null;
- try {
- text = sysDictService.queryDictTextByKey(dictCode, key);
- result.setSuccess(true);
- result.setResult(text);
- } catch (Exception e) {
- log.info(e.getMessage());
- result.error500("操作失败");
- return result;
- }
- return result;
- }
-
- @RequestMapping(value = "/add", method = RequestMethod.POST)
- public Result<SysDict> add(@RequestBody SysDict sysDict) {
- Result<SysDict> result = new Result<SysDict>();
- try {
- sysDict.setCreateTime(new Date());
- sysDict.setDelFlag(0);
- sysDictService.save(sysDict);
- result.success("保存成功!");
- } catch (Exception e) {
- e.printStackTrace();
- log.info(e.getMessage());
- result.error500("操作失败");
- }
- return result;
- }
-
- @RequestMapping(value = "/edit", method = RequestMethod.PUT)
- public Result<SysDict> edit(@RequestBody SysDict sysDict) {
- Result<SysDict> result = new Result<SysDict>();
- SysDict sysdict = sysDictService.getById(sysDict.getId());
- if(sysdict==null) {
- result.error500("未找到对应实体");
- }else {
- sysDict.setUpdateTime(new Date());
- boolean ok = sysDictService.updateById(sysDict);
-
- if(ok) {
- result.success("编辑成功!");
- }
- }
- return result;
- }
-
- @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
- @CacheEvict(value="dictCache", allEntries=true)
- public Result<SysDict> delete(@RequestParam(name="id",required=true) String id) {
- Result<SysDict> result = new Result<SysDict>();
- SysDict sysDict = sysDictService.getById(id);
- if(sysDict==null) {
- result.error500("未找到对应实体");
- }else {
- sysDict.setDelFlag(1);
- boolean ok = sysDictService.updateById(sysDict);
- if(ok) {
- result.success("删除成功!");
- }
- }
- return result;
- }
-
- @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
- @CacheEvict(value="dictCache", allEntries=true)
- public Result<SysDict> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
- Result<SysDict> result = new Result<SysDict>();
- if(ids==null || "".equals(ids.trim())) {
- result.error500("参数不识别!");
- }else {
- String[] id=ids.split(",");
- for(int i=0;i<id.length;i++) {
- SysDict sysDict = sysDictService.getById(id[i]);
- sysDict.setDelFlag(2);
- sysDictService.updateById(sysDict);
- }
- result.success("删除成功!");
- }
- return result;
- }
-
- @RequestMapping(value = "/exportXls")
- public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
-
- QueryWrapper<SysDict> queryWrapper = null;
- try {
- String paramsStr = request.getParameter("paramsStr");
- if (oConvertUtils.isNotEmpty(paramsStr)) {
- String deString = URLDecoder.decode(paramsStr, "UTF-8");
- SysDict sysDict = JSON.parseObject(deString, SysDict.class);
- queryWrapper = QueryGenerator.initQueryWrapper(sysDict, request.getParameterMap());
- log.info(paramsStr);
- log.info(sysDict.toString());
- }
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
-
- ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
- List<SysDictPage> pageList = new ArrayList<SysDictPage>();
- List<SysDict> sysDictList = sysDictService.list(queryWrapper);
- for (SysDict dictMain : sysDictList) {
- SysDictPage vo = new SysDictPage();
- BeanUtils.copyProperties(dictMain, vo);
-
- List<SysDictItem> sysDictItemList = sysDictItemService.selectItemsByMainId(dictMain.getId());
- vo.setSysDictItemList(sysDictItemList);
- pageList.add(vo);
- }
-
- mv.addObject(NormalExcelConstants.FILE_NAME, "数据字典");
-
- mv.addObject(NormalExcelConstants.CLASS, SysDictPage.class);
-
- mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("数据字典列表", "导出人:Jeecg", "数据字典"));
-
- mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
- return mv;
- }
-
- @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
- public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
- for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
- MultipartFile file = entity.getValue();
- ImportParams params = new ImportParams();
- params.setTitleRows(2);
- params.setHeadRows(2);
- params.setNeedSave(true);
- try {
- List<SysDictPage> list = ExcelImportUtil.importExcel(file.getInputStream(), SysDictPage.class, params);
- for (SysDictPage page : list) {
- SysDict po = new SysDict();
- BeanUtils.copyProperties(page, po);
- if(page.getDelFlag()==null){
- po.setDelFlag(1);
- }
- sysDictService.saveMain(po, page.getSysDictItemList());
- }
- return Result.ok("文件导入成功!");
- } catch (Exception e) {
- log.error(e.toString());
- return Result.ok("文件导入失败!");
- } finally {
- try {
- file.getInputStream().close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- return Result.ok("文件导入失败!");
- }
-
- @RequestMapping(value = "/getByIdDict", method = RequestMethod.POST)
- public Result<SysDict> getByIdDict(@RequestBody String id){
- Result<SysDict> result=new Result<SysDict>();
- if(oConvertUtils.isNotEmpty(id)){
- SysDict sysdict= sysDictService.getById(id);
- if(oConvertUtils.isNotEmpty(sysdict)){
- result.setSuccess(true);
- result.setResult(sysdict);
- }else{
- result.setSuccess(false);
- }
- }else{
- result.setSuccess(false);
- }
- return result;
- }
- }
|