package cn.com.lzt.sign.controller; import cn.com.lzt.arrangedutyoperate.dto.UserAndUserPersonnelDto; import cn.com.lzt.duties.entity.DutiesEntity; import cn.com.lzt.sign.entity.*; import cn.com.lzt.sign.service.TBOfficeService; import cn.com.lzt.sign.service.TBRequestFeedbackService; import cn.com.lzt.sign.service.TBRequestService; import cn.com.lzt.useroptions.entity.TBusUserOptionsEntity; import cn.com.lzt.useroptions.service.TBusUserOptionsServiceI; import cn.com.lzt.warehouse.entity.WarehouseEntity; import java.text.SimpleDateFormat; 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.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.LogUtil; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.tag.vo.datatable.SortDirection; import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI; import org.jeecgframework.web.system.pojo.base.TSBaseUser; import org.jeecgframework.web.system.pojo.base.TSDepart; 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({"/tBOfficeController"}) public class TBOfficeController extends BaseController { /* 26 */ private static final Logger logger = Logger.getLogger(String.valueOf(cn.com.lzt.sign.controller.TBOfficeController.class)); @Autowired private TBOfficeService tBOfficeService; @Autowired private TBusUserOptionsServiceI userOptionsService; @Autowired private CgFormFieldServiceI cgFormFieldService; @Autowired private TBRequestFeedbackService tBRequestFeedbackService; @Autowired private TBRequestService tBRequestService; @Autowired private SystemService systemService; @RequestMapping(params = {"list"}) public ModelAndView list(HttpServletRequest request) { /* 38 */ return new ModelAndView("cn/com/lzt/sign/tboffice/tBOfficeList"); } @RequestMapping(params = {"datagrid"}) public void datagrid(TBOfficeEntity tBOffice, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { StringBuffer queryStr = new StringBuffer(); queryStr.append(" where 1 = 1 "); // 封装外出员工查询条件 if (StringUtil.isNotEmpty(request.getParameter("officeTravelUser"))) { queryStr.append(" and office_travel_user like \"%" + request.getParameter("officeTravelUser") + "%\""); } // 封装请购科室查询条件 if (StringUtil.isNotEmpty(request.getParameter("officeDeptId"))) { queryStr.append(" and office_dept_id = \"" + request.getParameter("officeDeptId") + "\""); } // 封装日期查询条件 if (StringUtil.isNotEmpty(request.getParameter("officeStartDate")) && StringUtil.isNotEmpty(request.getParameter("officeEndDate"))) { queryStr.append(" and office_start_date >= \"" + request.getParameter("officeStartDate") + "\" and office_end_date <= \"" + request.getParameter("officeEndDate") + "\" "); } // 封装审批状态查询条件 if (StringUtil.isNotEmpty(request.getParameter("officeApprove"))) { queryStr.append(" and office_approve = \"" + request.getParameter("officeApprove") + "\""); } List> dataGridList = this.systemService.toDataGridByDataGrid(" t_b_office ", "office_spare_two", "request_id", "create_date", dataGrid, queryStr.toString()); dataGrid.setResults(dataGridList); TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = "goAdd") public ModelAndView goAdd(HttpServletRequest request) { HttpSession session = ContextHolderUtils.getSession(); TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER"); String sql = "SELECT id,departname FROM t_s_depart where id in (select org_id from t_s_user_org where user_id = '"+tuser.getId()+"')"; List infoList = systemService.findListbySql(sql); List tSDepartList = infoList.stream().map(e -> { TSDepart sta = new TSDepart(); if (e[0] != null) { sta.setId(e[0].toString()); } if (e[1] != null) { sta.setDepartname(e[1].toString()); } return sta; }).collect(Collectors.toList()); String departid = ""; String departname = ""; try { if(tSDepartList!=null && tSDepartList.size()>0){ TSDepart dept = tSDepartList.get(0); departid = dept.getId(); departname = dept.getDepartname(); } } catch (Exception e) { e.printStackTrace(); LogUtil.error(e.getMessage()); } request.setAttribute("officeDept",departname); request.setAttribute("officeDeptId",departid); return new ModelAndView("cn/com/lzt/sign/tboffice/tBOfficeList-add"); } @RequestMapping(params = {"doAddOrUpdate"}) @ResponseBody public AjaxJson doAddOrUpdate(TBOfficeEntity tBOffice, HttpServletRequest request) { HttpSession session = ContextHolderUtils.getSession(); TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER"); String userid = tuser.getId(); String blog = request.getParameter("blog"); //审批用的 tBOffice.setOfficeSpareTwo(userid); tBOffice.setOfficeApprove("待提交"); tBOffice.setCreateDate(tBOffice.getCreateDate()); tBOffice.setCreateName(tBOffice.getCreateName()); //end AjaxJson j = new AjaxJson(); String message = "添加成功"; if("1".equals(blog)){ message = "修改成功"; } try { if("1".equals(blog)){ this.tBOfficeService.Update(tBOffice); }else{ tBOffice.setOfficeDate(new Date()); this.tBOfficeService.save(tBOffice); } } catch (Exception e) { e.printStackTrace(); message = "添加失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } @RequestMapping(params = {"goUpdate"}) public ModelAndView goUpdate(TBOfficeEntity tBOffice, HttpServletRequest request) { String id = tBOffice.getId(); tBOffice = this.tBOfficeService.getEntity(TBOfficeEntity.class, id); SimpleDateFormat simpleDateFormatYMD = new SimpleDateFormat("yyyy-MM-dd"); tBOffice.setOfficeStartDateStr(simpleDateFormatYMD.format(tBOffice.getOfficeStartDate())); tBOffice.setOfficeEndDateStr(simpleDateFormatYMD.format(tBOffice.getOfficeEndDate())); TBOfficeEntityShow tbOfficeEntityShow = new TBOfficeEntityShow(); BeanUtils.copyProperties(tBOffice, tbOfficeEntityShow); tbOfficeEntityShow.setFileNames(Arrays.asList(tBOffice.getOfficeFilename().split(","))); tbOfficeEntityShow.setFileUrls(Arrays.asList(tBOffice.getOfficeFileUrl().split(","))); request.setAttribute("tBOffice", tbOfficeEntityShow); request.setAttribute("flag", request.getParameter("flag")); return new ModelAndView("cn/com/lzt/sign/tboffice/tBOfficeList-update"); } @RequestMapping(params = "doDel") @ResponseBody public AjaxJson doDel(TBOfficeEntity tBOffice, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "删除成功"; try{ tBOfficeService.deleteEntityById(TBOfficeEntity.class, tBOffice.getId()); }catch(Exception e){ e.printStackTrace(); message = "删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 获取当前登录人的审批权限集合 * * @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 (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 = {"goPrint"}) public ModelAndView goPrint(TBOfficeEntity tBOffice, HttpServletRequest request) { String id = request.getParameter("id"); try { //基本数据 tBOffice = (TBOfficeEntity) this.tBOfficeService.getEntity(TBOfficeEntity.class, id); if (!tBOffice.getOfficeApprove().equals("已通过")) { throw new BusinessException("未审批通过"); } //审批数据 String requestId = tBOffice.getRequestId(); if(null!=requestId&&!"".equals(requestId)) { DataGrid dataGrid = new DataGrid(); CriteriaQuery cq = new CriteriaQuery(TBRequestFeedbackEntity.class, dataGrid); TBRequestFeedbackEntity tBRequestFeedback = new TBRequestFeedbackEntity(); tBRequestFeedback.setRequestId(requestId); HqlGenerateUtil.installHql(cq, tBRequestFeedback, request.getParameterMap()); try { cq.eq("requestId", requestId); cq.addOrder("createdAt", SortDirection.asc); } catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); this.tBRequestFeedbackService.getDataGridReturn(cq, true); List tBRequestFeedbackList = dataGrid.getResults(); if (null != tBRequestFeedbackList && tBRequestFeedbackList.size() > 0) { for (int i = 0; i < tBRequestFeedbackList.size(); i++) { TBRequestFeedbackEntity Feedback = tBRequestFeedbackList.get(i); String FeedbackUserId = Feedback.getUserId(); TSBaseUser baseUser = systemService.get(TSBaseUser.class, FeedbackUserId); tBRequestFeedbackList.get(i).setUserName(baseUser.getRealName()); } } request.setAttribute("size", (dataGrid.getResults()).size()); request.setAttribute("tBSealList", dataGrid.getResults()); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String sealDate = sdf.format(tBOffice.getOfficeDate()); request.setAttribute("sealDate",sealDate); String bm = "SQ"+sdf1.format(tBOffice.getOfficeDate())+"0001"; request.setAttribute("newDate",sdf.format(tBOffice.getOfficeDate())); request.setAttribute("bm",bm); HttpSession session = ContextHolderUtils.getSession(); TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER"); String str = "SELECT post_name FROM t_bus_post where id in ( SELECT in_postid FROM t_bus_user_personnel where userid = '"+tuser.getId()+"' )"; List infoList = systemService.findListbySql(str); if(infoList!=null && infoList.size()>0){ request.setAttribute("duties",infoList.get(0)); } TSBaseUser baseUser = systemService.get(TSBaseUser.class, tBOffice.getOfficeSpareTwo()); request.setAttribute("username",baseUser.getRealName()); Date now = new Date(); request.setAttribute("nowdate",sdf2.format((now))); request.setAttribute("nowName",tuser.getRealName()); String startDate = sdf.format(tBOffice.getOfficeStartDate()); String endDate = sdf.format(tBOffice.getOfficeEndDate()); request.setAttribute("startDate",startDate); request.setAttribute("endDate",endDate); request.setAttribute("tBOffice",tBOffice); request.setAttribute("blog", "true"); }catch (Exception e){ request.setAttribute("blog", "请选择已通过的数据"); } return new ModelAndView("cn/com/lzt/sign/tboffice/tBOfficeList-print"); } }