MesMaterialKwController.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package com.jeesite.modules.mes.web;
  2. import com.jeesite.common.collect.ListUtils;
  3. import com.jeesite.common.config.Global;
  4. import com.jeesite.common.entity.Page;
  5. import com.jeesite.common.lang.DateUtils;
  6. import com.jeesite.common.service.ServiceException;
  7. import com.jeesite.common.utils.excel.ExcelExport;
  8. import com.jeesite.common.utils.excel.ExcelImport;
  9. import com.jeesite.common.utils.excel.annotation.ExcelField;
  10. import com.jeesite.common.validator.ValidatorUtils;
  11. import com.jeesite.common.web.BaseController;
  12. import com.jeesite.modules.mes.entity.MesMaterialCk;
  13. import com.jeesite.modules.mes.entity.MesMaterialKw;
  14. import com.jeesite.modules.mes.resp.CommonResp;
  15. import com.jeesite.modules.mes.service.MesMaterialCkService;
  16. import com.jeesite.modules.mes.service.MesMaterialKwService;
  17. import org.apache.shiro.authz.annotation.RequiresPermissions;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Controller;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import org.springframework.ui.Model;
  22. import org.springframework.validation.annotation.Validated;
  23. import org.springframework.web.bind.annotation.ModelAttribute;
  24. import org.springframework.web.bind.annotation.PostMapping;
  25. import org.springframework.web.bind.annotation.RequestMapping;
  26. import org.springframework.web.bind.annotation.ResponseBody;
  27. import org.springframework.web.multipart.MultipartFile;
  28. import javax.servlet.http.HttpServletRequest;
  29. import javax.servlet.http.HttpServletResponse;
  30. import javax.validation.ConstraintViolation;
  31. import javax.validation.ConstraintViolationException;
  32. import java.util.List;
  33. @Controller
  34. @RequestMapping(value = "${adminPath}/mes/mesMaterialKw")
  35. public class MesMaterialKwController extends BaseController {
  36. @Autowired
  37. private MesMaterialKwService mesMaterialKwService;
  38. @Autowired
  39. private MesMaterialCkService mesMaterialCkService;
  40. @ModelAttribute
  41. public MesMaterialKw get(String id, boolean isNewRecord) {
  42. return mesMaterialKwService.get(id, isNewRecord);
  43. }
  44. @RequiresPermissions("mes:mesMaterialKw:view")
  45. @RequestMapping(value = {"list", ""})
  46. public String list(MesMaterialKw mesMaterialKw, Model model) {
  47. model.addAttribute("mesMaterialKw", mesMaterialKw);
  48. model.addAttribute("ckList", mesMaterialCkService.findList(new MesMaterialCk()));
  49. return "modules/mes/mesMaterialKwList";
  50. }
  51. @RequiresPermissions("mes:mesMaterialKw:view")
  52. @RequestMapping(value = "listData")
  53. @ResponseBody
  54. public Page<MesMaterialKw> listData(MesMaterialKw mesMaterialKw, HttpServletRequest request, HttpServletResponse response) {
  55. mesMaterialKw.setPage(new Page<>(request, response));
  56. Page<MesMaterialKw> page = mesMaterialKwService.findPage(mesMaterialKw);
  57. return page;
  58. }
  59. @RequiresPermissions("mes:mesMaterialKw:view")
  60. @RequestMapping(value = "form")
  61. public String form(MesMaterialKw mesMaterialKw, Model model) {
  62. model.addAttribute("mesMaterialKw", mesMaterialKw);
  63. model.addAttribute("ckList", mesMaterialCkService.findList(new MesMaterialCk()));
  64. return "modules/mes/mesMaterialKwForm";
  65. }
  66. @RequiresPermissions("mes:mesMaterialKw:edit")
  67. @PostMapping(value = "save")
  68. @ResponseBody
  69. public String save(@Validated MesMaterialKw mesMaterialKw) {
  70. mesMaterialKwService.save(mesMaterialKw);
  71. return renderResult(Global.TRUE, text("保存来料检查物料库位表成功!"));
  72. }
  73. @RequiresPermissions("mes:mesMaterialKw:edit")
  74. @RequestMapping(value = "delete")
  75. @ResponseBody
  76. public String delete(MesMaterialKw mesMaterialKw) {
  77. mesMaterialKwService.delete(mesMaterialKw);
  78. return renderResult(Global.TRUE, text("删除来料检查物料库位表成功!"));
  79. }
  80. @RequestMapping(value = "kwList")
  81. @ResponseBody
  82. public CommonResp kwList(HttpServletRequest req) {
  83. CommonResp<List<MesMaterialKw>> resp = new CommonResp<>();
  84. MesMaterialKw mesMaterialKw = new MesMaterialKw();
  85. List<MesMaterialKw> lists = mesMaterialKwService.findList(mesMaterialKw);
  86. resp.setData(lists);
  87. resp.setResult(Global.TRUE);
  88. return resp;
  89. }
  90. /**
  91. * 导出数据
  92. */
  93. @RequestMapping(value = "exportData")
  94. public void exportData(MesMaterialKw mesDeviceCate, HttpServletResponse response) {
  95. List<MesMaterialKw> list = mesMaterialKwService.findList(mesDeviceCate);
  96. String fileName = "物料库位" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
  97. try(ExcelExport ee = new ExcelExport("物料库位", MesMaterialKw.class)){
  98. ee.setDataList(list).write(response, fileName);
  99. }
  100. }
  101. /**
  102. * 下载模板
  103. */
  104. @RequestMapping(value = "importTemplate")
  105. public void importTemplate(HttpServletResponse response) {
  106. MesMaterialKw mesDeviceCate = new MesMaterialKw();
  107. List<MesMaterialKw> list = ListUtils.newArrayList(mesDeviceCate);
  108. String fileName = "物料库位.xlsx";
  109. try(ExcelExport ee = new ExcelExport("物料库位", MesMaterialKw.class, ExcelField.Type.IMPORT)){
  110. ee.setDataList(list).write(response, fileName);
  111. }
  112. }
  113. /**
  114. * 导入数据
  115. */
  116. @ResponseBody
  117. @PostMapping(value = "importData")
  118. public String importData(MultipartFile file) {
  119. try {
  120. String message = importData1(file);
  121. return renderResult(Global.TRUE, "posfull:"+message);
  122. } catch (Exception ex) {
  123. return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
  124. }
  125. }
  126. @Transactional
  127. public String importData1(MultipartFile file) {
  128. if (file == null){
  129. throw new ServiceException(text("请选择导入的数据文件!"));
  130. }
  131. int successNum = 0; int failureNum = 0;
  132. StringBuilder successMsg = new StringBuilder();
  133. StringBuilder failureMsg = new StringBuilder();
  134. try(ExcelImport ei = new ExcelImport(file, 2, 0)){
  135. List<MesMaterialKw> list = ei.getDataList(MesMaterialKw.class);
  136. for (MesMaterialKw mesDeviceCheck : list) {
  137. try{
  138. ValidatorUtils.validateWithException(mesDeviceCheck);
  139. this.save(mesDeviceCheck);
  140. successNum++;
  141. successMsg.append("<br/>" + successNum + "、编号 " + mesDeviceCheck.getId() + " 导入成功");
  142. } catch (Exception e) {
  143. failureNum++;
  144. String msg = "<br/>" + failureNum + "、编号 " + mesDeviceCheck.getId() + " 导入失败:";
  145. if (e instanceof ConstraintViolationException){
  146. ConstraintViolationException cve = (ConstraintViolationException)e;
  147. for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
  148. msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
  149. }
  150. }else{
  151. msg += e.getMessage();
  152. }
  153. failureMsg.append(msg);
  154. logger.error(msg, e);
  155. }
  156. }
  157. } catch (Exception e) {
  158. logger.error(e.getMessage(), e);
  159. failureMsg.append(e.getMessage());
  160. return failureMsg.toString();
  161. }
  162. if (failureNum > 0) {
  163. failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
  164. throw new ServiceException(failureMsg.toString());
  165. }else{
  166. successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
  167. }
  168. return successMsg.toString();
  169. }
  170. }