package cn.com.lzt.sign.controller; import cn.com.lzt.arrangedutyoperate.dto.UserAndUserPersonnelDto; import cn.com.lzt.common.util.StringUtil; import cn.com.lzt.sign.entity.*; import cn.com.lzt.sign.service.TBMessageService; import cn.com.lzt.warehouse.entity.WarehouseEntity; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.*; import java.util.logging.Logger; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.util.EntityUtils; import org.jeecgframework.core.common.controller.BaseController; import org.jeecgframework.core.common.exception.BusinessException; import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; import org.jeecgframework.core.common.model.json.AjaxJson; import org.jeecgframework.core.common.model.json.DataGrid; import org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil; import org.jeecgframework.core.util.ContextHolderUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.tag.vo.datatable.SortDirection; import org.jeecgframework.web.system.pojo.base.TSBaseUser; import org.jeecgframework.web.system.pojo.base.TSUser; import org.jeecgframework.web.system.service.SystemService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping({"/tBMessageController"}) public class TBMessageController extends BaseController { /* 26 */ private static final Logger logger = Logger.getLogger(String.valueOf(cn.com.lzt.sign.controller.TBMessageController.class)); @Autowired private TBMessageService tBMessageService; @Autowired private SystemService systemService; @RequestMapping(params = {"list"}) public ModelAndView list(HttpServletRequest request) { /* 38 */ return new ModelAndView("cn/com/lzt/sign/tbmessage/tBMessageList"); } /** * 获取当前登录人的审批权限集合 * * @return * @author刘梦祥 * @Date 2021年11月29日00:42:57 */ public Map> getUserRuleMap() { // 获取当前操作人的信息 TSUser user = ResourceUtil.getSessionUser(); TSBaseUser tsBaseUser = this.systemService.getEntity(TSBaseUser.class, user.getId()); DataGrid dataGrid1 = new DataGrid(); CriteriaQuery criteriaQuery1 = new CriteriaQuery(UserAndUserPersonnelDto.class, dataGrid1); criteriaQuery1.eq("userid", user.getId()); criteriaQuery1.add(); List userAndUserPersonnelDtoList = this.systemService.getListByCriteriaQuery(criteriaQuery1, true); Map> ruleMap = new HashMap<>(); // 得到登录人的职位 List departidList = new ArrayList<>(); if (tsBaseUser != null && tsBaseUser.getDepartid() != null) { departidList.add(tsBaseUser.getDepartid()); } // 得到操作人的岗位 List inPostidList = new ArrayList<>(); if (userAndUserPersonnelDtoList != null && userAndUserPersonnelDtoList.size() > 0) { for (UserAndUserPersonnelDto userInfoDto : userAndUserPersonnelDtoList) { if (org.jeecgframework.core.util.StringUtil.isNotEmpty(userInfoDto.getInPostid())) { if (!inPostidList.contains(userInfoDto.getInPostid())) { inPostidList.add(userInfoDto.getInPostid()); } } } } ruleMap.put("departId", departidList); ruleMap.put("inPostid", inPostidList); return ruleMap; } @RequestMapping(params = {"datagrid"}) public void datagrid(TBMessageEntity tBMessage, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { StringBuffer queryStr = new StringBuffer(); queryStr.append(" where 1 = 1 "); // 封装标题查询条件 if (org.jeecgframework.core.util.StringUtil.isNotEmpty(request.getParameter("messageTitle"))) { queryStr.append(" and message_title like \"%" + request.getParameter("messageTitle") + "%\""); } // 封装发送方式查询条件 if (org.jeecgframework.core.util.StringUtil.isNotEmpty(request.getParameter("messageMode"))) { queryStr.append(" and message_mode = \"" + request.getParameter("messageMode") + "\""); } // 封装审批状态查询条件 if (org.jeecgframework.core.util.StringUtil.isNotEmpty(request.getParameter("messageApprove"))) { queryStr.append(" and message_approve = \"" + request.getParameter("messageApprove") + "\""); } List> dataGridList = this.systemService.toDataGridByDataGrid(" t_b_message ", "message_spare_two", "request_id", "create_date", dataGrid, queryStr.toString()); if(dataGridList != null && dataGridList.size() > 0){ for (Map dataGridItem: dataGridList){ if(dataGridItem.containsKey("messageFileUrl")){ if(dataGridItem.get("messageFileUrl") != null && StringUtils.isNotEmpty(String.valueOf(dataGridItem.get("messageFileUrl")))){ dataGridItem.put("isFile","有附件"); }else{ dataGridItem.put("isFile","无附件"); } } if(dataGridItem.containsKey("messageApprove")){ if(dataGridItem.get("messageApprove") != null && StringUtils.isNotEmpty(String.valueOf(dataGridItem.get("messageApprove")))){ dataGridItem.put("isSend","已发送"); }else{ dataGridItem.put("isSend","未发送"); } } } } dataGrid.setResults(dataGridList); TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = {"goAdd"}) public ModelAndView goAdd(HttpServletRequest request) { return new ModelAndView("cn/com/lzt/sign/tbmessage/message-add"); } @RequestMapping(params = {"goEdit"}) public ModelAndView goEdit(TBMessageEntity messageEntity,HttpServletRequest request) { String id = messageEntity.getId(); messageEntity = (TBMessageEntity) this.tBMessageService.getEntity(TBMessageEntity.class, id); TBMessageEntityShow tbMessageEntityShow = new TBMessageEntityShow(); BeanUtils.copyProperties(messageEntity, tbMessageEntityShow); tbMessageEntityShow.setFileNames(Arrays.asList(messageEntity.getMessageFilename().split(","))); tbMessageEntityShow.setFileUrls(Arrays.asList(messageEntity.getMessageFileUrl().split(","))); request.setAttribute("message", tbMessageEntityShow); return new ModelAndView("cn/com/lzt/sign/tbmessage/message-edit"); } @RequestMapping(params = "doAdd") @ResponseBody public AjaxJson doAdd(TBMessageEntity common, HttpServletRequest request) { HttpSession session = ContextHolderUtils.getSession(); TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER"); String userid = tuser.getId(); String message = null; AjaxJson j = new AjaxJson(); message = "添加成功"; j.setSuccess(true); //审批用的 common.setMessageSpareTwo(tuser.getId()); common.setMessageApprove("待提交"); common.setMessageRange(request.getParameter("sendScope")); common.setMessageRangeDept(request.getParameter("sendScopeNames")); common.setMessageRangeDeptId(request.getParameter("sendScopeIds")); common.setMessageCont(request.getParameter("text")); common.setMessageSend("0"); try{ if (!StringUtil.isEmpty(common.getId())) { TBMessageEntity entity = new TBMessageEntity(); entity.setId(common.getId()); tBMessageService.delete(entity); tBMessageService.save(common); } else { tBMessageService.save(common); } }catch(Exception e){ e.printStackTrace(); message = "添加失败"; j.setSuccess(false); throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } @RequestMapping(params = "testMessage") @ResponseBody public AjaxJson testMessage(TBMessageEntity common, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "添加成功"; j.setSuccess(true); try{ tBMessageService.updateBySqlString("update t_b_message set message_send='1' where id='" + common.getId() + "'"); }catch(Exception e){ e.printStackTrace(); message = "添加失败"; j.setSuccess(false); throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } @RequestMapping(params = "deleteMessage") @ResponseBody public AjaxJson deleteMessage(HttpServletRequest request) { AjaxJson j = new AjaxJson(); String message = "添加成功"; j.setSuccess(true); try{ TBMessageEntity entity = new TBMessageEntity(); entity.setId(request.getParameter("id")); tBMessageService.delete(entity); }catch(Exception e){ e.printStackTrace(); message = "添加失败"; j.setSuccess(false); throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } @RequestMapping(params = {"goUpdate"}) public ModelAndView goUpdate(TBMessageEntity messageEntity, HttpServletRequest request) { String id = messageEntity.getId(); messageEntity = (TBMessageEntity) this.tBMessageService.getEntity(TBMessageEntity.class, id); TBMessageEntityShow tbMessageEntityShow = new TBMessageEntityShow(); BeanUtils.copyProperties(messageEntity, tbMessageEntityShow); tbMessageEntityShow.setFileNames(Arrays.asList(messageEntity.getMessageFilename().split(","))); tbMessageEntityShow.setFileUrls(Arrays.asList(messageEntity.getMessageFileUrl().split(","))); request.setAttribute("message", tbMessageEntityShow); return new ModelAndView("cn/com/lzt/sign/tbmessage/message-update"); } @RequestMapping(params = {"goUpdateView"}) public ModelAndView goUpdateView(TBMessageEntity messageEntity, HttpServletRequest request) { String id = messageEntity.getId(); messageEntity = (TBMessageEntity) this.tBMessageService.getEntity(TBMessageEntity.class, id); TBMessageEntityShow tbMessageEntityShow = new TBMessageEntityShow(); BeanUtils.copyProperties(messageEntity, tbMessageEntityShow); tbMessageEntityShow.setFileNames(Arrays.asList(messageEntity.getMessageFilename().split(","))); tbMessageEntityShow.setFileUrls(Arrays.asList(messageEntity.getMessageFileUrl().split(","))); request.setAttribute("message", tbMessageEntityShow); return new ModelAndView("cn/com/lzt/sign/tbmessage/message-view"); } @RequestMapping(params = {"getFile"}) public void downLoadFromUrl(HttpServletResponse response, String urlStr, String fileName) throws IOException { URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //设置超时间为3秒 conn.setConnectTimeout(3 * 1000); //得到输入流 InputStream inputStream = conn.getInputStream(); //获取自己数组 byte[] getData = readInputStream(inputStream); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName)); OutputStream out = response.getOutputStream(); out.write(getData); out.close(); } /** * 从输入流中获取字节数组 * @param inputStream * @return * @throws IOException */ public static byte[] readInputStream(InputStream inputStream) throws IOException { byte[] buffer = new byte[1024]; int len = 0; ByteArrayOutputStream bos = new ByteArrayOutputStream(); while((len = inputStream.read(buffer)) != -1) { bos.write(buffer, 0, len); } bos.close(); return bos.toByteArray(); } }