TBMessageController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. package cn.com.lzt.sign.controller;
  2. import cn.com.lzt.arrangedutyoperate.dto.UserAndUserPersonnelDto;
  3. import cn.com.lzt.common.util.StringUtil;
  4. import cn.com.lzt.sign.entity.*;
  5. import cn.com.lzt.sign.service.TBMessageService;
  6. import cn.com.lzt.warehouse.entity.WarehouseEntity;
  7. import java.io.ByteArrayOutputStream;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.io.OutputStream;
  11. import java.net.HttpURLConnection;
  12. import java.net.URL;
  13. import java.net.URLEncoder;
  14. import java.util.*;
  15. import java.util.logging.Logger;
  16. import java.util.stream.Collectors;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import javax.servlet.http.HttpSession;
  20. import com.alibaba.fastjson.JSONObject;
  21. import org.apache.commons.lang3.StringUtils;
  22. import org.apache.http.HttpEntity;
  23. import org.apache.http.util.EntityUtils;
  24. import org.jeecgframework.core.common.controller.BaseController;
  25. import org.jeecgframework.core.common.exception.BusinessException;
  26. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  27. import org.jeecgframework.core.common.model.json.AjaxJson;
  28. import org.jeecgframework.core.common.model.json.DataGrid;
  29. import org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil;
  30. import org.jeecgframework.core.util.ContextHolderUtils;
  31. import org.jeecgframework.core.util.ResourceUtil;
  32. import org.jeecgframework.tag.core.easyui.TagUtil;
  33. import org.jeecgframework.tag.vo.datatable.SortDirection;
  34. import org.jeecgframework.web.system.pojo.base.TSBaseUser;
  35. import org.jeecgframework.web.system.pojo.base.TSUser;
  36. import org.jeecgframework.web.system.service.SystemService;
  37. import org.springframework.beans.BeanUtils;
  38. import org.springframework.beans.factory.annotation.Autowired;
  39. import org.springframework.stereotype.Controller;
  40. import org.springframework.web.bind.annotation.RequestMapping;
  41. import org.springframework.web.bind.annotation.ResponseBody;
  42. import org.springframework.web.servlet.ModelAndView;
  43. @Controller
  44. @RequestMapping({"/tBMessageController"})
  45. public class TBMessageController
  46. extends BaseController {
  47. /* 26 */ private static final Logger logger = Logger.getLogger(String.valueOf(cn.com.lzt.sign.controller.TBMessageController.class));
  48. @Autowired
  49. private TBMessageService tBMessageService;
  50. @Autowired
  51. private SystemService systemService;
  52. @RequestMapping(params = {"list"})
  53. public ModelAndView list(HttpServletRequest request) {
  54. /* 38 */
  55. return new ModelAndView("cn/com/lzt/sign/tbmessage/tBMessageList");
  56. }
  57. /**
  58. * 获取当前登录人的审批权限集合
  59. *
  60. * @return
  61. * @author刘梦祥
  62. * @Date 2021年11月29日00:42:57
  63. */
  64. public Map<String, List<String>> getUserRuleMap() {
  65. // 获取当前操作人的信息
  66. TSUser user = ResourceUtil.getSessionUser();
  67. TSBaseUser tsBaseUser = this.systemService.getEntity(TSBaseUser.class, user.getId());
  68. DataGrid dataGrid1 = new DataGrid();
  69. CriteriaQuery criteriaQuery1 = new CriteriaQuery(UserAndUserPersonnelDto.class, dataGrid1);
  70. criteriaQuery1.eq("userid", user.getId());
  71. criteriaQuery1.add();
  72. List<UserAndUserPersonnelDto> userAndUserPersonnelDtoList = this.systemService.getListByCriteriaQuery(criteriaQuery1, true);
  73. Map<String, List<String>> ruleMap = new HashMap<>();
  74. // 得到登录人的职位
  75. List<String> departidList = new ArrayList<>();
  76. if (tsBaseUser != null && tsBaseUser.getDepartid() != null) {
  77. departidList.add(tsBaseUser.getDepartid());
  78. }
  79. // 得到操作人的岗位
  80. List<String> inPostidList = new ArrayList<>();
  81. if (userAndUserPersonnelDtoList != null && userAndUserPersonnelDtoList.size() > 0) {
  82. for (UserAndUserPersonnelDto userInfoDto : userAndUserPersonnelDtoList) {
  83. if (org.jeecgframework.core.util.StringUtil.isNotEmpty(userInfoDto.getInPostid())) {
  84. if (!inPostidList.contains(userInfoDto.getInPostid())) {
  85. inPostidList.add(userInfoDto.getInPostid());
  86. }
  87. }
  88. }
  89. }
  90. ruleMap.put("departId", departidList);
  91. ruleMap.put("inPostid", inPostidList);
  92. return ruleMap;
  93. }
  94. @RequestMapping(params = {"datagrid"})
  95. public void datagrid(TBMessageEntity tBMessage, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  96. StringBuffer queryStr = new StringBuffer();
  97. queryStr.append(" where 1 = 1 ");
  98. // 封装标题查询条件
  99. if (org.jeecgframework.core.util.StringUtil.isNotEmpty(request.getParameter("messageTitle"))) {
  100. queryStr.append(" and message_title like \"%" + request.getParameter("messageTitle") + "%\"");
  101. }
  102. // 封装发送方式查询条件
  103. if (org.jeecgframework.core.util.StringUtil.isNotEmpty(request.getParameter("messageMode"))) {
  104. queryStr.append(" and message_mode = \"" + request.getParameter("messageMode") + "\"");
  105. }
  106. // 封装审批状态查询条件
  107. if (org.jeecgframework.core.util.StringUtil.isNotEmpty(request.getParameter("messageApprove"))) {
  108. queryStr.append(" and message_approve = \"" + request.getParameter("messageApprove") + "\"");
  109. }
  110. List<Map<String, Object>> dataGridList = this.systemService.toDataGridByDataGrid(" t_b_message ", "message_spare_two", "request_id", "create_date", dataGrid, queryStr.toString());
  111. if(dataGridList != null && dataGridList.size() > 0){
  112. for (Map<String,Object> dataGridItem: dataGridList){
  113. if(dataGridItem.containsKey("messageFileUrl")){
  114. if(dataGridItem.get("messageFileUrl") != null && StringUtils.isNotEmpty(String.valueOf(dataGridItem.get("messageFileUrl")))){
  115. dataGridItem.put("isFile","有附件");
  116. }else{
  117. dataGridItem.put("isFile","无附件");
  118. }
  119. }
  120. if(dataGridItem.containsKey("messageApprove")){
  121. if(dataGridItem.get("messageApprove") != null && StringUtils.isNotEmpty(String.valueOf(dataGridItem.get("messageApprove")))){
  122. dataGridItem.put("isSend","已发送");
  123. }else{
  124. dataGridItem.put("isSend","未发送");
  125. }
  126. }
  127. }
  128. }
  129. dataGrid.setResults(dataGridList);
  130. TagUtil.datagrid(response, dataGrid);
  131. }
  132. @RequestMapping(params = {"goAdd"})
  133. public ModelAndView goAdd(HttpServletRequest request) {
  134. return new ModelAndView("cn/com/lzt/sign/tbmessage/message-add");
  135. }
  136. @RequestMapping(params = {"goEdit"})
  137. public ModelAndView goEdit(TBMessageEntity messageEntity,HttpServletRequest request) {
  138. String id = messageEntity.getId();
  139. messageEntity = (TBMessageEntity) this.tBMessageService.getEntity(TBMessageEntity.class, id);
  140. TBMessageEntityShow tbMessageEntityShow = new TBMessageEntityShow();
  141. BeanUtils.copyProperties(messageEntity, tbMessageEntityShow);
  142. tbMessageEntityShow.setFileNames(Arrays.asList(messageEntity.getMessageFilename().split(",")));
  143. tbMessageEntityShow.setFileUrls(Arrays.asList(messageEntity.getMessageFileUrl().split(",")));
  144. request.setAttribute("message", tbMessageEntityShow);
  145. return new ModelAndView("cn/com/lzt/sign/tbmessage/message-edit");
  146. }
  147. @RequestMapping(params = "doAdd")
  148. @ResponseBody
  149. public AjaxJson doAdd(TBMessageEntity common, HttpServletRequest request) {
  150. HttpSession session = ContextHolderUtils.getSession();
  151. TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER");
  152. String userid = tuser.getId();
  153. String message = null;
  154. AjaxJson j = new AjaxJson();
  155. message = "添加成功";
  156. j.setSuccess(true);
  157. //审批用的
  158. common.setMessageSpareTwo(tuser.getId());
  159. common.setMessageApprove("待提交");
  160. common.setMessageRange(request.getParameter("sendScope"));
  161. common.setMessageRangeDept(request.getParameter("sendScopeNames"));
  162. common.setMessageRangeDeptId(request.getParameter("sendScopeIds"));
  163. common.setMessageCont(request.getParameter("text"));
  164. common.setMessageSend("0");
  165. try{
  166. if (!StringUtil.isEmpty(common.getId())) {
  167. TBMessageEntity entity = new TBMessageEntity();
  168. entity.setId(common.getId());
  169. tBMessageService.delete(entity);
  170. tBMessageService.save(common);
  171. } else {
  172. tBMessageService.save(common);
  173. }
  174. }catch(Exception e){
  175. e.printStackTrace();
  176. message = "添加失败";
  177. j.setSuccess(false);
  178. throw new BusinessException(e.getMessage());
  179. }
  180. j.setMsg(message);
  181. return j;
  182. }
  183. @RequestMapping(params = "testMessage")
  184. @ResponseBody
  185. public AjaxJson testMessage(TBMessageEntity common, HttpServletRequest request) {
  186. String message = null;
  187. AjaxJson j = new AjaxJson();
  188. message = "添加成功";
  189. j.setSuccess(true);
  190. try{
  191. tBMessageService.updateBySqlString("update t_b_message set message_send='1' where id='" + common.getId() + "'");
  192. }catch(Exception e){
  193. e.printStackTrace();
  194. message = "添加失败";
  195. j.setSuccess(false);
  196. throw new BusinessException(e.getMessage());
  197. }
  198. j.setMsg(message);
  199. return j;
  200. }
  201. @RequestMapping(params = "deleteMessage")
  202. @ResponseBody
  203. public AjaxJson deleteMessage(HttpServletRequest request) {
  204. AjaxJson j = new AjaxJson();
  205. String message = "添加成功";
  206. j.setSuccess(true);
  207. try{
  208. TBMessageEntity entity = new TBMessageEntity();
  209. entity.setId(request.getParameter("id"));
  210. tBMessageService.delete(entity);
  211. }catch(Exception e){
  212. e.printStackTrace();
  213. message = "添加失败";
  214. j.setSuccess(false);
  215. throw new BusinessException(e.getMessage());
  216. }
  217. j.setMsg(message);
  218. return j;
  219. }
  220. @RequestMapping(params = {"goUpdate"})
  221. public ModelAndView goUpdate(TBMessageEntity messageEntity, HttpServletRequest request) {
  222. String id = messageEntity.getId();
  223. messageEntity = (TBMessageEntity) this.tBMessageService.getEntity(TBMessageEntity.class, id);
  224. TBMessageEntityShow tbMessageEntityShow = new TBMessageEntityShow();
  225. BeanUtils.copyProperties(messageEntity, tbMessageEntityShow);
  226. tbMessageEntityShow.setFileNames(Arrays.asList(messageEntity.getMessageFilename().split(",")));
  227. tbMessageEntityShow.setFileUrls(Arrays.asList(messageEntity.getMessageFileUrl().split(",")));
  228. request.setAttribute("message", tbMessageEntityShow);
  229. return new ModelAndView("cn/com/lzt/sign/tbmessage/message-update");
  230. }
  231. @RequestMapping(params = {"goUpdateView"})
  232. public ModelAndView goUpdateView(TBMessageEntity messageEntity, HttpServletRequest request) {
  233. String id = messageEntity.getId();
  234. messageEntity = (TBMessageEntity) this.tBMessageService.getEntity(TBMessageEntity.class, id);
  235. TBMessageEntityShow tbMessageEntityShow = new TBMessageEntityShow();
  236. BeanUtils.copyProperties(messageEntity, tbMessageEntityShow);
  237. tbMessageEntityShow.setFileNames(Arrays.asList(messageEntity.getMessageFilename().split(",")));
  238. tbMessageEntityShow.setFileUrls(Arrays.asList(messageEntity.getMessageFileUrl().split(",")));
  239. request.setAttribute("message", tbMessageEntityShow);
  240. return new ModelAndView("cn/com/lzt/sign/tbmessage/message-view");
  241. }
  242. @RequestMapping(params = {"getFile"})
  243. public void downLoadFromUrl(HttpServletResponse response, String urlStr, String fileName) throws IOException {
  244. URL url = new URL(urlStr);
  245. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  246. //设置超时间为3秒
  247. conn.setConnectTimeout(3 * 1000);
  248. //得到输入流
  249. InputStream inputStream = conn.getInputStream();
  250. //获取自己数组
  251. byte[] getData = readInputStream(inputStream);
  252. response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName));
  253. OutputStream out = response.getOutputStream();
  254. out.write(getData);
  255. out.close();
  256. }
  257. /**
  258. * 从输入流中获取字节数组
  259. * @param inputStream
  260. * @return
  261. * @throws IOException
  262. */
  263. public static byte[] readInputStream(InputStream inputStream) throws IOException {
  264. byte[] buffer = new byte[1024];
  265. int len = 0;
  266. ByteArrayOutputStream bos = new ByteArrayOutputStream();
  267. while((len = inputStream.read(buffer)) != -1) {
  268. bos.write(buffer, 0, len);
  269. }
  270. bos.close();
  271. return bos.toByteArray();
  272. }
  273. }