package cn.com.lzt.sign.controller; import cn.com.lzt.arrangedutyoperate.dto.UserAndUserPersonnelDto; import cn.com.lzt.car.event.entity.CarEventEntity; import cn.com.lzt.common.util.PdfUtil; import cn.com.lzt.sign.entity.*; import cn.com.lzt.sign.page.Statistics; import cn.com.lzt.sign.page.StatisticsInfo; import cn.com.lzt.sign.page.TBAssetsPage; import cn.com.lzt.sign.service.TBRequestFeedbackService; import cn.com.lzt.sign.service.TBRequestService; import cn.com.lzt.sign.service.TBSealService; import cn.com.lzt.useractiviti.data.util.ActivitiTools; import cn.com.lzt.useroptions.entity.TBusUserOptionsEntity; import cn.com.lzt.useroptions.service.TBusUserOptionsServiceI; import cn.com.lzt.warehouse.entity.WarehouseEntity; import java.text.ParseException; 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 com.daju.mix.dao.service.ITSBaseUserService; import com.lowagie.text.Chunk; import com.lowagie.text.Element; import org.apache.commons.lang.StringUtils; 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.constant.Globals; import org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil; import org.jeecgframework.core.util.*; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.tag.vo.datatable.SortDirection; import org.jeecgframework.web.cgform.entity.upload.CgUploadEntity; import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI; import org.jeecgframework.web.system.pojo.base.*; 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.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping({"/tBSealController"}) public class TBSealController extends BaseController { private static final Logger logger = Logger.getLogger(String.valueOf(cn.com.lzt.sign.controller.TBSealController.class)); @Autowired private SystemService systemService; @Autowired private TBSealService tBSealService; @Autowired private TBusUserOptionsServiceI userOptionsService; @Autowired private CgFormFieldServiceI cgFormFieldService; @Autowired private TBRequestFeedbackService tBRequestFeedbackService; @Autowired private TBRequestService tBRequestService; @RequestMapping(params = {"list"}) public ModelAndView list(HttpServletRequest request) { return new ModelAndView("cn/com/lzt/sign/tbseal/tBSealList"); } /** * 获取当前登录人的审批权限集合 * * @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 = {"datagrid"}) public void datagrid(TBSealEntity tBSeal, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { StringBuffer queryStr = new StringBuffer(); queryStr.append(" where 1 = 1 "); // 封装请购科室查询条件 if (StringUtil.isNotEmpty(request.getParameter("sealDeptId"))) { queryStr.append(" and seal_dept_id = \"" + request.getParameter("sealDeptId") + "\""); } // 封装用印类别查询条件 if (StringUtil.isNotEmpty(request.getParameter("sealTypeId"))) { queryStr.append(" and seal_type_id = \"" + request.getParameter("sealTypeId") + "\""); } // 封装审批状态查询条件 if (StringUtil.isNotEmpty(request.getParameter("sealApprove"))) { queryStr.append(" and seal_approve = \"" + request.getParameter("sealApprove") + "\""); } // 封装请购日期查询条件 if (StringUtil.isNotEmpty(request.getParameter("sealDate_begin")) && StringUtil.isNotEmpty(request.getParameter("sealDate_end"))) { queryStr.append(" and seal_date between \"" + request.getParameter("sealDate_begin") + "\" and \"" + request.getParameter("sealDate_end") + "\" "); } List> dataGridList = this.systemService.toDataGridByDataGrid(" t_b_seal ", "seal_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 user = ResourceUtil.getSessionUser(); String sql = "SELECT id,departname FROM t_s_depart where id in (select org_id from t_s_user_org where user_id = '"+user.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("sealDept",departname); request.setAttribute("sealDeptId",departid); return new ModelAndView("cn/com/lzt/sign/tbseal/tBSealList-add"); } @RequestMapping(params = {"doAddOrUpdate"}) @ResponseBody public AjaxJson doAddOrUpdate(TBSealEntity tBSeal, HttpServletRequest request) { HttpSession session = ContextHolderUtils.getSession(); TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER"); String userid = tuser.getId(); String blog = request.getParameter("blog"); String sealTypeId = request.getParameter("sealTypeId"); tBSeal.setSealTypeId(sealTypeId); //审批用的 tBSeal.setSealSpareTwo(userid); tBSeal.setSealApprove("待提交"); //end AjaxJson j = new AjaxJson(); String message = "添加成功"; if("1".equals(blog)){ message = "修改成功"; } try { if("1".equals(blog)){ this.tBSealService.Update(tBSeal); }else{ this.tBSealService.save(tBSeal); } } catch (Exception e) { e.printStackTrace(); message = "添加失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } @RequestMapping(params = {"goUpdate"}) public ModelAndView goUpdate(TBSealEntity tBSeal, HttpServletRequest request) throws ParseException { String id = tBSeal.getId(); tBSeal = (TBSealEntity) this.tBSealService.getEntity(TBSealEntity.class, id); SimpleDateFormat simpleDateFormatYMD = new SimpleDateFormat("yyyy-MM-dd"); tBSeal.setSealDateStr(simpleDateFormatYMD.format(tBSeal.getSealDate())); TBSealEntityShow tbSealEntityShow = new TBSealEntityShow(); BeanUtils.copyProperties(tBSeal, tbSealEntityShow); tbSealEntityShow.setFileNames(Arrays.asList(tBSeal.getSealFilename().split(","))); tbSealEntityShow.setFileUrls(Arrays.asList(tBSeal.getSealFileUrl().split(","))); request.setAttribute("tBSeal", tbSealEntityShow); request.setAttribute("flag", request.getParameter("flag")); return new ModelAndView("cn/com/lzt/sign/tbseal/tBSealList-update"); } @RequestMapping(params = "doDel") @ResponseBody public AjaxJson doDel(TBSealEntity tBSeal, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "删除成功"; try{ tBSealService.deleteEntityById(TBSealEntity.class, tBSeal.getId()); }catch(Exception e){ e.printStackTrace(); message = "删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 获取文件附件信息 * * @param id leave主键id */ @RequestMapping(params = "getFiles") @ResponseBody public AjaxJson getFiles(String id){ List uploadBeans = cgFormFieldService.findByProperty(CgUploadEntity.class, "cgformId", id); List> files = new ArrayList>(0); for(CgUploadEntity b:uploadBeans){ String title = b.getAttachmenttitle();//附件名 String fileKey = b.getId();//附件主键 String path = b.getRealpath();//附件路径 String field = b.getCgformField();//表单中作为附件控件的字段 Map file = new HashMap(); file.put("title", title); file.put("fileKey", fileKey); file.put("path", path); file.put("field", field==null?"":field); files.add(file); } AjaxJson j = new AjaxJson(); j.setObj(files); return j; } @RequestMapping(params = {"goPrint"}) public ModelAndView goPrint(TBSealEntity tBSeal,HttpServletRequest request) { String id = request.getParameter("id"); try { //基本数据 tBSeal = (TBSealEntity) this.tBSealService.getEntity(TBSealEntity.class, id); if (!tBSeal.getSealApprove().equals("已通过")) { throw new BusinessException("未审批通过"); } //审批数据 String requestId = tBSeal.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()); } request.setAttribute("newDate", new Date()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd"); Date now = new Date(); String sealDate = sdf.format(tBSeal.getSealDate()); request.setAttribute("sealDate", sealDate); String bm = "YY" + sdf1.format(tBSeal.getSealDate()) + "0001"; request.setAttribute("newDate", sdf.format(now)); request.setAttribute("bm", bm); HttpSession session = ContextHolderUtils.getSession(); TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER"); request.setAttribute("username", tuser.getRealName()); String hql1 = "from TSTypegroup where typegroupcode =? "; List groupList = systemService.findHql(hql1, "sealType"); if (null != groupList && groupList.size() > 0) { TSTypegroup group = groupList.get(0); List typeList = group.getTSTypes(); for (int i = 0; i < typeList.size(); i++) { if ((typeList.get(i).getTypecode()).equals(tBSeal.getSealTypeId())) { request.setAttribute("typeName", typeList.get(i).getTypename()); } } } request.setAttribute("tBSeal", tBSeal); request.setAttribute("blog", "true"); }catch (Exception e){ request.setAttribute("blog", "请选择已通过的数据"); } return new ModelAndView("cn/com/lzt/sign/tbseal/tBSealList-print"); } }