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.IAxxxService; import com.xt.jygl.common.BaseWebCtl; import com.xt.jygl.common.Constants; import com.xt.jygl.common.GlobalData; import com.xt.jygl.gkjcxx.ax.client.AxWebService; import com.xt.jygl.gkjcxx.ax.dao.AxDao; import com.xt.jygl.gkjcxx.ax.entity.AxEntity; import com.xt.jygl.gkjcxx.ax.service.AxService; import com.xt.jygl.gkjcxx.ax.vo.AxVo; import com.xt.jygl.gkjcxx.gk.entity.GkEntity; import com.xt.jygl.gkjcxx.gq.entity.GqEntity; import com.xt.jygl.gkjcxx.gq.service.GqService; import com.xt.jygl.gkjygl.gkjyr.jyrjbxx.entity.GkjyrEntity; 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("axWebService") @WebService(targetNamespace = "http://service.web.jsjty.com/", portName = "axWebServicePort", serviceName = "axWebService") public class AxxxService extends BaseWebCtl implements IAxxxService{ @Autowired private QueryService query; @Autowired private AxDao dao; @Autowired private AxService axService; @Autowired private GqService gqService; /** * 根据条件查询岸线信息 */ @Override @WebMethod(operationName = "findAx", action = "http://service.web.jsjty.com/findAx") @WebResult(name = "result", targetNamespace = "http://service.web.jsjty.com/") 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) { 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(axmc)) { list.add(cb.like(root.get("axmc").as(String.class), "%" + axmc + "%")); } if (StringUtils.isNotEmpty(szdid)) { list.add(cb.like(root.get("szd").get("id").as(String.class), "%" + szdid + "%")); } if (StringUtils.isNotEmpty(szgkid)) { list.add(cb.like(root.get("szgk").get("id").as(String.class), "%" + szgkid + "%")); } if (StringUtils.isNotEmpty(szgqid)) { list.add(cb.like(root.get("szgq").get("id").as(String.class), "%" + szgqid + "%")); } if (StringUtils.isNotEmpty(ssjyr)) { list.add(cb.like(root.get("ssjyr").get("gkjyr").as(String.class), "%" + ssjyr + "%")); } if (StringUtils.isNotEmpty(lyztid)) { list.add(cb.like(root.get("lyzt").get("id").as(String.class), "%" + lyztid + "%")); } list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORD_STATE_DELETE)); list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORE_STATE_COPY)); return cb.and(list.toArray(new Predicate[] {})); } }; if (page.getPage() < 1) { // Object axpage = CacheSearchCondition.cacheSCmapVal(cacheSCmap, "axpage"); // if (StringUtils.isEmpty(axpage) || !org.apache.commons.lang.StringUtils.isNumeric(String.valueOf(axpage))) { // axpage = "1"; // } page.setPage(1); } page.setSort("id"); page.setOrder("desc"); Page list = query.findAll(spec, toPageRequest(page), AxEntity.class); //List axlist = query.findAll(spec, AxEntity.class); List voList = new ArrayList(); for (AxEntity entity : list) { AxVo vo = new AxVo(); if (null != entity) { BeanUtils.copyProperties(entity, vo); vo.setSzdzw(entity.getSzd() != null ? entity.getSzd().getText() : ""); vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : ""); vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : ""); vo.setSsjyrzw(entity.getSsjyr() != null ? entity.getSsjyr().getGkjyr() : ""); vo.setAxlxzw(entity.getAxlx() != null ? entity.getAxlx().getText() : ""); vo.setAxgnzw(entity.getAxgn() != null ? entity.getAxgn().getText() : ""); vo.setLyztzw(entity.getLyzt() != null ? entity.getLyzt().getText() : ""); vo.setNbazw(entity.getNba() != null?entity.getNba().getText() : ""); vo.setSzd(entity.getSzd() != null ? entity.getSzd().getId() : ""); vo.setSzgq(entity.getSzgq() != null ? entity.getSzgq().getId() : ""); vo.setSzgk(entity.getSzgk() != null ? entity.getSzgk().getId() : ""); vo.setSsjyr(entity.getSsjyr() != null ? entity.getSsjyr().getId() : ""); vo.setAxlx(entity.getAxlx() != null ? entity.getAxlx().getId() : ""); vo.setAxgn(entity.getAxgn() != null ? entity.getAxgn().getId() : ""); vo.setLyzt(entity.getLyzt() != null ? entity.getLyzt().getId() : ""); vo.setNba(entity.getNba() != null?entity.getNba().getId() : ""); voList.add(vo); } } return JSONArray.fromObject(voList).toString(); } /** * 根据id查询岸线信息 */ @Override public String findOne(String id) { AxEntity ax = dao.findOne(id); JSONArray jsons=JSONArray.fromObject(ax); return jsons.toString(); } @Override public String save(AxEntity code, String szdid, String szgkid, String szgqid, String ssjyrid, String axlxid, String axgnid, String lyztid, String nbaid) { // how:如果是新增直接保存,如果更新,先取出数据库中记录,然后更新页面传过来的字段 // why:这样的话一些在前台无需显示的字段保证不会丢失,同时一个个字段设置有助于bug排查 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); } if (StringUtils.isEmpty(szgqid)) { wr.setSuccess(false); wr.setMessage("请选择所在港区"); return Object2JsonStr(wr); } if (StringUtils.isEmpty(ssjyrid)) { wr.setSuccess(false); wr.setMessage("请选择所属经营人"); return Object2JsonStr(wr); } AxEntity axEntity = new AxEntity(); try { if (!StringUtils.isEmpty(code.getId())) { // 修改 axEntity = axService.findOne(code.getId()); axEntity.setTbzt(Constants.NO); } axEntity.setAxcd(code.getAxcd()); axEntity.setAxmc(code.getAxmc()); GkEntity szgk = new GkEntity(); szgk.setId(szgkid); axEntity.setSzgk(szgk); GqEntity szgq = new GqEntity(); szgq.setId(szgqid); axEntity.setSzgq(szgq); GkjyrEntity ssjyr = new GkjyrEntity(); ssjyr.setId(ssjyrid); axEntity.setSsjyr(ssjyr); // 非必填字段的验证,如为空则不验证,不为空则验证 if (!StringUtils.isEmpty(axlxid)) { CodeEntity axlx = new CodeEntity(axlxid); axEntity.setAxlx(axlx); } if (!StringUtils.isEmpty(axgnid)) { CodeEntity axgn = new CodeEntity(axgnid); axEntity.setAxgn(axgn); } if (!StringUtils.isEmpty(lyztid)) { CodeEntity lyzt = new CodeEntity(lyztid); axEntity.setLyzt(lyzt); } if (!StringUtils.isEmpty(nbaid)) { CodeEntity nba = new CodeEntity(nbaid); axEntity.setNba(nba); } axEntity.setZyid(code.getZyid()); axEntity.setJzrq(code.getJzrq()); axEntity.setAxcd(code.getAxcd()); axEntity.setQdzb(code.getQdzb()); axEntity.setZdzb(code.getZdzb()); axEntity.setAxpb(code.getAxpb()); axEntity.setBz(code.getBz()); axEntity.setWaterarea(code.getWaterarea()); axEntity.setLandarea(code.getLandarea()); axEntity.setLinelength(code.getLinelength()); axEntity.setQdzby(code.getQdzby()); axEntity.setZdzby(code.getZdzby()); axEntity.setAxwzms(code.getAxwzms()); GqEntity gq = gqService.findOne(szgqid); axEntity.setSsgkglbm(gq != null ? gq.getSsgkglbm() : null); CodeEntity szd = new CodeEntity(szdid); axEntity.setSzd(szd); axService.save(axEntity); } 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 { // 逻辑删除 axService.logicDelete(id); // 如果是市级删除,省级也删除 AxEntity ax = axService.findOne(id); try { if (GlobalData.DEPLOY_MODE.equals(Constants.DEPLOY_MODE_CITY) && needWS()) { AxWebService webService = axService.getWebService(null); webService.delete(id); ax.setTbzt(Constants.NO); axService.save(ax); } } catch (Exception e) { ax.setTbzt(Constants.NO); axService.save(ax); } } catch (Exception e) { wr.setSuccess(false); wr.setMessage("操作失败!"); e.printStackTrace(); } return Object2JsonStr(wr); } }