package com.cxfws.gkjcxx.service.impl; import java.util.ArrayList; import java.util.List; import javax.jws.WebMethod; import javax.jws.WebResult; import javax.jws.WebService; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import com.cxfws.gkjcxx.service.IMdxxService; import com.xt.jygl.common.BaseWebCtl; import com.xt.jygl.common.Constants; import com.xt.jygl.common.GlobalData; import com.xt.jygl.gkjcxx.gk.entity.GkEntity; import com.xt.jygl.gkjcxx.gk.service.GkService; import com.xt.jygl.gkjcxx.md.dao.MdDao; import com.xt.jygl.gkjcxx.md.entity.MdEntity; import com.xt.jygl.gkjcxx.md.service.MdService; import com.xt.jygl.gkjcxx.md.vo.MdVo; import com.xt.jygl.gkjcxx.md.webservice.MdWebService; import com.xtframe.core.base.ctl.WebJsonResult; import com.xtframe.sec.code.entity.CodeEntity; import com.xtframe.sec.common.BaseEntity; import com.xtframe.sec.common.QueryService; import com.xtframe.sec.common.SimplePageRequest; import com.xtframe.util.StringUtils; import net.sf.json.JSONArray; /** * 锚地信息查询 */ @Service("mdWebService") @WebService(targetNamespace = "http://service.web.jsjty.com/", portName = "mdWebServicePort", serviceName = "mdWebService") public class MdxxService extends BaseWebCtl implements IMdxxService{ @Autowired private QueryService query; @Autowired private MdDao dao; @Autowired private MdService mdService; @Autowired private GkService gkService; /** * 根据id查锚地 */ @Override public String findOne(String id) { MdEntity md = dao.findOne(id); MdVo vo=new MdVo(); BeanUtils.copyProperties(md, vo); JSONArray jsons=JSONArray.fromObject(vo); return jsons.toString(); } /** * 根据查询条件所在地,所在港口,锚地名称,规划和现状 */ @Override @WebMethod(operationName = "findMd", action = "http://service.web.jsjty.com/findMd") @WebResult(name = "result", targetNamespace = "http://service.web.jsjty.com/") public String findMd(int pages, int rows,final String szdid, final String szgkid, final String mdmc, final String xzhghid) { if (!this.checkUser()){ return BaseWebCtl.NOLOGIN; } SimplePageRequest page = new SimplePageRequest(pages, rows); Specification spec = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List list = new ArrayList(); if (StringUtils.isNotEmpty(mdmc)) { list.add(cb.like(root.get("mdmc").as(String.class), "%" + mdmc + "%")); } if (StringUtils.isNotEmpty(szgkid)) { list.add(cb.like(root.get("szgk").get("id").as(String.class), "%" + szgkid + "%")); } if (StringUtils.isNotEmpty(szdid)) { list.add(cb.like(root.get("szd").get("id").as(String.class), "%" + szdid + "%")); } if (StringUtils.isNotEmpty(xzhghid)) { list.add(cb.like(root.get("xzhgh").get("id").as(String.class), "%" + xzhghid + "%")); } list.add(cb.notEqual(root.get("recordStatus").as(String.class), BaseEntity.RECORD_STATE_DELETE)); return cb.and(list.toArray(new Predicate[] {})); } }; if (page.getPage() < 1) { // Object xmxxpage = CacheSearchCondition.cacheSCmapVal(cacheSCmap, "xmxxpage"); // if (StringUtils.isEmpty(xmxxpage) || !org.apache.commons.lang.StringUtils.isNumeric(String.valueOf(xmxxpage))) { // xmxxpage = "1"; // } page.setPage(1); } page.setSort("id"); page.setOrder("desc"); Page mdlist = query.findAll(spec, toPageRequest(page),MdEntity.class); // List mdlist = query.findAll(spec, MdEntity.class); List voList = new ArrayList(); for(MdEntity entity:mdlist){ MdVo vo=new MdVo(); if(entity!=null){ BeanUtils.copyProperties(entity, vo); voList.add(vo); } } JSONArray jsons=JSONArray.fromObject(voList); return jsons.toString(); } @Override public String save(MdEntity code, String szdid, String szgkid, String xzhghid) { WebJsonResult wr = success(); if (!this.checkUser()){ wr.setSuccess(false); wr.setMessage(BaseWebCtl.NOLOGIN); return Object2JsonStr(wr); } if (StringUtils.isEmpty(szdid)) { wr.setSuccess(false); wr.setMessage("请选择所在地"); return Object2JsonStr(wr); } if (StringUtils.isEmpty(szgkid)) { wr.setSuccess(false); wr.setMessage("请选择所在港口"); return Object2JsonStr(wr); } MdEntity entity = new MdEntity(); try { if (!StringUtils.isEmpty(code.getId())) { entity = mdService.findOne(code.getId()); entity.setTbzt(Constants.NO); } entity.setMdmc(code.getMdmc()); entity.setMdcd(code.getMdcd()); entity.setMdkd(code.getMdkd()); entity.setMdss(code.getMdss()); entity.setMdmj(code.getMdmj()); entity.setMdwz(code.getMdwz()); entity.setXbnl(code.getXbnl()); entity.setZyid(code.getZyid()); /* * GkEntity gk = gkService.findOne(szgkid); if(gk!=null){ * entity.setSsgkglbm(gk.getSsgkglbm()); } */ entity.setSzgq(code.getSzgq()); entity.setMddz(code.getMddz()); entity.setMwbj(code.getMwbj()); entity.setFtgs(code.getFtgs()); entity.setMbss(code.getMbss()); entity.setBz(code.getBz()); entity.setZyyt(code.getZyyt()); CodeEntity szd = new CodeEntity(szdid); entity.setSzd(szd); GkEntity szgk = new GkEntity(); szgk.setId(szgkid); entity.setSzgk(szgk); GkEntity gk = gkService.findOne(szgkid); entity.setSsgkglbm(gk != null ? gk.getSsgkglbm() : null); if (!StringUtils.isEmpty(xzhghid)) { CodeEntity xzhgh = new CodeEntity(xzhghid); entity.setXzhgh(xzhgh); } mdService.save(entity); } catch (Exception e) { wr.setSuccess(false); wr.setMessage("操作失败!"); e.printStackTrace(); } return Object2JsonStr(wr); } @Override public String delete(String id) { WebJsonResult wr = success(); if (!this.checkUser()){ wr.setSuccess(false); wr.setMessage(BaseWebCtl.NOLOGIN); return Object2JsonStr(wr); } try { mdService.logicDelete(id); // 如果是市级刪除,省级也刪除 MdEntity md = mdService.findOne(id); try { if (GlobalData.DEPLOY_MODE.equals(Constants.DEPLOY_MODE_CITY) && needWS()) { MdWebService webService = mdService.getWebService(null); webService.delete(id); md.setTbzt(Constants.YES); mdService.save(md); } } catch (Exception e) { md.setTbzt(Constants.NO); mdService.save(md); } } catch (Exception e) { wr.setSuccess(false); wr.setMessage("操作失败!"); e.printStackTrace(); } return Object2JsonStr(wr); } }