GarbageWeightController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package cn.com.lzt.garbageweight;
  2. import cn.afterturn.easypoi.entity.vo.NormalExcelConstants;
  3. import cn.afterturn.easypoi.excel.ExcelImportUtil;
  4. import cn.afterturn.easypoi.excel.entity.ExportParams;
  5. import cn.afterturn.easypoi.excel.entity.ImportParams;
  6. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.daju.mix.dao.entity.TBGarbageWeight;
  9. import com.daju.mix.dao.service.ITBGarbageWeightService;
  10. import com.google.common.collect.Lists;
  11. import org.apache.commons.lang3.StringUtils;
  12. import org.apache.log4j.Logger;
  13. import org.jeecgframework.core.common.model.json.AjaxJson;
  14. import org.jeecgframework.core.common.model.json.DataGrid;
  15. import org.jeecgframework.core.util.ExceptionUtil;
  16. import org.jeecgframework.core.util.ResourceUtil;
  17. import org.jeecgframework.core.util.StringUtil;
  18. import org.jeecgframework.tag.core.easyui.TagUtil;
  19. import org.jeecgframework.web.system.pojo.base.DictEntity;
  20. import org.jeecgframework.web.system.service.SystemService;
  21. import org.joda.time.LocalDateTime;
  22. import org.springframework.stereotype.Controller;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import org.springframework.ui.ModelMap;
  25. import org.springframework.web.bind.annotation.RequestMapping;
  26. import org.springframework.web.bind.annotation.RequestMethod;
  27. import org.springframework.web.bind.annotation.ResponseBody;
  28. import org.springframework.web.multipart.MultipartFile;
  29. import org.springframework.web.multipart.MultipartHttpServletRequest;
  30. import org.springframework.web.servlet.ModelAndView;
  31. import javax.annotation.Resource;
  32. import javax.servlet.http.HttpServletRequest;
  33. import javax.servlet.http.HttpServletResponse;
  34. import java.io.IOException;
  35. import java.io.InputStream;
  36. import java.text.SimpleDateFormat;
  37. import java.util.*;
  38. import java.util.concurrent.ConcurrentHashMap;
  39. import java.util.stream.Collectors;
  40. /**
  41. * @projectName: daju
  42. * @Title: GarbageweightController
  43. * @Description: 作业报表管理-垃圾重量统计
  44. * @author: Future
  45. * @date: 2021/8/13 16:02
  46. * @version: v1.0
  47. **/
  48. @Controller
  49. @RequestMapping("/garbageWeightController")
  50. public class GarbageWeightController {
  51. /**
  52. * 日 志
  53. **/
  54. private static final Logger logger = Logger.getLogger(GarbageWeightController.class);
  55. private static final String BASE_PATH = "cn/com/lzt/garbageweight/";
  56. private static final String Dic_Code_rubbishType = "rubbishType";
  57. private static final List<String> WER_Garbage = Lists.newArrayList("湿垃圾","厨余垃圾", "餐厨垃圾");
  58. private static final List<String> DRY_Refuse = Lists.newArrayList("干垃圾", "装修垃圾分拣残渣", "一般工业垃圾");
  59. @Resource
  60. private ITBGarbageWeightService itbGarbageWeightService;
  61. @Resource
  62. private SystemService systemService;
  63. @RequestMapping(params = "view")
  64. public ModelAndView index() {
  65. return new ModelAndView(BASE_PATH.concat("index"));
  66. }
  67. /**
  68. * @return void
  69. * @author: Future
  70. * @version: v1.0
  71. * @Description: 分页查询 垃圾重量统计
  72. * @date: 2021/8/14 10:26
  73. * @Param [tbGarbageWeight, response, dataGrid]
  74. **/
  75. @RequestMapping(params = "datagrid")
  76. public void datagrid(TBGarbageWeight tbGarbageWeight, HttpServletRequest request,HttpServletResponse response, DataGrid dataGrid) throws Exception {
  77. try {
  78. //空对象判断
  79. Optional.ofNullable(tbGarbageWeight).orElseThrow(() -> new Exception("垃圾重量统计对象不能为null"));
  80. //条件
  81. LambdaQueryWrapper<TBGarbageWeight> queryWrapper = new LambdaQueryWrapper<>();
  82. String query_weighTime_begin = request.getParameter("weighTime_begin1");
  83. String query_weighTime_end = request.getParameter("weighTime_end2");
  84. queryWrapper
  85. .like(StringUtils.isNotBlank(tbGarbageWeight.getPlate()), TBGarbageWeight::getPlate, tbGarbageWeight.getPlate())
  86. .eq(StringUtils.isNotBlank(tbGarbageWeight.getGarbageType()), TBGarbageWeight::getGarbageType, tbGarbageWeight.getGarbageType())
  87. .eq(StringUtils.isNotBlank(tbGarbageWeight.getAreaRegion()), TBGarbageWeight::getAreaRegion, tbGarbageWeight.getAreaRegion());
  88. if(StringUtil.isNotEmpty(query_weighTime_begin) && StringUtil.isNotEmpty(query_weighTime_end)){
  89. queryWrapper.between(TBGarbageWeight::getWeighTime, new SimpleDateFormat("yyyy-MM-dd").parse(query_weighTime_begin), new SimpleDateFormat("yyyy-MM-dd").parse(query_weighTime_end));
  90. }
  91. Page<TBGarbageWeight> list = itbGarbageWeightService.page(new Page<>(dataGrid.getPage(), dataGrid.getRows()), queryWrapper);
  92. TagUtil.datagrid(response, dataGrid, list);
  93. }catch (Exception e){
  94. }
  95. }
  96. /**
  97. * @return java.lang.String
  98. * @author: Future
  99. * @version: v1.0
  100. * @Description: 导出excel 使模板
  101. * @date: 2021/8/14 11:32
  102. * @Param [request, response, dataGrid, modelMap]
  103. **/
  104. @RequestMapping(params = "exportXlsByT")
  105. public String exportXlsByT(TBGarbageWeight tbGarbageWeight,HttpServletRequest request, HttpServletResponse response
  106. , DataGrid dataGrid, ModelMap modelMap) {
  107. modelMap.put(NormalExcelConstants.FILE_NAME, "垃圾重量明细报表");
  108. modelMap.put(NormalExcelConstants.CLASS, TBGarbageWeight.class);
  109. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("垃圾重量明细报表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  110. "导出信息"));
  111. modelMap.put(NormalExcelConstants.DATA_LIST, new ArrayList<>());
  112. return NormalExcelConstants.EASYPOI_EXCEL_VIEW;
  113. }
  114. /**
  115. * 导入功能跳转
  116. *
  117. * @return
  118. */
  119. @RequestMapping(params = "upload")
  120. public ModelAndView upload(HttpServletRequest req) {
  121. req.setAttribute("controller_name", "garbageWeightController");
  122. return new ModelAndView("common/upload/common_excel_upload");
  123. }
  124. @SuppressWarnings("unchecked")
  125. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  126. @ResponseBody
  127. @Transactional(rollbackFor = Exception.class)
  128. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  129. AjaxJson j = new AjaxJson();
  130. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  131. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  132. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  133. MultipartFile file = entity.getValue();// 获取上传文件对象
  134. ImportParams params = new ImportParams();
  135. params.setTitleRows(2);
  136. params.setHeadRows(1);
  137. params.setNeedSave(true);
  138. try {
  139. // 获取垃圾类型的字典数据
  140. List<DictEntity> rubbishType = systemService.queryDict("", "rubbishType", "");
  141. Map<String, String> rubbishTypeCollect = rubbishType.stream().collect(Collectors.toMap(DictEntity::getTypename, DictEntity::getTypecode));
  142. List<DictEntity> areaRegion = systemService.queryDict("", "areaRegion", "");
  143. Map<String, String> areaRegionCollect = areaRegion.stream().collect(Collectors.toMap(DictEntity::getTypename, DictEntity::getTypecode));
  144. // delete-刘梦祥-2021年12月16日19:54:25(导入数据同步导出数据字典映射规则,删除原本的错误逻辑)
  145. /*List<Map<String, String>> plateAndAreaRegion = itbGarbageWeightService.getPlateAndAreaRegion();
  146. Map<String, String> map= new ConcurrentHashMap<>();
  147. plateAndAreaRegion.forEach(stringStringMap -> {
  148. for (String key : stringStringMap.keySet()) {
  149. map.put(stringStringMap.get("plate"),stringStringMap.get("area_region"));
  150. System.out.println(stringStringMap.get("plate")+"---"+stringStringMap.get("area_region"));
  151. }
  152. });*/
  153. List<TBGarbageWeight> tbGarbageWeightList = ExcelImportUtil.importExcel(
  154. file.getInputStream(), TBGarbageWeight.class, params);
  155. tbGarbageWeightList.forEach(tbGarbageWeight -> {
  156. // 垃圾类型是否包含
  157. if (WER_Garbage.contains(tbGarbageWeight.getGarbageType())) {
  158. tbGarbageWeight.setGarbageType(rubbishTypeCollect.get("湿垃圾"));
  159. } else if (DRY_Refuse.contains(tbGarbageWeight.getGarbageType())) {
  160. tbGarbageWeight.setGarbageType(rubbishTypeCollect.get("干垃圾"));
  161. } else {
  162. tbGarbageWeight.setGarbageType("类型缺失!");
  163. }
  164. // 区域划分
  165. if(StringUtil.isNotEmpty(areaRegionCollect.get(tbGarbageWeight.getAreaRegion()))){
  166. tbGarbageWeight.setAreaRegion(areaRegionCollect.get(tbGarbageWeight.getAreaRegion()));
  167. }else{
  168. tbGarbageWeight.setAreaRegion("类型缺失!");
  169. }
  170. // 时间写入
  171. if(tbGarbageWeight.getWeighTime() != null){
  172. tbGarbageWeight.setWeighTime(tbGarbageWeight.getWeighTime());
  173. }
  174. });
  175. itbGarbageWeightService.saveBatch(tbGarbageWeightList,10);
  176. j.setMsg("文件导入成功!");
  177. } catch (Exception e) {
  178. j.setMsg("文件导入失败!" + e.getMessage());
  179. logger.error(ExceptionUtil.getExceptionMessage(e));
  180. } finally {
  181. try {
  182. file.getInputStream().close();
  183. } catch (IOException e) {
  184. e.printStackTrace();
  185. }
  186. }
  187. }
  188. return j;
  189. }
  190. /**
  191. * 导出excel
  192. *
  193. * @param request
  194. * @param response
  195. */
  196. @RequestMapping(params = "exportXls")
  197. public String exportXls(TBGarbageWeight tbGarbageWeight, HttpServletRequest request, HttpServletResponse response
  198. , DataGrid dataGrid, ModelMap modelMap) {
  199. List<TBGarbageWeight> tbGarbageWeightList = itbGarbageWeightService.list();
  200. List<DictEntity> rubbishType = systemService.queryDict("", "rubbishType", "");
  201. Map<String, String> rubbishTypeCollect = rubbishType.stream().collect(Collectors.toMap(DictEntity::getTypecode, DictEntity::getTypename));
  202. List<DictEntity> areaRegion = systemService.queryDict("", "areaRegion", "");
  203. Map<String, String> areaRegionCollect = areaRegion.stream().collect(Collectors.toMap(DictEntity::getTypecode, DictEntity::getTypename));
  204. tbGarbageWeightList.forEach(tbGarbageWeight1 -> {
  205. tbGarbageWeight1.setGarbageType(rubbishTypeCollect.get(tbGarbageWeight1.getGarbageType()));
  206. tbGarbageWeight1.setAreaRegion(areaRegionCollect.get(tbGarbageWeight1.getAreaRegion()));
  207. });
  208. modelMap.put(NormalExcelConstants.FILE_NAME, "垃圾重量明细报表");
  209. modelMap.put(NormalExcelConstants.CLASS, TBGarbageWeight.class);
  210. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("垃圾重量明细报表", "导出人:"+ ResourceUtil.getSessionUser().getRealName(),
  211. "导出信息"));
  212. modelMap.put(NormalExcelConstants.DATA_LIST, tbGarbageWeightList);
  213. return NormalExcelConstants.EASYPOI_EXCEL_VIEW;
  214. }
  215. }