ZyqCtl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. package com.xt.jygl.gkjcxx.zyq.ctl;
  2. import java.text.SimpleDateFormat;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.List;
  6. import java.util.Map;
  7. import javax.persistence.criteria.CriteriaBuilder;
  8. import javax.persistence.criteria.CriteriaQuery;
  9. import javax.persistence.criteria.Predicate;
  10. import javax.persistence.criteria.Root;
  11. import javax.persistence.criteria.CriteriaBuilder.In;
  12. import javax.servlet.http.HttpServletRequest;
  13. import org.springframework.beans.BeanUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.data.domain.Page;
  16. import org.springframework.data.jpa.domain.Specification;
  17. import org.springframework.stereotype.Controller;
  18. import org.springframework.ui.Model;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.ResponseBody;
  21. import cache.CacheSearchCondition;
  22. import com.fasterxml.jackson.core.JsonProcessingException;
  23. import com.xt.jygl.common.BaseWebCtl;
  24. import com.xt.jygl.common.Constants;
  25. import com.xt.jygl.common.GlobalData;
  26. import com.xt.jygl.common.SearchCondition;
  27. import com.xt.jygl.common.Utils;
  28. import com.xt.jygl.gkjcxx.gk.entity.GkEntity;
  29. import com.xt.jygl.gkjcxx.gk.service.GkService;
  30. import com.xt.jygl.gkjcxx.gq.entity.GqEntity;
  31. import com.xt.jygl.gkjcxx.gq.service.GqService;
  32. import com.xt.jygl.gkjcxx.xzdwxxgl.xzglbmxx.service.XzglbmxxService;
  33. import com.xt.jygl.gkjcxx.zyq.client.ZyqWebService;
  34. import com.xt.jygl.gkjcxx.zyq.entity.ZyqEntity;
  35. import com.xt.jygl.gkjcxx.zyq.service.ZyqService;
  36. import com.xt.jygl.gkjcxx.zyq.vo.ZyqVo;
  37. import com.xtframe.core.anon.auth.RequiresPermissions;
  38. import com.xtframe.core.base.ctl.WebJsonResult;
  39. import com.xtframe.core.support.SecurityMgr;
  40. import com.xtframe.sec.code.entity.CodeEntity;
  41. import com.xtframe.sec.common.BaseEntity;
  42. import com.xtframe.sec.common.QueryService;
  43. import com.xtframe.sec.common.SimplePageRequest;
  44. import com.xtframe.sec.utils.SecUtils;
  45. import com.xtframe.util.StringUtils;
  46. /**
  47. * 作业区管理Controller
  48. *
  49. * @author zhaohang
  50. *
  51. */
  52. @Controller
  53. @RequestMapping("/zyq")
  54. public class ZyqCtl extends BaseWebCtl {
  55. @Autowired
  56. private SecurityMgr securityMgr;
  57. @Autowired
  58. private QueryService query;
  59. @Autowired
  60. private ZyqService zyqService;
  61. @Autowired
  62. private GqService gqService;
  63. @Autowired
  64. private GkService gkService;
  65. @Autowired
  66. private XzglbmxxService xzglbmService;
  67. /**
  68. * 一览页面
  69. *
  70. * @param page
  71. * 分页
  72. * @param model
  73. * @param request
  74. * @param zyqmc
  75. * 作业区名称
  76. * @param szgkid
  77. * 所在港口ID
  78. * @param szgqid
  79. * 所在港区ID
  80. * @param szdid
  81. * 所在地ID
  82. * @param menuid
  83. * @return
  84. * @throws JsonProcessingException
  85. */
  86. @RequestMapping(value = "/main")
  87. @RequiresPermissions("zyqgl:main")
  88. public String main(SimplePageRequest page, Model model, final HttpServletRequest request, final String zyqmc, final String szgkid, final String szgqid, final String szdid, String menuid) throws JsonProcessingException {
  89. final Map<String, Object> cacheSCmap = CacheSearchCondition.cacheSCmap(request, "zyqgl");
  90. // 查詢條件
  91. Specification<ZyqEntity> spec = new Specification<ZyqEntity>() {
  92. @Override
  93. public Predicate toPredicate(Root<ZyqEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
  94. List<Predicate> list = new ArrayList<Predicate>();
  95. if (StringUtils.isNotEmpty(zyqmc)) {
  96. list.add(cb.like(root.get("zyqmc").as(String.class), "%" + zyqmc + "%"));
  97. } else if (isGET(request)) {
  98. CacheSearchCondition.predicateList(list, cacheSCmap, root, cb, null, "zyqmc");
  99. }
  100. if (StringUtils.isNotEmpty(szgkid)) {
  101. list.add(cb.like(root.get("szgk").get("id").as(String.class), "%" + szgkid + "%"));
  102. } else if (isGET(request)) {
  103. CacheSearchCondition.predicateList(list, cacheSCmap, root, cb, "id", "szgk", "szgkid");
  104. }
  105. if (StringUtils.isNotEmpty(szgqid)) {
  106. list.add(cb.like(root.get("szgq").get("id").as(String.class), "%" + szgqid + "%"));
  107. } else if (isGET(request)) {
  108. CacheSearchCondition.predicateList(list, cacheSCmap, root, cb, "id", "szgq", "szgqid");
  109. }
  110. if (StringUtils.isNotEmpty(szdid)) {
  111. list.add(cb.like(root.get("szd").get("id").as(String.class), "%" + szdid + "%"));
  112. } else if (isGET(request)) {
  113. CacheSearchCondition.predicateList(list, cacheSCmap, root, cb, "id", "szd", "szdid");
  114. }
  115. if (isJyr()) {
  116. } else {
  117. In<String> in = cb.in(root.get("szgq").get("id").as(String.class));
  118. @SuppressWarnings("unchecked")
  119. List<String> gqlist = (List<String>) Utils.getSession().getAttribute("gqList");
  120. if (gqlist != null && gqlist.size() > 0) {
  121. for (int i = 0; i < gqlist.size(); i++) {
  122. in.value(gqlist.get(i));
  123. }
  124. list.add(in);
  125. }
  126. }
  127. list.add(cb.notEqual(root.get("recordStatus").as(String.class), BaseEntity.RECORD_STATE_DELETE));
  128. return cb.and(list.toArray(new Predicate[] {}));
  129. }
  130. };
  131. if (page.getPage() < 1) {
  132. page.setPage(SearchCondition.zyqpage);
  133. }
  134. page.setSort("id");
  135. page.setOrder("desc");
  136. Page<ZyqEntity> list = query.findAll(spec, toPageRequest(page), ZyqEntity.class);
  137. List<ZyqVo> voList = new ArrayList<ZyqVo>();
  138. for (ZyqEntity entity : list) {
  139. ZyqVo vo = new ZyqVo();
  140. BeanUtils.copyProperties(entity, vo);
  141. vo.setSzd(entity.getSzd() != null ? entity.getSzd().getId() : "");
  142. vo.setSzgk(entity.getSzgk() != null ? entity.getSzgk().getId() : "");
  143. vo.setSzgq(entity.getSzgq() != null ? entity.getSzgq().getId() : "");
  144. vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : "");
  145. vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : "");
  146. vo.setSzdzw(entity.getSzd() != null ? entity.getSzd().getText() : "");
  147. voList.add(vo);
  148. }
  149. if (isPOST(request)) {
  150. SearchCondition.zyqpage = page.getPage();
  151. // cacheSCmap.put("zyqpage", page.getPage());
  152. CacheSearchCondition.putCacheSCmap(request.getParameterMap(), cacheSCmap);
  153. }
  154. model.addAttribute("szd", CacheSearchCondition.cacheSCmapVal(cacheSCmap, "szdid"));
  155. model.addAttribute("zyqmc", CacheSearchCondition.cacheSCmapVal(cacheSCmap, "zyqmc"));
  156. model.addAttribute("szgq", CacheSearchCondition.cacheSCmapVal(cacheSCmap, "szgqid"));
  157. model.addAttribute("szgk", CacheSearchCondition.cacheSCmapVal(cacheSCmap, "szgkid"));
  158. model.addAttribute("menuid", menuid);
  159. model.addAttribute("list", voList);
  160. // 翻页共通
  161. putPageInfo(model, page, list);
  162. return "gkjcxx/zyq/zyqmain";
  163. }
  164. @RequestMapping(value = "/add")
  165. @RequiresPermissions("zyqgl:add")
  166. public String add(Model model) {
  167. if (SecUtils.getCurrUser() != null) {
  168. List<CodeEntity> list = securityMgr.codeService().findValidCodesByGroupCodeAndCity(Constants.GROUP_CODE_SZD, GlobalData.CITY_CODE);
  169. model.addAttribute("sz", list.size() == 1 ? list.get(0).getId() : "");
  170. if (list.size() == 1) {
  171. List<GkEntity> gklist = gkService.findBySzd(list.get(0).getId());
  172. model.addAttribute("gk", gklist.size() == 1 ? gklist.get(0).getId() : "");
  173. }
  174. }
  175. SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyyMMddHHmmss");
  176. String zyid = dateTimeFormat.format(new Date());
  177. model.addAttribute("zyid", zyid);
  178. return "gkjcxx/zyq/zyqadd";
  179. }
  180. // 保存数据
  181. @RequestMapping(value = "/save")
  182. @ResponseBody
  183. @RequiresPermissions("zyqgl:add")
  184. public WebJsonResult save(Model model, ZyqEntity code, String szdid, String szgkid, String szgqid) {
  185. WebJsonResult wr = success();
  186. if (StringUtils.isEmpty(szdid)) {
  187. wr.setSuccess(false);
  188. wr.setMessage("请选择所在地");
  189. return wr;
  190. }
  191. if (StringUtils.isEmpty(szgkid)) {
  192. wr.setSuccess(false);
  193. wr.setMessage("请选择所在港口");
  194. return wr;
  195. }
  196. if (StringUtils.isEmpty(szgqid)) {
  197. wr.setSuccess(false);
  198. wr.setMessage("请选择所在港区");
  199. return wr;
  200. }
  201. ZyqEntity zyq = new ZyqEntity();
  202. try {
  203. if (!StringUtils.isEmpty(code.getId())) {
  204. zyq = zyqService.findOne(code.getId());
  205. }
  206. CodeEntity szd = new CodeEntity(szdid);
  207. zyq.setSzd(szd);
  208. GkEntity szgk = new GkEntity();
  209. szgk.setId(szgkid);
  210. zyq.setSzgk(szgk);
  211. GqEntity szgq = new GqEntity();
  212. szgq.setId(szgqid);
  213. zyq.setSzgq(szgq);
  214. GqEntity gq = gqService.findOne(szgqid);
  215. zyq.setSsgkglbm(gq.getSsgkglbm());
  216. zyq.setZyqmc(code.getZyqmc());
  217. zyq.setZyqyt(code.getZyqyt());
  218. zyq.setBz(code.getBz());
  219. zyq.setZyid(code.getZyid());
  220. zyqService.save(zyq);
  221. } catch (Exception e) {
  222. wr.setSuccess(false);
  223. wr.setMessage("操作失败!");
  224. e.printStackTrace();
  225. }
  226. return wr;
  227. }
  228. @RequestMapping(value = "/delete")
  229. @ResponseBody
  230. @RequiresPermissions("zyqgl:delete")
  231. public WebJsonResult delete(Model model, String id) {
  232. WebJsonResult wr = success();
  233. try {
  234. zyqService.logicDelete(id);
  235. // 如果是市级删除,省级也删除
  236. ZyqEntity zyq = zyqService.findOne(id);
  237. try {
  238. if (GlobalData.DEPLOY_MODE.equals(Constants.DEPLOY_MODE_CITY) && needWS()) {
  239. ZyqWebService webService = zyqService.getWebService(null);
  240. webService.delete(id);
  241. zyq.setTbzt(Constants.YES);
  242. zyqService.save(zyq);
  243. }
  244. } catch (Exception e) {
  245. zyq.setTbzt(Constants.NO);
  246. zyqService.save(zyq);
  247. }
  248. } catch (Exception e) {
  249. wr.setSuccess(false);
  250. wr.setMessage("操作失败!");
  251. e.printStackTrace();
  252. }
  253. return wr;
  254. }
  255. @RequestMapping(value = "/edit")
  256. @RequiresPermissions("zyqgl:edit")
  257. public String edit(Model model, String id) {
  258. ZyqEntity zyq = zyqService.findOne(id);
  259. ZyqVo vo = new ZyqVo();
  260. BeanUtils.copyProperties(zyq, vo);
  261. vo.setSzd(zyq.getSzd() != null ? zyq.getSzd().getId() : "");
  262. vo.setSzgk(zyq.getSzgk() != null ? zyq.getSzgk().getId() : "");
  263. vo.setSzgq(zyq.getSzgq() != null ? zyq.getSzgq().getId() : "");
  264. if (StringUtils.isEmpty(vo.getZyid())) {
  265. SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyyMMddHHmmss");
  266. String zyid = dateTimeFormat.format(new Date());
  267. vo.setZyid(zyid);
  268. }
  269. model.addAttribute("record", vo);
  270. return "gkjcxx/zyq/zyqedit";
  271. }
  272. @RequestMapping(value = "/view")
  273. @RequiresPermissions("zyqgl:main")
  274. public String view(Model model, String id) {
  275. ZyqEntity zyq = zyqService.findOne(id);
  276. ZyqVo vo = new ZyqVo();
  277. BeanUtils.copyProperties(zyq, vo);
  278. vo.setSzd(zyq.getSzd() != null ? zyq.getSzd().getId() : "");
  279. vo.setSzdzw(zyq.getSzd() != null ? zyq.getSzd().getText() : "");
  280. vo.setSzgk(zyq.getSzgk() != null ? zyq.getSzgk().getId() : "");
  281. vo.setSzgkzw(zyq.getSzgk() != null ? zyq.getSzgk().getGkmc() : "");
  282. vo.setSzgq(zyq.getSzgq() != null ? zyq.getSzgq().getId() : "");
  283. vo.setSzgqzw(zyq.getSzgq() != null ? zyq.getSzgq().getGqmc() : "");
  284. model.addAttribute("record", vo);
  285. return "gkjcxx/zyq/zyqview";
  286. }
  287. @RequestMapping(value = "/selZyq")
  288. @ResponseBody
  289. public List<ZyqEntity> selZyq(String gkid) {
  290. List<ZyqEntity> list = zyqService.findByGkid(gkid);
  291. return list;
  292. }
  293. }