SssbxxService.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. package com.cxfws.jyrxxgl.service.impl;
  2. import java.text.SimpleDateFormat;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import javax.annotation.Resource;
  6. import javax.jws.WebMethod;
  7. import javax.jws.WebResult;
  8. import javax.jws.WebService;
  9. import javax.persistence.criteria.CriteriaBuilder;
  10. import javax.persistence.criteria.CriteriaBuilder.In;
  11. import javax.persistence.criteria.CriteriaQuery;
  12. import javax.persistence.criteria.Predicate;
  13. import javax.persistence.criteria.Root;
  14. import javax.xml.ws.WebServiceContext;
  15. import net.sf.json.JSONArray;
  16. import org.springframework.beans.BeanUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.data.domain.Page;
  19. import org.springframework.data.jpa.domain.Specification;
  20. import org.springframework.stereotype.Service;
  21. import com.cxfws.config.utils.CxfwsUtils;
  22. import com.cxfws.jyrxxgl.service.ISssbxxService;
  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.gkjcxx.gk.entity.GkEntity;
  27. import com.xt.jygl.gkjcxx.gq.entity.GqEntity;
  28. import com.xt.jygl.gkjcxx.gq.service.GqService;
  29. import com.xt.jygl.gkjcxx.zyq.entity.ZyqEntity;
  30. import com.xt.jygl.gkjygl.gkjyr.jyrjbxx.entity.GkjyrEntity;
  31. import com.xt.jygl.gkjygl.gkjyr.sssb.client.SssbWebService;
  32. import com.xt.jygl.gkjygl.gkjyr.sssb.entity.SssbEntity;
  33. import com.xt.jygl.gkjygl.gkjyr.sssb.service.SssbService;
  34. import com.xt.jygl.gkjygl.gkjyr.sssb.vo.SssbVo;
  35. import com.xt.jygl.gkjygl.gkjyr.xkzxx.entity.XkzglbEntity;
  36. import com.xt.jygl.gkjygl.gkjyr.xkzxx.service.XkzglbService;
  37. import com.xtframe.core.base.ctl.WebJsonResult;
  38. import com.xtframe.sec.code.entity.CodeEntity;
  39. import com.xtframe.sec.common.BaseEntity;
  40. import com.xtframe.sec.common.QueryService;
  41. import com.xtframe.sec.common.SimplePageRequest;
  42. import com.xtframe.sec.user.dao.UserDao;
  43. import com.xtframe.sec.user.entity.UserEntity;
  44. import com.xtframe.util.StringUtils;
  45. /**
  46. * 设施设备信息
  47. */
  48. @Service("sssbWebService")
  49. @WebService(targetNamespace = "http://service.web.jsjty.com/", portName = "sssbWebServicePort", serviceName = "sssbWebService")
  50. public class SssbxxService extends BaseWebCtl implements ISssbxxService{
  51. @Autowired
  52. private QueryService query;
  53. @Autowired
  54. private SssbService sssbService;
  55. @Resource
  56. private WebServiceContext wscontext;
  57. @Autowired
  58. private UserDao userdao;
  59. @Autowired
  60. private GqService gqService;
  61. @Autowired
  62. private XkzglbService xkzglbService;
  63. /**
  64. * 根据查询条件查询设施设备信息列表
  65. */
  66. @Override
  67. @WebMethod(operationName = "findSssb", action = "http://service.web.jsjty.com/findSssb")
  68. @WebResult(name = "result", targetNamespace = "http://service.web.jsjty.com/")
  69. public String findSssb(int pages, int rows,final String szdid, final String szgkid, final String szgqid, final String jyr, final String ssmc) {
  70. if (!this.checkUser()){
  71. return BaseWebCtl.NOLOGIN;
  72. }
  73. SimplePageRequest page = new SimplePageRequest(pages, rows);
  74. Specification<SssbEntity> spec = new Specification<SssbEntity>() {
  75. @Override
  76. public Predicate toPredicate(Root<SssbEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
  77. List<Predicate> list = new ArrayList<Predicate>();
  78. if (StringUtils.isNotEmpty(szdid)) {
  79. list.add(cb.like(root.get("szd").get("id").as(String.class), "%" + szdid + "%"));
  80. }
  81. if (StringUtils.isNotEmpty(szgkid)) {
  82. list.add(cb.like(root.get("szgk").get("id").as(String.class), "%" + szgkid + "%"));
  83. }
  84. if (StringUtils.isNotEmpty(szgqid)) {
  85. list.add(cb.like(root.get("szgq").get("id").as(String.class), "%" + szgqid + "%"));
  86. }
  87. if (StringUtils.isNotEmpty(jyr)) {
  88. list.add(cb.like(root.get("ssjyr").get("gkjyr").as(String.class), "%" + jyr + "%"));
  89. }
  90. if (StringUtils.isNotEmpty(ssmc)) {
  91. list.add(cb.like(root.get("ssmc").as(String.class), "%" + ssmc + "%"));
  92. }
  93. // 经营人只能查看自己企业下的数据,非经营人只能查看自己所在地的数据
  94. String userName=CxfwsUtils.userNameFromHeaderInfo(wscontext);
  95. UserEntity userEntity = userdao.findByUnameszd(userName,GlobalData.CITY_CODE);
  96. if (userEntity.getSsjyr()!=null) {
  97. list.add(cb.like(root.get("ssjyr").get("id").as(String.class), "%" + getSsjyr().getId() + "%"));
  98. } else {
  99. In<String> in = cb.in(root.get("szgq").get("id").as(String.class));
  100. List<String> gqlist = gqService.findGqListByUserId(userEntity.getId());
  101. if (gqlist != null && gqlist.size() > 0) {
  102. for (int i = 0; i < gqlist.size(); i++) {
  103. in.value(gqlist.get(i));
  104. }
  105. list.add(in);
  106. }
  107. }
  108. // 状态为0,9,10,11不显示
  109. list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORE_STATE_COPY));
  110. list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORD_STATE_DELETE));
  111. list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORE_STATE_BGFLAG));
  112. list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORE_STATE_ZXFLAG));
  113. return cb.and(list.toArray(new Predicate[] {}));
  114. }
  115. };
  116. if (page.getPage() < 1) {
  117. page.setPage(1);
  118. }
  119. page.setSort("id");
  120. page.setOrder("desc");
  121. Page<SssbEntity> sssblist = query.findAll(spec, toPageRequest(page), SssbEntity.class);
  122. List<SssbVo> voList = new ArrayList<SssbVo>();
  123. for (SssbEntity entity : sssblist) {
  124. SssbVo vo = new SssbVo();
  125. if (entity != null) {
  126. BeanUtils.copyProperties(entity, vo);
  127. vo.setSzdzw(entity.getSzd() != null ? entity.getSzd().getText() : "");
  128. vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : "");
  129. vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : "");
  130. vo.setSsjyrzw(entity.getSsjyr() != null ? entity.getSsjyr().getGkjyr() : "");
  131. vo.setYjfl(entity.getYjfl() != null ? entity.getYjfl().getText() : "");
  132. vo.setEjfl(entity.getEjfl() != null ? entity.getEjfl().getText() : "");
  133. vo.setSzd(entity.getSzd() != null ? entity.getSzd().getId() : "");
  134. vo.setSzgk(entity.getSzgk() != null ? entity.getSzgk().getId() : "");
  135. vo.setSzgq(entity.getSzgq() != null ? entity.getSzgq().getId() : "");
  136. vo.setSsjyr(entity.getSsjyr() != null ? entity.getSsjyr().getId() : "");
  137. vo.setXkzid(entity.getXkzid() != null ? entity.getXkzid() : "");
  138. vo.setSzzyq(entity.getSzzyq() != null ? entity.getSzzyq().getId() : "");
  139. vo.setSzzyqzw(entity.getSzzyq() != null ? entity.getSzzyq().getZyqmc() : "");
  140. vo.setSldw(entity.getSldw() != null ? entity.getSldw().getText() : "");
  141. voList.add(vo);
  142. }
  143. }
  144. return Object2JsonStr(voList);
  145. }
  146. /**
  147. * 根据id查询设施设备信息详情
  148. */
  149. @Override
  150. public String findOne(String id) {
  151. if (!this.checkUser()){
  152. return BaseWebCtl.NOLOGIN;
  153. }
  154. SssbEntity entity = sssbService.findOne(id);
  155. SssbVo vo = new SssbVo();
  156. if(entity!=null){
  157. BeanUtils.copyProperties(entity, vo);
  158. vo.setSzdzw(entity.getSzd() != null ? entity.getSzd().getText() : "");
  159. vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : "");
  160. vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : "");
  161. vo.setSsjyrzw(entity.getSsjyr() != null ? entity.getSsjyr().getGkjyr() : "");
  162. vo.setYjflzw(entity.getYjfl() != null ? entity.getYjfl().getText() : "");
  163. vo.setEjflzw(entity.getEjfl() != null ? entity.getEjfl().getText() : "");
  164. vo.setSldwzw(entity.getSldw() != null ? entity.getSldw().getText() : "");
  165. vo.setSzd(entity.getSzd() != null ? entity.getSzd().getId() : "");
  166. vo.setSzgk(entity.getSzgk() != null ? entity.getSzgk().getId() : "");
  167. vo.setSzgq(entity.getSzgq() != null ? entity.getSzgq().getId() : "");
  168. vo.setSsjyr(entity.getSsjyr() != null ? entity.getSsjyr().getId() : "");
  169. vo.setYjfl(entity.getYjfl() != null ? entity.getYjfl().getId() : "");
  170. vo.setEjfl(entity.getEjfl() != null ? entity.getEjfl().getId() : "");
  171. vo.setSldw(entity.getSldw() != null ? entity.getSldw().getId() : "");
  172. vo.setSzzyq(entity.getSzzyq() != null ? entity.getSzzyq().getId() : "");
  173. vo.setSzzyqzw(entity.getSzzyq() != null ? entity.getSzzyq().getZyqmc() : "");
  174. if (null != entity.getYxq()) {
  175. vo.setYxqfmt(new SimpleDateFormat("yyyy-MM-dd").format(entity.getYxq()));
  176. }
  177. }
  178. JSONArray jsons=JSONArray.fromObject(vo);
  179. return jsons.toString();
  180. }
  181. @Override
  182. public String save(String path, SssbEntity code, String szdid, String szgkid, String szgqid, String ssjyrid, String sldwid, String yjflid, String ejflid, String sbszzyqid) {
  183. // how:如果是新增直接保存,如果更新,先取出数据库中记录,然后更新页面传过来的字段
  184. // why:这样的话一些在前台无需显示的字段保证不会丢失,同时一个个字段设置有助于bug排查
  185. WebJsonResult wr = success();
  186. if (!this.checkUser()){
  187. wr.setSuccess(false);
  188. wr.setMessage(BaseWebCtl.NOLOGIN);
  189. return Object2JsonStr(wr);
  190. }
  191. SssbEntity entity = new SssbEntity();
  192. try {
  193. if (!StringUtils.isEmpty(code.getId())) {
  194. entity = sssbService.findOne(code.getId());
  195. entity.setTbzt(Constants.NO);
  196. }
  197. entity.setSsmc(code.getSsmc());
  198. entity.setGgxh(code.getGgxh());
  199. entity.setSl(code.getSl());
  200. entity.setCfcs(code.getCfcs());
  201. entity.setYxq(code.getYxq());
  202. entity.setTbr(code.getTbr());
  203. entity.setLxdh(code.getLxdh());
  204. entity.setBz(code.getBz());
  205. entity.setBh(code.getBh());
  206. if (!StringUtils.isEmpty(sldwid)) {
  207. CodeEntity sldw = new CodeEntity(sldwid);
  208. entity.setSldw(sldw);
  209. }
  210. if (!StringUtils.isEmpty(yjflid)) {
  211. CodeEntity yjfl = new CodeEntity(yjflid);
  212. entity.setYjfl(yjfl);
  213. }
  214. if (!StringUtils.isEmpty(ejflid)) {
  215. CodeEntity ejfl = new CodeEntity(ejflid);
  216. entity.setEjfl(ejfl);
  217. }
  218. if (!StringUtils.isEmpty(sbszzyqid)) {
  219. ZyqEntity zyq = new ZyqEntity();
  220. zyq.setId(sbszzyqid);
  221. entity.setSzzyq(zyq);
  222. }
  223. CodeEntity szd = new CodeEntity(szdid);
  224. entity.setSzd(szd);
  225. GkEntity szgk = new GkEntity();
  226. szgk.setId(szgkid);
  227. entity.setSzgk(szgk);
  228. GqEntity szgq = new GqEntity();
  229. szgq.setId(szgqid);
  230. entity.setSzgq(szgq);
  231. GkjyrEntity ssjyr = new GkjyrEntity();
  232. ssjyr.setId(ssjyrid);
  233. entity.setSsjyr(ssjyr);
  234. GqEntity gq = gqService.findOne(szgqid);
  235. entity.setSsgkglbm(gq != null ? gq.getSsgkglbm() : null);
  236. if (!StringUtils.isEmpty(path) && path.indexOf("bg") > 0) {
  237. if (path.indexOf("add") > 0) {
  238. entity.setRecordStatus(BaseEntity.RECORE_STATE_COPY);
  239. } else {
  240. entity.setRecordStatus(BaseEntity.RECORE_STATE_BGFLAG);
  241. }
  242. }
  243. sssbService.save(entity);
  244. wr.setAttr("entity", entity);
  245. } catch (Exception e) {
  246. wr.setSuccess(false);
  247. wr.setMessage("操作失败!");
  248. e.printStackTrace();
  249. }
  250. return Object2JsonStr(wr);
  251. }
  252. @Override
  253. public String delete(String id, String czid) {
  254. WebJsonResult wr = success();
  255. if (!this.checkUser()){
  256. wr.setSuccess(false);
  257. wr.setMessage(BaseWebCtl.NOLOGIN);
  258. return Object2JsonStr(wr);
  259. }
  260. try {
  261. if (!StringUtils.isEmpty(czid)) {
  262. XkzglbEntity xkzglb = xkzglbService.findByCzidAndYwid(czid, id);
  263. if (xkzglb != null) {
  264. xkzglbService.delete(xkzglb.getId());
  265. }
  266. }
  267. // 子类一并删除
  268. sssbService.logicDelete(id);
  269. // 如果是市级删除,省级也删除
  270. SssbEntity sssb = sssbService.findOne(id);
  271. try {
  272. if (GlobalData.DEPLOY_MODE.equals(Constants.DEPLOY_MODE_CITY) && needWS()) {
  273. SssbWebService webService = sssbService.getWebService(null);
  274. webService.delete(id);
  275. sssb.setTbzt(Constants.YES);
  276. sssbService.save(sssb);
  277. }
  278. } catch (Exception e) {
  279. sssb.setTbzt(Constants.NO);
  280. sssbService.save(sssb);
  281. }
  282. } catch (Exception e) {
  283. wr.setSuccess(false);
  284. wr.setMessage("删除失败!");
  285. e.printStackTrace();
  286. }
  287. return Object2JsonStr(wr);
  288. }
  289. }