AxxxService.java 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. package com.cxfws.gkjcxx.service.impl;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import javax.jws.WebMethod;
  5. import javax.jws.WebResult;
  6. import javax.jws.WebService;
  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 org.springframework.beans.BeanUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.data.domain.Page;
  14. import org.springframework.data.jpa.domain.Specification;
  15. import org.springframework.stereotype.Service;
  16. import com.cxfws.gkjcxx.service.IAxxxService;
  17. import com.xt.jygl.common.BaseWebCtl;
  18. import com.xt.jygl.common.Constants;
  19. import com.xt.jygl.common.GlobalData;
  20. import com.xt.jygl.gkjcxx.ax.client.AxWebService;
  21. import com.xt.jygl.gkjcxx.ax.dao.AxDao;
  22. import com.xt.jygl.gkjcxx.ax.entity.AxEntity;
  23. import com.xt.jygl.gkjcxx.ax.service.AxService;
  24. import com.xt.jygl.gkjcxx.ax.vo.AxVo;
  25. import com.xt.jygl.gkjcxx.gk.entity.GkEntity;
  26. import com.xt.jygl.gkjcxx.gq.entity.GqEntity;
  27. import com.xt.jygl.gkjcxx.gq.service.GqService;
  28. import com.xt.jygl.gkjygl.gkjyr.jyrjbxx.entity.GkjyrEntity;
  29. import com.xtframe.core.base.ctl.WebJsonResult;
  30. import com.xtframe.sec.code.entity.CodeEntity;
  31. import com.xtframe.sec.common.BaseEntity;
  32. import com.xtframe.sec.common.QueryService;
  33. import com.xtframe.sec.common.SimplePageRequest;
  34. import com.xtframe.util.StringUtils;
  35. import net.sf.json.JSONArray;
  36. /**
  37. * 岸线信息查询
  38. */
  39. @Service("axWebService")
  40. @WebService(targetNamespace = "http://service.web.jsjty.com/", portName = "axWebServicePort", serviceName = "axWebService")
  41. public class AxxxService extends BaseWebCtl implements IAxxxService{
  42. @Autowired
  43. private QueryService query;
  44. @Autowired
  45. private AxDao dao;
  46. @Autowired
  47. private AxService axService;
  48. @Autowired
  49. private GqService gqService;
  50. /**
  51. * 根据条件查询岸线信息
  52. */
  53. @Override
  54. @WebMethod(operationName = "findAx", action = "http://service.web.jsjty.com/findAx")
  55. @WebResult(name = "result", targetNamespace = "http://service.web.jsjty.com/")
  56. public String findAx(int pages,int rows, final String szdid, final String szgkid, final String szgqid, final String axmc, final String lyztid, final String ssjyr) {
  57. if (!this.checkUser()){
  58. return BaseWebCtl.NOLOGIN;
  59. }
  60. SimplePageRequest page = new SimplePageRequest(pages, rows);
  61. Specification<AxEntity> spec = new Specification<AxEntity>() {
  62. // 查询条件
  63. @Override
  64. public Predicate toPredicate(Root<AxEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
  65. List<Predicate> list = new ArrayList<Predicate>();
  66. if (StringUtils.isNotEmpty(axmc)) {
  67. list.add(cb.like(root.get("axmc").as(String.class), "%" + axmc + "%"));
  68. }
  69. if (StringUtils.isNotEmpty(szdid)) {
  70. list.add(cb.like(root.get("szd").get("id").as(String.class), "%" + szdid + "%"));
  71. }
  72. if (StringUtils.isNotEmpty(szgkid)) {
  73. list.add(cb.like(root.get("szgk").get("id").as(String.class), "%" + szgkid + "%"));
  74. }
  75. if (StringUtils.isNotEmpty(szgqid)) {
  76. list.add(cb.like(root.get("szgq").get("id").as(String.class), "%" + szgqid + "%"));
  77. }
  78. if (StringUtils.isNotEmpty(ssjyr)) {
  79. list.add(cb.like(root.get("ssjyr").get("gkjyr").as(String.class), "%" + ssjyr + "%"));
  80. }
  81. if (StringUtils.isNotEmpty(lyztid)) {
  82. list.add(cb.like(root.get("lyzt").get("id").as(String.class), "%" + lyztid + "%"));
  83. }
  84. list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORD_STATE_DELETE));
  85. list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORE_STATE_COPY));
  86. return cb.and(list.toArray(new Predicate[] {}));
  87. }
  88. };
  89. if (page.getPage() < 1) {
  90. // Object axpage = CacheSearchCondition.cacheSCmapVal(cacheSCmap, "axpage");
  91. // if (StringUtils.isEmpty(axpage) || !org.apache.commons.lang.StringUtils.isNumeric(String.valueOf(axpage))) {
  92. // axpage = "1";
  93. // }
  94. page.setPage(1);
  95. }
  96. page.setSort("id");
  97. page.setOrder("desc");
  98. Page<AxEntity> list = query.findAll(spec, toPageRequest(page), AxEntity.class);
  99. //List<AxEntity> axlist = query.findAll(spec, AxEntity.class);
  100. List<AxVo> voList = new ArrayList<AxVo>();
  101. for (AxEntity entity : list) {
  102. AxVo vo = new AxVo();
  103. if (null != entity) {
  104. BeanUtils.copyProperties(entity, vo);
  105. vo.setSzdzw(entity.getSzd() != null ? entity.getSzd().getText() : "");
  106. vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : "");
  107. vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : "");
  108. vo.setSsjyrzw(entity.getSsjyr() != null ? entity.getSsjyr().getGkjyr() : "");
  109. vo.setAxlxzw(entity.getAxlx() != null ? entity.getAxlx().getText() : "");
  110. vo.setAxgnzw(entity.getAxgn() != null ? entity.getAxgn().getText() : "");
  111. vo.setLyztzw(entity.getLyzt() != null ? entity.getLyzt().getText() : "");
  112. vo.setNbazw(entity.getNba() != null?entity.getNba().getText() : "");
  113. vo.setSzd(entity.getSzd() != null ? entity.getSzd().getId() : "");
  114. vo.setSzgq(entity.getSzgq() != null ? entity.getSzgq().getId() : "");
  115. vo.setSzgk(entity.getSzgk() != null ? entity.getSzgk().getId() : "");
  116. vo.setSsjyr(entity.getSsjyr() != null ? entity.getSsjyr().getId() : "");
  117. vo.setAxlx(entity.getAxlx() != null ? entity.getAxlx().getId() : "");
  118. vo.setAxgn(entity.getAxgn() != null ? entity.getAxgn().getId() : "");
  119. vo.setLyzt(entity.getLyzt() != null ? entity.getLyzt().getId() : "");
  120. vo.setNba(entity.getNba() != null?entity.getNba().getId() : "");
  121. voList.add(vo);
  122. }
  123. }
  124. return JSONArray.fromObject(voList).toString();
  125. }
  126. /**
  127. * 根据id查询岸线信息
  128. */
  129. @Override
  130. public String findOne(String id) {
  131. AxEntity ax = dao.findOne(id);
  132. JSONArray jsons=JSONArray.fromObject(ax);
  133. return jsons.toString();
  134. }
  135. @Override
  136. public String save(AxEntity code, String szdid, String szgkid, String szgqid, String ssjyrid, String axlxid, String axgnid, String lyztid, String nbaid) {
  137. // how:如果是新增直接保存,如果更新,先取出数据库中记录,然后更新页面传过来的字段
  138. // why:这样的话一些在前台无需显示的字段保证不会丢失,同时一个个字段设置有助于bug排查
  139. WebJsonResult wr = success();
  140. if (!this.checkUser()){
  141. wr.setSuccess(false);
  142. wr.setMessage(BaseWebCtl.NOLOGIN);
  143. return Object2JsonStr(wr);
  144. }
  145. // 必填字段的后台验证
  146. if (StringUtils.isEmpty(szdid)) {
  147. wr.setSuccess(false);
  148. wr.setMessage("请选择所在地");
  149. return Object2JsonStr(wr);
  150. }
  151. if (StringUtils.isEmpty(szgkid)) {
  152. wr.setSuccess(false);
  153. wr.setMessage("请选择所在港口");
  154. return Object2JsonStr(wr);
  155. }
  156. if (StringUtils.isEmpty(szgqid)) {
  157. wr.setSuccess(false);
  158. wr.setMessage("请选择所在港区");
  159. return Object2JsonStr(wr);
  160. }
  161. if (StringUtils.isEmpty(ssjyrid)) {
  162. wr.setSuccess(false);
  163. wr.setMessage("请选择所属经营人");
  164. return Object2JsonStr(wr);
  165. }
  166. AxEntity axEntity = new AxEntity();
  167. try {
  168. if (!StringUtils.isEmpty(code.getId())) {
  169. // 修改
  170. axEntity = axService.findOne(code.getId());
  171. axEntity.setTbzt(Constants.NO);
  172. }
  173. axEntity.setAxcd(code.getAxcd());
  174. axEntity.setAxmc(code.getAxmc());
  175. GkEntity szgk = new GkEntity();
  176. szgk.setId(szgkid);
  177. axEntity.setSzgk(szgk);
  178. GqEntity szgq = new GqEntity();
  179. szgq.setId(szgqid);
  180. axEntity.setSzgq(szgq);
  181. GkjyrEntity ssjyr = new GkjyrEntity();
  182. ssjyr.setId(ssjyrid);
  183. axEntity.setSsjyr(ssjyr);
  184. // 非必填字段的验证,如为空则不验证,不为空则验证
  185. if (!StringUtils.isEmpty(axlxid)) {
  186. CodeEntity axlx = new CodeEntity(axlxid);
  187. axEntity.setAxlx(axlx);
  188. }
  189. if (!StringUtils.isEmpty(axgnid)) {
  190. CodeEntity axgn = new CodeEntity(axgnid);
  191. axEntity.setAxgn(axgn);
  192. }
  193. if (!StringUtils.isEmpty(lyztid)) {
  194. CodeEntity lyzt = new CodeEntity(lyztid);
  195. axEntity.setLyzt(lyzt);
  196. }
  197. if (!StringUtils.isEmpty(nbaid)) {
  198. CodeEntity nba = new CodeEntity(nbaid);
  199. axEntity.setNba(nba);
  200. }
  201. axEntity.setZyid(code.getZyid());
  202. axEntity.setJzrq(code.getJzrq());
  203. axEntity.setAxcd(code.getAxcd());
  204. axEntity.setQdzb(code.getQdzb());
  205. axEntity.setZdzb(code.getZdzb());
  206. axEntity.setAxpb(code.getAxpb());
  207. axEntity.setBz(code.getBz());
  208. axEntity.setWaterarea(code.getWaterarea());
  209. axEntity.setLandarea(code.getLandarea());
  210. axEntity.setLinelength(code.getLinelength());
  211. axEntity.setQdzby(code.getQdzby());
  212. axEntity.setZdzby(code.getZdzby());
  213. axEntity.setAxwzms(code.getAxwzms());
  214. GqEntity gq = gqService.findOne(szgqid);
  215. axEntity.setSsgkglbm(gq != null ? gq.getSsgkglbm() : null);
  216. CodeEntity szd = new CodeEntity(szdid);
  217. axEntity.setSzd(szd);
  218. axService.save(axEntity);
  219. } catch (Exception e) {
  220. wr.setSuccess(false);
  221. wr.setMessage("操作失败!");
  222. e.printStackTrace();
  223. }
  224. return Object2JsonStr(wr);
  225. }
  226. @Override
  227. public String delete(String id) {
  228. WebJsonResult wr = success();
  229. if (!this.checkUser()){
  230. wr.setSuccess(false);
  231. wr.setMessage(BaseWebCtl.NOLOGIN);
  232. return Object2JsonStr(wr);
  233. }
  234. try {
  235. // 逻辑删除
  236. axService.logicDelete(id);
  237. // 如果是市级删除,省级也删除
  238. AxEntity ax = axService.findOne(id);
  239. try {
  240. if (GlobalData.DEPLOY_MODE.equals(Constants.DEPLOY_MODE_CITY) && needWS()) {
  241. AxWebService webService = axService.getWebService(null);
  242. webService.delete(id);
  243. ax.setTbzt(Constants.NO);
  244. axService.save(ax);
  245. }
  246. } catch (Exception e) {
  247. ax.setTbzt(Constants.NO);
  248. axService.save(ax);
  249. }
  250. } catch (Exception e) {
  251. wr.setSuccess(false);
  252. wr.setMessage("操作失败!");
  253. e.printStackTrace();
  254. }
  255. return Object2JsonStr(wr);
  256. }
  257. }