package com.cxfws.jyrxxgl.service.impl; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import javax.jws.WebMethod; import javax.jws.WebResult; import javax.jws.WebService; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder.In; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import javax.xml.ws.WebServiceContext; import net.sf.json.JSONArray; 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.config.utils.CxfwsUtils; import com.cxfws.jyrxxgl.service.IDcxxService; import com.xt.jygl.common.BaseWebCtl; import com.xt.jygl.common.GlobalData; import com.xt.jygl.gkjcxx.gq.service.GqService; import com.xt.jygl.gkjygl.gkjyr.jyrdc.entity.DcEntity; import com.xt.jygl.gkjygl.gkjyr.jyrdc.service.DcService; import com.xt.jygl.gkjygl.gkjyr.jyrdc.vo.DcVo; import com.xtframe.sec.common.BaseEntity; import com.xtframe.sec.common.QueryService; import com.xtframe.sec.common.SimplePageRequest; import com.xtframe.sec.user.dao.UserDao; import com.xtframe.sec.user.entity.UserEntity; import com.xtframe.util.StringUtils; /** * 堆场信息 * @author b_zhaohang * */ @Service("dcWebService") @WebService(targetNamespace = "http://service.web.jsjty.com/", portName = "dcWebServicePort", serviceName = "dcWebService") public class DcxxService extends BaseWebCtl implements IDcxxService{ @Autowired private QueryService query; @Autowired private DcService dcService; @Resource private WebServiceContext wscontext; @Autowired private UserDao userdao; @Autowired private GqService gqService; /** * 根据查询条件查询堆场信息 */ @Override @WebMethod(operationName = "findDc", action = "http://service.web.jsjty.com/findDc") @WebResult(name = "result", targetNamespace = "http://service.web.jsjty.com/") public String findDc(int pages, int rows,final String szdid, final String szgkid, final String szgqid, final String ssjyr, final String dcmc, final String wxpdcid) { 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(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(dcmc)) { list.add(cb.like(root.get("dcmc").as(String.class), "%" + dcmc + "%")); } if (StringUtils.isNotEmpty(wxpdcid)) { list.add(cb.like(root.get("wxpdc").get("id").as(String.class), "%" + wxpdcid + "%")); } // 经营人只能查看自己企业下的数据,非经营人只能查看自己所在地的数据 String userName=CxfwsUtils.userNameFromHeaderInfo(wscontext); UserEntity userEntity = userdao.findByUnameszd(userName,GlobalData.CITY_CODE); if (userEntity.getSsjyr()!=null) { list.add(cb.like(root.get("ssjyr").get("id").as(String.class), "%" + getSsjyr().getId() + "%")); } else { In in = cb.in(root.get("szgq").get("id").as(String.class)); List gqlist = gqService.findGqListByUserId(userEntity.getId()); if (gqlist != null && gqlist.size() > 0) { for (int i = 0; i < gqlist.size(); i++) { in.value(gqlist.get(i)); } list.add(in); } } //状态为0,9,10,11不显示 list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORE_STATE_COPY)); 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_BGFLAG)); list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORE_STATE_ZXFLAG)); 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 dclist = query.findAll(spec,toPageRequest(page),DcEntity.class); List voList = new ArrayList(); for (DcEntity entity : dclist) { DcVo vo = new DcVo(); if (entity != null) { BeanUtils.copyProperties(entity, vo); vo.setSzdzw(entity.getSzd() != null ? entity.getSzd().getText() : ""); vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : ""); vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : ""); vo.setSsjyrzw(entity.getSsjyr() != null ? entity.getSsjyr().getGkjyr() : ""); vo.setWxpdczw(entity.getWxpdc() != null ? entity.getWxpdc().getText() : ""); vo.setXkzid(entity.getXkzid() != null ? entity.getXkzid() : ""); if(!StringUtils.isEmpty(vo.getZwdcyt())){ vo.setZwdcyt(vo.getZwdcyt().substring(0,vo.getZwdcyt().length()-1)); } voList.add(vo); } } return Object2JsonStr(voList); } /** * 根据id查询堆场详情 * @param id * @return */ @Override public String findOne(String id) { if (!this.checkUser()){ return BaseWebCtl.NOLOGIN; } DcEntity entity = dcService.findOne(id); DcVo vo = new DcVo(); if(entity!=null){ BeanUtils.copyProperties(entity, vo); vo.setSzdzw(entity.getSzd() != null ? entity.getSzd().getText() : ""); vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : ""); vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : ""); vo.setSsjyrzw(entity.getSsjyr() != null ? entity.getSsjyr().getGkjyr() : ""); vo.setWxpdczw(entity.getWxpdc() != null ? entity.getWxpdc().getText() : ""); vo.setSsmtzw(entity.getSsmt() != null ? entity.getSsmt().getMtmc() : ""); vo.setDclx(entity.getDclx() != null ? entity.getDclx().getId() : ""); vo.setDclxzw(entity.getDclx() != null ? entity.getDclx().getText() : ""); if(!StringUtils.isEmpty(vo.getZwdcyt())){ vo.setZwdcyt(vo.getZwdcyt().substring(0,vo.getZwdcyt().length()-1)); } } JSONArray jsons=JSONArray.fromObject(vo); return jsons.toString(); } }