CbCtl.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.xt.jygl.gkjcxx.cb.ctl;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Map;
  5. import javax.persistence.criteria.CriteriaBuilder;
  6. import javax.persistence.criteria.CriteriaQuery;
  7. import javax.persistence.criteria.Predicate;
  8. import javax.persistence.criteria.Root;
  9. import javax.servlet.http.HttpServletRequest;
  10. import org.springframework.beans.BeanUtils;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.data.domain.Page;
  13. import org.springframework.data.jpa.domain.Specification;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.ui.Model;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.ResponseBody;
  18. import cache.CacheSearchCondition;
  19. import com.fasterxml.jackson.core.JsonProcessingException;
  20. import com.xt.jygl.common.BaseWebCtl;
  21. import com.xt.jygl.common.SearchCondition;
  22. import com.xt.jygl.common.Utils;
  23. import com.xt.jygl.gkjcxx.cb.entity.CbEntity;
  24. import com.xt.jygl.gkjcxx.cb.service.CbService;
  25. import com.xt.jygl.gkjcxx.cb.vo.CbVo;
  26. import com.xtframe.core.support.SecurityMgr;
  27. import com.xtframe.sec.common.QueryService;
  28. import com.xtframe.sec.common.SimplePageRequest;
  29. import com.xtframe.sec.utils.SecUtils;
  30. import com.xtframe.util.StringUtils;
  31. /**
  32. * 船舶管理Controller
  33. *
  34. * @author yinyt
  35. *
  36. */
  37. @Controller
  38. @RequestMapping("/cb")
  39. public class CbCtl extends BaseWebCtl {
  40. @Autowired
  41. private SecurityMgr securityMgr;
  42. @Autowired
  43. private QueryService query;
  44. @Autowired
  45. private CbService cbService;
  46. /**
  47. * 船舶管理
  48. *
  49. * @return
  50. */
  51. @RequestMapping(value = "/main")
  52. public String main(SimplePageRequest page, Model model,final HttpServletRequest request, final String zwcm, final String ywcm, final String cbsyr, String menuid) throws JsonProcessingException {
  53. final Map<String, Object> cacheSCmap = CacheSearchCondition.cacheSCmap(request,"cb");
  54. // 查詢條件
  55. Specification<CbEntity> spec = new Specification<CbEntity>() {
  56. @Override
  57. public Predicate toPredicate(Root<CbEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
  58. List<Predicate> list = new ArrayList<Predicate>();
  59. if (StringUtils.isNotEmpty(zwcm)) {
  60. list.add(cb.like(root.get("zwcm").as(String.class), "%" + zwcm + "%"));
  61. }else if(isGET(request)){
  62. //list.add(cb.like(root.get("zwcm").as(String.class), "%" + SearchCondition.zwcm + "%"));
  63. CacheSearchCondition.predicateList(list, cacheSCmap, root, cb, null,"zwcm");
  64. }
  65. if (StringUtils.isNotEmpty(ywcm)) {
  66. list.add(cb.like(root.get("ywcm").as(String.class), "%" + ywcm + "%"));
  67. }else if(isGET(request)){
  68. CacheSearchCondition.predicateList(list, cacheSCmap, root, cb, null,"ywcm");
  69. }
  70. if (StringUtils.isNotEmpty(cbsyr)) {
  71. list.add(cb.like(root.get("cbsyr").as(String.class), "%" + cbsyr + "%"));
  72. }else if(isGET(request)){
  73. //list.add(cb.like(root.get("cbsyr").as(String.class), "%" + SearchCondition.cbsyr + "%"));
  74. CacheSearchCondition.predicateList(list, cacheSCmap, root, cb, null,"cbsyr");
  75. }
  76. return cb.and(list.toArray(new Predicate[] {}));
  77. }
  78. };
  79. if (page.getPage() < 1) {
  80. Object cbpage = CacheSearchCondition.cacheSCmapVal(cacheSCmap, "cbpage");
  81. if (StringUtils.isEmpty(cbpage) || !org.apache.commons.lang.StringUtils.isNumeric(String.valueOf(cbpage))) {
  82. cbpage = "1";
  83. }
  84. page.setPage(Integer.valueOf(String.valueOf(cbpage)));
  85. }
  86. page.setSort("id");
  87. page.setOrder("desc");
  88. Page<CbEntity> list = query.findAll(spec, toPageRequest(page), CbEntity.class);
  89. List<CbEntity> voList = new ArrayList<CbEntity>();
  90. for (CbEntity entity : list) {
  91. voList.add(entity);
  92. }
  93. if (isPOST(request)) {
  94. cacheSCmap.put("cbpage", page.getPage());
  95. CacheSearchCondition.putCacheSCmap(request.getParameterMap(), cacheSCmap);
  96. }
  97. model.addAttribute("list", voList);
  98. model.addAttribute("zwcm", CacheSearchCondition.cacheSCmapVal(cacheSCmap, "zwcm"));
  99. model.addAttribute("ywcm", CacheSearchCondition.cacheSCmapVal(cacheSCmap, "ywcm"));
  100. model.addAttribute("cbsyr", CacheSearchCondition.cacheSCmapVal(cacheSCmap, "cbsyr"));
  101. model.addAttribute("menuid", menuid);
  102. // 翻页共通
  103. putPageInfo(model, page, list);
  104. return "gkjcxx/cb/cbmain";
  105. }
  106. @RequestMapping(value = "/view")
  107. public String view(SimplePageRequest page, Model model, final String cbbh) {
  108. // 查詢條件
  109. Specification<CbEntity> spec = new Specification<CbEntity>() {
  110. @Override
  111. public Predicate toPredicate(Root<CbEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
  112. List<Predicate> list = new ArrayList<Predicate>();
  113. if (StringUtils.isNotEmpty(cbbh)) {
  114. list.add(cb.like(root.get("cbbh").as(String.class), "%" + cbbh + "%"));
  115. }
  116. return cb.and(list.toArray(new Predicate[] {}));
  117. }
  118. };
  119. page.setOrder("asc");
  120. page.setSort("czsj");
  121. Page<CbEntity> list = query.findAll(spec, toPageRequest(page), CbEntity.class);
  122. List<CbEntity> voList = new ArrayList<CbEntity>();
  123. for (CbEntity entity : list) {
  124. voList.add(entity);
  125. }
  126. model.addAttribute("record", voList.get(0));
  127. return "gkjcxx/cb/cbview";
  128. }
  129. @RequestMapping(value = "/findById")
  130. @ResponseBody
  131. public CbVo findById(String id) {
  132. CbEntity cb = cbService.findOne(id);
  133. CbVo vo = new CbVo();
  134. if (cb != null) {
  135. BeanUtils.copyProperties(cb, vo);
  136. }
  137. return vo;
  138. }
  139. }