MesLineProcessUserController.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. package com.jeesite.modules.mes.web;
  2. import com.jeesite.common.config.Global;
  3. import com.jeesite.common.collect.ListUtils;
  4. import com.jeesite.common.collect.MapUtils;
  5. import com.jeesite.common.entity.Page;
  6. import com.jeesite.common.lang.StringUtils;
  7. import com.jeesite.common.web.BaseController;
  8. import com.jeesite.modules.mes.entity.MesLineProcess;
  9. import com.jeesite.modules.mes.entity.MesLineProcessUser;
  10. import com.jeesite.modules.mes.service.MesLineProcessService;
  11. import com.jeesite.modules.mes.service.MesLineProcessUserService;
  12. import org.apache.shiro.authz.annotation.RequiresPermissions;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.jdbc.core.JdbcTemplate;
  15. import org.springframework.stereotype.Controller;
  16. import org.springframework.ui.Model;
  17. import org.springframework.validation.annotation.Validated;
  18. import org.springframework.web.bind.annotation.ModelAttribute;
  19. import org.springframework.web.bind.annotation.PostMapping;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.ResponseBody;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.servlet.http.HttpServletResponse;
  24. import java.util.LinkedHashSet;
  25. import java.util.List;
  26. import java.util.Map;
  27. import java.util.Set;
  28. /**
  29. * 生产工序物料表Controller
  30. * @author mes
  31. * @version 2024-04-02
  32. */
  33. @Controller
  34. @RequestMapping(value = "${adminPath}/mes/mesLineProcessUser")
  35. public class MesLineProcessUserController extends BaseController {
  36. @Autowired
  37. private MesLineProcessUserService mesLineProcessUserService;
  38. @Autowired
  39. private MesLineProcessService mesLineProcessService;
  40. @Autowired
  41. private JdbcTemplate jdbcTemplate;
  42. /**
  43. * 获取数据
  44. */
  45. @ModelAttribute
  46. public MesLineProcessUser get(String id, boolean isNewRecord) {
  47. return mesLineProcessUserService.get(id, isNewRecord);
  48. }
  49. /**
  50. * 查询列表
  51. */
  52. @RequiresPermissions("mes:mesLineProcess:view")
  53. @RequestMapping(value = {"list", ""})
  54. public String list(MesLineProcessUser mesLineProcessUser, Model model) {
  55. model.addAttribute("mesLineProcessUser", mesLineProcessUser);
  56. MesLineProcess mesLineProcess = new MesLineProcess();
  57. mesLineProcess.setId(mesLineProcessUser.getLineProcessId());
  58. MesLineProcess mlInfo = mesLineProcessService.get(mesLineProcess);
  59. model.addAttribute("mlInfo", mlInfo);
  60. return "modules/mes/mesLineProcessUserList";
  61. }
  62. /**
  63. * 查询列表数据
  64. */
  65. @RequiresPermissions("mes:mesLineProcess:view")
  66. @RequestMapping(value = "listData")
  67. @ResponseBody
  68. public Page<MesLineProcessUser> listData(MesLineProcessUser mesLineProcessUser, HttpServletRequest request, HttpServletResponse response) {
  69. mesLineProcessUser.setPage(new Page<>(request, response));
  70. Page<MesLineProcessUser> page = mesLineProcessUserService.findPage(mesLineProcessUser);
  71. return page;
  72. }
  73. /**
  74. * 查看编辑表单
  75. */
  76. @RequiresPermissions("mes:mesLineProcess:view")
  77. @RequestMapping(value = "form")
  78. public String form(MesLineProcessUser mesLineProcessUser, Model model) {
  79. model.addAttribute("mesLineProcessUser", mesLineProcessUser);
  80. return "modules/mes/mesLineProcessUserForm";
  81. }
  82. /**
  83. * 生产工位人员选择树:查询全部正常用户,不按当前登录人的创建人/数据权限过滤。
  84. */
  85. @RequiresPermissions("mes:mesLineProcess:view")
  86. @RequestMapping(value = "userTreeData")
  87. @ResponseBody
  88. public List<Map<String, Object>> userTreeData() {
  89. List<Map<String, Object>> mapList = ListUtils.newArrayList();
  90. List<Map<String, Object>> officeList = jdbcTemplate.queryForList(
  91. "select office_code, parent_code, office_name " +
  92. "from js_sys_office where status = '0' order by tree_sorts, tree_sort");
  93. for (Map<String, Object> office : officeList) {
  94. Map<String, Object> map = MapUtils.newHashMap();
  95. map.put("id", valueToString(office.get("office_code")));
  96. map.put("pId", StringUtils.defaultIfBlank(valueToString(office.get("parent_code")), "0"));
  97. map.put("name", office.get("office_name"));
  98. map.put("isParent", true);
  99. mapList.add(map);
  100. }
  101. List<Map<String, Object>> userList = jdbcTemplate.queryForList(
  102. "select u.user_code, u.login_code, u.user_name, u.ref_name, e.emp_name, e.office_code " +
  103. "from js_sys_user u " +
  104. "left join js_sys_employee e on e.emp_code = u.ref_code and e.status = '0' " +
  105. "where u.status = '0' and u.user_type = 'employee' " +
  106. "order by e.office_code, u.user_weight desc, u.user_name, u.login_code");
  107. for (Map<String, Object> user : userList) {
  108. Map<String, Object> map = MapUtils.newHashMap();
  109. String userCode = valueToString(user.get("user_code"));
  110. String userName = firstNotBlank(
  111. valueToString(user.get("user_name")),
  112. valueToString(user.get("ref_name")),
  113. valueToString(user.get("emp_name")),
  114. valueToString(user.get("login_code")),
  115. userCode);
  116. map.put("id", userCode);
  117. map.put("pId", StringUtils.defaultIfBlank(valueToString(user.get("office_code")), "0"));
  118. map.put("name", userName);
  119. map.put("isParent", false);
  120. mapList.add(map);
  121. }
  122. return mapList;
  123. }
  124. /**
  125. * 保存数据
  126. */
  127. @RequiresPermissions("mes:mesLineProcess:edit")
  128. @PostMapping(value = "save")
  129. @ResponseBody
  130. public String save(@Validated MesLineProcessUser mesLineProcessUser) {
  131. if(mesLineProcessUser.getIsNewRecord()){
  132. Set<String> userCodeSet = new LinkedHashSet<>();
  133. String[] userCodes = StringUtils.split(StringUtils.trim(mesLineProcessUser.getUserCode()), ",");
  134. if (userCodes != null) {
  135. for (String userCode : userCodes) {
  136. if (StringUtils.isNotBlank(userCode)) {
  137. userCodeSet.add(StringUtils.trim(userCode));
  138. }
  139. }
  140. }
  141. if (userCodeSet.isEmpty()) {
  142. return renderResult(Global.FALSE, text("请选择人员!"));
  143. }
  144. int saveCount = 0;
  145. for (String userCode : userCodeSet) {
  146. MesLineProcessUser exists = new MesLineProcessUser();
  147. exists.setLineProcessId(mesLineProcessUser.getLineProcessId());
  148. exists.setUserCode(userCode);
  149. Long mr = mesLineProcessUserService.findCount(exists);
  150. if(mr > 0){
  151. continue;
  152. }
  153. MesLineProcessUser saveUser = new MesLineProcessUser();
  154. saveUser.setIsNewRecord(true);
  155. saveUser.setLineProcessId(mesLineProcessUser.getLineProcessId());
  156. saveUser.setUserCode(userCode);
  157. saveUser.setAuth(mesLineProcessUser.getAuth());
  158. mesLineProcessUserService.save(saveUser);
  159. saveCount++;
  160. }
  161. if(saveCount == 0){
  162. return renderResult(Global.FALSE, text("当前人员已添加!"));
  163. }
  164. return renderResult(Global.TRUE, text("保存成功!"));
  165. }
  166. mesLineProcessUserService.save(mesLineProcessUser);
  167. return renderResult(Global.TRUE, text("保存成功!"));
  168. }
  169. /**
  170. * 删除数据
  171. */
  172. @RequiresPermissions("mes:mesLineProcess:edit")
  173. @RequestMapping(value = "delete")
  174. @ResponseBody
  175. public String delete(MesLineProcessUser mesLineProcessUser) {
  176. mesLineProcessUserService.delete(mesLineProcessUser);
  177. return renderResult(Global.TRUE, text("删除成功!"));
  178. }
  179. private String firstNotBlank(String... values) {
  180. if (values == null) {
  181. return "";
  182. }
  183. for (String value : values) {
  184. if (StringUtils.isNotBlank(value)) {
  185. return value;
  186. }
  187. }
  188. return "";
  189. }
  190. private String valueToString(Object value) {
  191. return value == null ? "" : String.valueOf(value);
  192. }
  193. }