TBSealController.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. package cn.com.lzt.sign.controller;
  2. import cn.com.lzt.arrangedutyoperate.dto.UserAndUserPersonnelDto;
  3. import cn.com.lzt.car.event.entity.CarEventEntity;
  4. import cn.com.lzt.common.util.PdfUtil;
  5. import cn.com.lzt.sign.entity.*;
  6. import cn.com.lzt.sign.page.Statistics;
  7. import cn.com.lzt.sign.page.StatisticsInfo;
  8. import cn.com.lzt.sign.page.TBAssetsPage;
  9. import cn.com.lzt.sign.service.TBRequestFeedbackService;
  10. import cn.com.lzt.sign.service.TBRequestService;
  11. import cn.com.lzt.sign.service.TBSealService;
  12. import cn.com.lzt.useractiviti.data.util.ActivitiTools;
  13. import cn.com.lzt.useroptions.entity.TBusUserOptionsEntity;
  14. import cn.com.lzt.useroptions.service.TBusUserOptionsServiceI;
  15. import cn.com.lzt.warehouse.entity.WarehouseEntity;
  16. import java.text.ParseException;
  17. import java.text.SimpleDateFormat;
  18. import java.util.*;
  19. import java.util.logging.Logger;
  20. import java.util.stream.Collectors;
  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.servlet.http.HttpServletResponse;
  23. import javax.servlet.http.HttpSession;
  24. import com.alibaba.fastjson.JSONObject;
  25. import com.daju.mix.dao.service.ITSBaseUserService;
  26. import com.lowagie.text.Chunk;
  27. import com.lowagie.text.Element;
  28. import org.apache.commons.lang.StringUtils;
  29. import org.jeecgframework.core.common.controller.BaseController;
  30. import org.jeecgframework.core.common.exception.BusinessException;
  31. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  32. import org.jeecgframework.core.common.model.json.AjaxJson;
  33. import org.jeecgframework.core.common.model.json.DataGrid;
  34. import org.jeecgframework.core.constant.Globals;
  35. import org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil;
  36. import org.jeecgframework.core.util.*;
  37. import org.jeecgframework.tag.core.easyui.TagUtil;
  38. import org.jeecgframework.tag.vo.datatable.SortDirection;
  39. import org.jeecgframework.web.cgform.entity.upload.CgUploadEntity;
  40. import org.jeecgframework.web.cgform.service.config.CgFormFieldServiceI;
  41. import org.jeecgframework.web.system.pojo.base.*;
  42. import org.jeecgframework.web.system.service.SystemService;
  43. import org.springframework.beans.BeanUtils;
  44. import org.springframework.beans.factory.annotation.Autowired;
  45. import org.springframework.stereotype.Controller;
  46. import org.springframework.web.bind.annotation.RequestMapping;
  47. import org.springframework.web.bind.annotation.RequestParam;
  48. import org.springframework.web.bind.annotation.ResponseBody;
  49. import org.springframework.web.servlet.ModelAndView;
  50. @Controller
  51. @RequestMapping({"/tBSealController"})
  52. public class TBSealController
  53. extends BaseController {
  54. private static final Logger logger = Logger.getLogger(String.valueOf(cn.com.lzt.sign.controller.TBSealController.class));
  55. @Autowired
  56. private SystemService systemService;
  57. @Autowired
  58. private TBSealService tBSealService;
  59. @Autowired
  60. private TBusUserOptionsServiceI userOptionsService;
  61. @Autowired
  62. private CgFormFieldServiceI cgFormFieldService;
  63. @Autowired
  64. private TBRequestFeedbackService tBRequestFeedbackService;
  65. @Autowired
  66. private TBRequestService tBRequestService;
  67. @RequestMapping(params = {"list"})
  68. public ModelAndView list(HttpServletRequest request) {
  69. return new ModelAndView("cn/com/lzt/sign/tbseal/tBSealList");
  70. }
  71. /**
  72. * 获取当前登录人的审批权限集合
  73. *
  74. * @return
  75. * @author刘梦祥
  76. * @Date 2021年11月29日00:42:57
  77. */
  78. public Map<String, List<String>> getUserRuleMap() {
  79. // 获取当前操作人的信息
  80. TSUser user = ResourceUtil.getSessionUser();
  81. TSBaseUser tsBaseUser = this.systemService.getEntity(TSBaseUser.class, user.getId());
  82. DataGrid dataGrid1 = new DataGrid();
  83. CriteriaQuery criteriaQuery1 = new CriteriaQuery(UserAndUserPersonnelDto.class, dataGrid1);
  84. criteriaQuery1.eq("userid", user.getId());
  85. criteriaQuery1.add();
  86. List<UserAndUserPersonnelDto> userAndUserPersonnelDtoList = this.systemService.getListByCriteriaQuery(criteriaQuery1, true);
  87. Map<String, List<String>> ruleMap = new HashMap<>();
  88. // 得到登录人的职位
  89. List<String> departidList = new ArrayList<>();
  90. if (tsBaseUser != null && tsBaseUser.getDepartid() != null) {
  91. departidList.add(tsBaseUser.getDepartid());
  92. }
  93. // 得到操作人的岗位
  94. List<String> inPostidList = new ArrayList<>();
  95. if (userAndUserPersonnelDtoList != null && userAndUserPersonnelDtoList.size() > 0) {
  96. for (UserAndUserPersonnelDto userInfoDto : userAndUserPersonnelDtoList) {
  97. if (StringUtil.isNotEmpty(userInfoDto.getInPostid())) {
  98. if (!inPostidList.contains(userInfoDto.getInPostid())) {
  99. inPostidList.add(userInfoDto.getInPostid());
  100. }
  101. }
  102. }
  103. }
  104. ruleMap.put("departId", departidList);
  105. ruleMap.put("inPostid", inPostidList);
  106. return ruleMap;
  107. }
  108. @RequestMapping(params = {"datagrid"})
  109. public void datagrid(TBSealEntity tBSeal, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  110. StringBuffer queryStr = new StringBuffer();
  111. queryStr.append(" where 1 = 1 ");
  112. // 封装请购科室查询条件
  113. if (StringUtil.isNotEmpty(request.getParameter("sealDeptId"))) {
  114. queryStr.append(" and seal_dept_id = \"" + request.getParameter("sealDeptId") + "\"");
  115. }
  116. // 封装用印类别查询条件
  117. if (StringUtil.isNotEmpty(request.getParameter("sealTypeId"))) {
  118. queryStr.append(" and seal_type_id = \"" + request.getParameter("sealTypeId") + "\"");
  119. }
  120. // 封装审批状态查询条件
  121. if (StringUtil.isNotEmpty(request.getParameter("sealApprove"))) {
  122. queryStr.append(" and seal_approve = \"" + request.getParameter("sealApprove") + "\"");
  123. }
  124. // 封装请购日期查询条件
  125. if (StringUtil.isNotEmpty(request.getParameter("sealDate_begin")) && StringUtil.isNotEmpty(request.getParameter("sealDate_end"))) {
  126. queryStr.append(" and seal_date between \"" + request.getParameter("sealDate_begin") + "\" and \"" + request.getParameter("sealDate_end") + "\" ");
  127. }
  128. List<Map<String, Object>> dataGridList = this.systemService.toDataGridByDataGrid(" t_b_seal ", "seal_spare_two", "request_id", "create_date", dataGrid, queryStr.toString());
  129. dataGrid.setResults(dataGridList);
  130. TagUtil.datagrid(response, dataGrid);
  131. }
  132. @RequestMapping(params = "goAdd")
  133. public ModelAndView goAdd(HttpServletRequest request) {
  134. HttpSession session = ContextHolderUtils.getSession();
  135. TSUser user = ResourceUtil.getSessionUser();
  136. 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()+"')";
  137. List<Object[]> infoList = systemService.findListbySql(sql);
  138. List<TSDepart> tSDepartList = infoList.stream().map(e -> {
  139. TSDepart sta = new TSDepart();
  140. if (e[0] != null) {
  141. sta.setId(e[0].toString());
  142. }
  143. if (e[1] != null) {
  144. sta.setDepartname(e[1].toString());
  145. }
  146. return sta;
  147. }).collect(Collectors.toList());
  148. String departid = "";
  149. String departname = "";
  150. try {
  151. if(tSDepartList!=null && tSDepartList.size()>0){
  152. TSDepart dept = tSDepartList.get(0);
  153. departid = dept.getId();
  154. departname = dept.getDepartname();
  155. }
  156. } catch (Exception e) {
  157. e.printStackTrace();
  158. LogUtil.error(e.getMessage());
  159. }
  160. request.setAttribute("sealDept",departname);
  161. request.setAttribute("sealDeptId",departid);
  162. return new ModelAndView("cn/com/lzt/sign/tbseal/tBSealList-add");
  163. }
  164. @RequestMapping(params = {"doAddOrUpdate"})
  165. @ResponseBody
  166. public AjaxJson doAddOrUpdate(TBSealEntity tBSeal, HttpServletRequest request) {
  167. HttpSession session = ContextHolderUtils.getSession();
  168. TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER");
  169. String userid = tuser.getId();
  170. String blog = request.getParameter("blog");
  171. String sealTypeId = request.getParameter("sealTypeId");
  172. tBSeal.setSealTypeId(sealTypeId);
  173. //审批用的
  174. tBSeal.setSealSpareTwo(userid);
  175. tBSeal.setSealApprove("待提交");
  176. //end
  177. AjaxJson j = new AjaxJson();
  178. String message = "添加成功";
  179. if("1".equals(blog)){
  180. message = "修改成功";
  181. }
  182. try {
  183. if("1".equals(blog)){
  184. this.tBSealService.Update(tBSeal);
  185. }else{
  186. this.tBSealService.save(tBSeal);
  187. }
  188. } catch (Exception e) {
  189. e.printStackTrace();
  190. message = "添加失败";
  191. throw new BusinessException(e.getMessage());
  192. }
  193. j.setMsg(message);
  194. return j;
  195. }
  196. @RequestMapping(params = {"goUpdate"})
  197. public ModelAndView goUpdate(TBSealEntity tBSeal, HttpServletRequest request) throws ParseException {
  198. String id = tBSeal.getId();
  199. tBSeal = (TBSealEntity) this.tBSealService.getEntity(TBSealEntity.class, id);
  200. SimpleDateFormat simpleDateFormatYMD = new SimpleDateFormat("yyyy-MM-dd");
  201. tBSeal.setSealDateStr(simpleDateFormatYMD.format(tBSeal.getSealDate()));
  202. TBSealEntityShow tbSealEntityShow = new TBSealEntityShow();
  203. BeanUtils.copyProperties(tBSeal, tbSealEntityShow);
  204. tbSealEntityShow.setFileNames(Arrays.asList(tBSeal.getSealFilename().split(",")));
  205. tbSealEntityShow.setFileUrls(Arrays.asList(tBSeal.getSealFileUrl().split(",")));
  206. request.setAttribute("tBSeal", tbSealEntityShow);
  207. request.setAttribute("flag", request.getParameter("flag"));
  208. return new ModelAndView("cn/com/lzt/sign/tbseal/tBSealList-update");
  209. }
  210. @RequestMapping(params = "doDel")
  211. @ResponseBody
  212. public AjaxJson doDel(TBSealEntity tBSeal, HttpServletRequest request) {
  213. String message = null;
  214. AjaxJson j = new AjaxJson();
  215. message = "删除成功";
  216. try{
  217. tBSealService.deleteEntityById(TBSealEntity.class, tBSeal.getId());
  218. }catch(Exception e){
  219. e.printStackTrace();
  220. message = "删除失败";
  221. throw new BusinessException(e.getMessage());
  222. }
  223. j.setMsg(message);
  224. return j;
  225. }
  226. /**
  227. * 获取文件附件信息
  228. *
  229. * @param id leave主键id
  230. */
  231. @RequestMapping(params = "getFiles")
  232. @ResponseBody
  233. public AjaxJson getFiles(String id){
  234. List<CgUploadEntity> uploadBeans = cgFormFieldService.findByProperty(CgUploadEntity.class, "cgformId", id);
  235. List<Map<String,Object>> files = new ArrayList<Map<String,Object>>(0);
  236. for(CgUploadEntity b:uploadBeans){
  237. String title = b.getAttachmenttitle();//附件名
  238. String fileKey = b.getId();//附件主键
  239. String path = b.getRealpath();//附件路径
  240. String field = b.getCgformField();//表单中作为附件控件的字段
  241. Map<String, Object> file = new HashMap<String, Object>();
  242. file.put("title", title);
  243. file.put("fileKey", fileKey);
  244. file.put("path", path);
  245. file.put("field", field==null?"":field);
  246. files.add(file);
  247. }
  248. AjaxJson j = new AjaxJson();
  249. j.setObj(files);
  250. return j;
  251. }
  252. @RequestMapping(params = {"goPrint"})
  253. public ModelAndView goPrint(TBSealEntity tBSeal,HttpServletRequest request) {
  254. String id = request.getParameter("id");
  255. try {
  256. //基本数据
  257. tBSeal = (TBSealEntity) this.tBSealService.getEntity(TBSealEntity.class, id);
  258. if (!tBSeal.getSealApprove().equals("已通过")) {
  259. throw new BusinessException("未审批通过");
  260. }
  261. //审批数据
  262. String requestId = tBSeal.getRequestId();
  263. if (null != requestId && !"".equals(requestId)) {
  264. DataGrid dataGrid = new DataGrid();
  265. CriteriaQuery cq = new CriteriaQuery(TBRequestFeedbackEntity.class, dataGrid);
  266. TBRequestFeedbackEntity tBRequestFeedback = new TBRequestFeedbackEntity();
  267. tBRequestFeedback.setRequestId(requestId);
  268. HqlGenerateUtil.installHql(cq, tBRequestFeedback, request.getParameterMap());
  269. try {
  270. cq.eq("requestId", requestId);
  271. cq.addOrder("createdAt", SortDirection.asc);
  272. } catch (Exception e) {
  273. throw new BusinessException(e.getMessage());
  274. }
  275. cq.add();
  276. this.tBRequestFeedbackService.getDataGridReturn(cq, true);
  277. List<TBRequestFeedbackEntity> tBRequestFeedbackList = dataGrid.getResults();
  278. if (null != tBRequestFeedbackList && tBRequestFeedbackList.size() > 0) {
  279. for (int i = 0; i < tBRequestFeedbackList.size(); i++) {
  280. TBRequestFeedbackEntity Feedback = tBRequestFeedbackList.get(i);
  281. String FeedbackUserId = Feedback.getUserId();
  282. TSBaseUser baseUser = systemService.get(TSBaseUser.class, FeedbackUserId);
  283. tBRequestFeedbackList.get(i).setUserName(baseUser.getRealName());
  284. }
  285. }
  286. request.setAttribute("size", (dataGrid.getResults()).size());
  287. request.setAttribute("tBSealList", dataGrid.getResults());
  288. }
  289. request.setAttribute("newDate", new Date());
  290. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  291. SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
  292. Date now = new Date();
  293. String sealDate = sdf.format(tBSeal.getSealDate());
  294. request.setAttribute("sealDate", sealDate);
  295. String bm = "YY" + sdf1.format(tBSeal.getSealDate()) + "0001";
  296. request.setAttribute("newDate", sdf.format(now));
  297. request.setAttribute("bm", bm);
  298. HttpSession session = ContextHolderUtils.getSession();
  299. TSUser tuser = (TSUser) session.getAttribute("LOCAL_CLINET_USER");
  300. request.setAttribute("username", tuser.getRealName());
  301. String hql1 = "from TSTypegroup where typegroupcode =? ";
  302. List<TSTypegroup> groupList = systemService.findHql(hql1, "sealType");
  303. if (null != groupList && groupList.size() > 0) {
  304. TSTypegroup group = groupList.get(0);
  305. List<TSType> typeList = group.getTSTypes();
  306. for (int i = 0; i < typeList.size(); i++) {
  307. if ((typeList.get(i).getTypecode()).equals(tBSeal.getSealTypeId())) {
  308. request.setAttribute("typeName", typeList.get(i).getTypename());
  309. }
  310. }
  311. }
  312. request.setAttribute("tBSeal", tBSeal);
  313. request.setAttribute("blog", "true");
  314. }catch (Exception e){
  315. request.setAttribute("blog", "请选择已通过的数据");
  316. }
  317. return new ModelAndView("cn/com/lzt/sign/tbseal/tBSealList-print");
  318. }
  319. }