MesStationPiecePriceController.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package com.jeesite.modules.mes.web;
  2. import java.util.List;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import org.apache.shiro.authz.annotation.RequiresPermissions;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.ui.Model;
  9. import org.springframework.validation.annotation.Validated;
  10. import org.springframework.web.bind.annotation.ModelAttribute;
  11. import org.springframework.web.bind.annotation.PostMapping;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.ResponseBody;
  14. import org.springframework.web.multipart.MultipartFile;
  15. import com.jeesite.common.config.Global;
  16. import com.jeesite.common.collect.ListUtils;
  17. import com.jeesite.common.entity.Page;
  18. import com.jeesite.common.lang.DateUtils;
  19. import com.jeesite.common.lang.StringUtils;
  20. import com.jeesite.common.utils.excel.ExcelExport;
  21. import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
  22. import com.jeesite.common.web.BaseController;
  23. import com.jeesite.modules.mes.entity.MesLine;
  24. import com.jeesite.modules.mes.entity.MesLineProcess;
  25. import com.jeesite.modules.mes.entity.MesStationPiecePrice;
  26. import com.jeesite.modules.mes.service.MesLineProcessService;
  27. import com.jeesite.modules.mes.service.MesLineService;
  28. import com.jeesite.modules.mes.service.MesStationPiecePriceService;
  29. /**
  30. * 工位计件单价Controller
  31. */
  32. @Controller
  33. @RequestMapping(value = "${adminPath}/mes/mesStationPiecePrice")
  34. public class MesStationPiecePriceController extends BaseController {
  35. @Autowired
  36. private MesStationPiecePriceService mesStationPiecePriceService;
  37. @Autowired
  38. private MesLineProcessService mesLineProcessService;
  39. @Autowired
  40. private MesLineService mesLineService;
  41. @ModelAttribute
  42. public MesStationPiecePrice get(String id, boolean isNewRecord) {
  43. return mesStationPiecePriceService.get(id, isNewRecord);
  44. }
  45. @RequiresPermissions("mes:mesStationPiecePrice:view")
  46. @RequestMapping(value = {"list", ""})
  47. public String list(MesStationPiecePrice mesStationPiecePrice, Model model) {
  48. model.addAttribute("mesStationPiecePrice", mesStationPiecePrice);
  49. return "modules/mes/mesStationPiecePriceList";
  50. }
  51. @RequiresPermissions("mes:mesStationPiecePrice:view")
  52. @RequestMapping(value = "listData")
  53. @ResponseBody
  54. public Page<MesStationPiecePrice> listData(MesStationPiecePrice mesStationPiecePrice,
  55. HttpServletRequest request, HttpServletResponse response) {
  56. mesStationPiecePrice.setPage(new Page<>(request, response));
  57. return mesStationPiecePriceService.findPage(mesStationPiecePrice);
  58. }
  59. @RequiresPermissions("mes:mesStationPiecePrice:view")
  60. @RequestMapping(value = "form")
  61. public String form(MesStationPiecePrice mesStationPiecePrice, Model model) {
  62. model.addAttribute("mesStationPiecePrice", mesStationPiecePrice);
  63. // 产线下拉选项
  64. MesLine mesLine = new MesLine();
  65. mesLine.setStatus(MesLine.STATUS_NORMAL);
  66. model.addAttribute("lineList", mesLineService.findList(mesLine));
  67. return "modules/mes/mesStationPiecePriceForm";
  68. }
  69. @RequiresPermissions("mes:mesStationPiecePrice:edit")
  70. @PostMapping(value = "save")
  71. @ResponseBody
  72. public String save(@Validated MesStationPiecePrice mesStationPiecePrice) {
  73. mesStationPiecePriceService.save(mesStationPiecePrice);
  74. return renderResult(Global.TRUE, text("\u4fdd\u5b58\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7\u6210\u529f"));
  75. }
  76. @RequiresPermissions("mes:mesStationPiecePrice:edit")
  77. @RequestMapping(value = "delete")
  78. @ResponseBody
  79. public String delete(MesStationPiecePrice mesStationPiecePrice) {
  80. mesStationPiecePriceService.delete(mesStationPiecePrice);
  81. return renderResult(Global.TRUE, text("\u5220\u9664\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7\u6210\u529f"));
  82. }
  83. @RequiresPermissions("mes:mesStationPiecePrice:view")
  84. @RequestMapping(value = "exportData")
  85. public void exportData(MesStationPiecePrice mesStationPiecePrice, HttpServletResponse response) {
  86. List<MesStationPiecePrice> list = mesStationPiecePriceService.findList(mesStationPiecePrice);
  87. String fileName = "\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
  88. try (ExcelExport ee = new ExcelExport("\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7", MesStationPiecePrice.class)) {
  89. ee.setDataList(list).write(response, fileName);
  90. }
  91. }
  92. @RequiresPermissions("mes:mesStationPiecePrice:view")
  93. @RequestMapping(value = "importTemplate")
  94. public void importTemplate(HttpServletResponse response) {
  95. MesStationPiecePrice mesStationPiecePrice = new MesStationPiecePrice();
  96. List<MesStationPiecePrice> list = ListUtils.newArrayList(mesStationPiecePrice);
  97. String fileName = "\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7\u6a21\u677f.xlsx";
  98. try (ExcelExport ee = new ExcelExport("\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7", MesStationPiecePrice.class, Type.IMPORT)) {
  99. ee.setDataList(list).write(response, fileName);
  100. }
  101. }
  102. @ResponseBody
  103. @RequiresPermissions("mes:mesStationPiecePrice:edit")
  104. @PostMapping(value = "importData")
  105. public String importData(MultipartFile file) {
  106. try {
  107. String message = mesStationPiecePriceService.importData(file);
  108. return renderResult(Global.TRUE, "posfull:" + message);
  109. } catch (Exception ex) {
  110. return renderResult(Global.FALSE, "posfull:" + ex.getMessage());
  111. }
  112. }
  113. /**
  114. * 按产线查询父工位列表(pid 为空)
  115. */
  116. @RequiresPermissions("mes:mesStationPiecePrice:view")
  117. @RequestMapping(value = "stationList")
  118. @ResponseBody
  119. public List<MesLineProcess> stationList(String lineSn) {
  120. return findParentStationList(lineSn);
  121. }
  122. @RequiresPermissions("mes:mesStationPiecePrice:view")
  123. @RequestMapping(value = "stationInfo")
  124. @ResponseBody
  125. public MesLineProcess stationInfo(String lineSn, String oprno) {
  126. if (StringUtils.isBlank(lineSn) || StringUtils.isBlank(oprno)) {
  127. return null;
  128. }
  129. String targetOprno = oprno.trim();
  130. for (MesLineProcess item : findParentStationList(lineSn)) {
  131. if (targetOprno.equals(item.getOprno())) {
  132. return item;
  133. }
  134. }
  135. return null;
  136. }
  137. /**
  138. * 根据产线编号查询父工位
  139. */
  140. private List<MesLineProcess> findParentStationList(String lineSn) {
  141. if (StringUtils.isBlank(lineSn)) {
  142. return ListUtils.newArrayList();
  143. }
  144. MesLine query = new MesLine();
  145. query.setSn(lineSn.trim());
  146. query.setStatus(MesLine.STATUS_NORMAL);
  147. MesLine line = mesLineService.findInfo(query);
  148. if (line == null || StringUtils.isBlank(line.getId())) {
  149. return ListUtils.newArrayList();
  150. }
  151. return mesLineProcessService.findParentListByLine(line.getId(), lineSn.trim());
  152. }
  153. }