JsjdglWebService.java 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651
  1. package com.cxfws.xmxxgl.service.impl;
  2. import java.text.SimpleDateFormat;
  3. import java.util.ArrayList;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import javax.annotation.Resource;
  10. import javax.jws.WebService;
  11. import javax.persistence.criteria.CriteriaBuilder;
  12. import javax.persistence.criteria.CriteriaBuilder.In;
  13. import javax.persistence.criteria.CriteriaQuery;
  14. import javax.persistence.criteria.Predicate;
  15. import javax.persistence.criteria.Root;
  16. import javax.persistence.criteria.Subquery;
  17. import javax.xml.ws.WebServiceContext;
  18. import org.springframework.beans.BeanUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.data.domain.Page;
  21. import org.springframework.data.jpa.domain.Specification;
  22. import org.springframework.stereotype.Service;
  23. import com.cxfws.xmxxgl.service.IJsjdglWebService;
  24. import com.xt.jygl.accessory.entity.AccessoryEntity;
  25. import com.xt.jygl.accessory.service.AccessoryService;
  26. import com.xt.jygl.common.BaseWebCtl;
  27. import com.xt.jygl.common.Constants;
  28. import com.xt.jygl.gkjcxx.gq.service.GqService;
  29. import com.xt.jygl.gkjsgl.jsjdgl.entity.JsjdfjEntity;
  30. import com.xt.jygl.gkjsgl.jsjdgl.entity.XmxxglfbEntity;
  31. import com.xt.jygl.gkjsgl.jsjdgl.entity.XmyjhxxEntity;
  32. import com.xt.jygl.gkjsgl.jsjdgl.service.JsjdfjService;
  33. import com.xt.jygl.gkjsgl.jsjdgl.service.XmxxglfbService;
  34. import com.xt.jygl.gkjsgl.jsjdgl.service.XmyjhxxService;
  35. import com.xt.jygl.gkjsgl.jsjdgl.vo.JsjdfjVo;
  36. import com.xt.jygl.gkjsgl.jsjdgl.vo.XmxxglfbVo;
  37. import com.xt.jygl.gkjsgl.tzjhgl.entity.TzjhglEntity;
  38. import com.xt.jygl.gkjsgl.tzjhgl.service.TzjhglService;
  39. import com.xt.jygl.gkjsgl.tzjhgl.vo.TzjhglVo;
  40. import com.xt.jygl.gkjsgl.xmxxgl.entity.XmbwglbEntity;
  41. import com.xt.jygl.gkjsgl.xmxxgl.entity.XmxxglEntity;
  42. import com.xt.jygl.gkjsgl.xmxxgl.service.XmbwglbService;
  43. import com.xt.jygl.gkjsgl.xmxxgl.service.XmxxglService;
  44. import com.xt.jygl.gkjsgl.xmxxgl.service.XmxxgljggzService;
  45. import com.xt.jygl.gkjsgl.xmxxgl.vo.XmxxglVo;
  46. import com.xt.jygl.gkjygl.gkjyr.jyrbw.service.BwService;
  47. import com.xt.jygl.gkjygl.gkjyr.jyrjbxx.entity.BwEntity;
  48. import com.xt.jygl.gkjygl.gkjyr.jyrjbxx.vo.BwVo;
  49. import com.xt.jygl.workflow.entity.TaskInfoEntity;
  50. import com.xt.jygl.workflow.service.TaskInfoService;
  51. import com.xtframe.sec.code.entity.CodeEntity;
  52. import com.xtframe.sec.common.BaseEntity;
  53. import com.xtframe.sec.common.SimplePageRequest;
  54. import com.xtframe.sec.utils.SecUtils;
  55. import com.xtframe.util.StringUtils;
  56. /**
  57. * 建设进度管理
  58. *
  59. * @author b_zhangdong
  60. *
  61. */
  62. @Service("jsjdglWebService")
  63. @WebService(targetNamespace = "http://service.web.jsjty.com/", portName = "jsjdglWebServicePort", serviceName = "jsjdglWebService")
  64. public class JsjdglWebService extends BaseWebCtl implements IJsjdglWebService {
  65. @Autowired
  66. protected TaskInfoService taskInfoService;
  67. @Autowired
  68. private XmxxglService xmxxglService;
  69. @Autowired
  70. private XmxxgljggzService xmxxgljggzService;
  71. @Autowired
  72. private AccessoryService accessoryService;
  73. @Autowired
  74. private XmbwglbService xmbwglbService;
  75. @Autowired
  76. private JsjdfjService jsjdfjService;
  77. @Autowired
  78. private BwService bwService;
  79. @Autowired
  80. private TzjhglService tzjhglService;
  81. @Autowired
  82. private XmyjhxxService xmyjhxxService;
  83. @Autowired
  84. private XmxxglfbService xmxxglfbService;
  85. @Resource
  86. private WebServiceContext wscontext;
  87. @Autowired
  88. private GqService gqService;
  89. /**
  90. * 获取进度列表
  91. */
  92. @Override
  93. public String findJsjdgl(int pages,int rows,final String xmmc, final String szdid, final String szgkid, final String szgqid, final String dqzt, final String xmfr, final String lcjd) {
  94. if (!this.checkUser()){
  95. return BaseWebCtl.NOLOGIN;
  96. }
  97. SimplePageRequest page = new SimplePageRequest(pages, rows);
  98. Specification<XmxxglEntity> spec = new Specification<XmxxglEntity>() {
  99. // 查询条件
  100. @Override
  101. public Predicate toPredicate(Root<XmxxglEntity> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
  102. List<Predicate> list = new ArrayList<Predicate>();
  103. if (StringUtils.isNotEmpty(xmmc)) {
  104. list.add(cb.like(root.get("xmmc").as(String.class), "%" + xmmc + "%"));
  105. }
  106. if (StringUtils.isNotEmpty(xmfr)) {
  107. list.add(cb.like(root.get("xmfr").as(String.class), "%" + xmfr + "%"));
  108. }
  109. if (StringUtils.isNotEmpty(szdid)) {
  110. list.add(cb.like(root.get("szd").get("id").as(String.class), "%" + szdid + "%"));
  111. }
  112. if (StringUtils.isNotEmpty(szgkid)) {
  113. list.add(cb.like(root.get("szgk").get("id").as(String.class), "%" + szgkid + "%"));
  114. }
  115. if (StringUtils.isNotEmpty(szgqid)) {
  116. list.add(cb.like(root.get("szgq").get("id").as(String.class), "%" + szgqid + "%"));
  117. }
  118. Subquery<TaskInfoEntity> subquery = query.subquery(TaskInfoEntity.class);
  119. Root<TaskInfoEntity> dpRoot = subquery.from(TaskInfoEntity.class);
  120. subquery.select(dpRoot);
  121. List<Predicate> subQueryPredicates = new ArrayList<Predicate>();
  122. if (StringUtils.isNotEmpty(lcjd)) {
  123. if (lcjd.equals("已完成")) {
  124. list.add(cb.like(root.get("recordStatus").as(String.class), "%" + BaseEntity.RECORD_STATE_COMPLETED + "%"));
  125. } else {
  126. subQueryPredicates.add(cb.equal(root.get("id").as(String.class), dpRoot.get("busId").as(String.class)));
  127. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + lcjd + "%"));
  128. subQueryPredicates.add(cb.equal(dpRoot.get("state").as(String.class), "3"));
  129. subquery.where(subQueryPredicates.toArray(new Predicate[] {}));
  130. list.add(cb.exists(subquery));
  131. }
  132. }
  133. if (StringUtils.isNotEmpty(dqzt)) {
  134. if (dqzt.equals("已完成")) {
  135. list.add(cb.like(root.get("recordStatus").as(String.class), "%" + BaseEntity.RECORD_STATE_COMPLETED + "%"));
  136. } else {
  137. subQueryPredicates.add(cb.equal(root.get("id").as(String.class), dpRoot.get("busId").as(String.class)));
  138. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + dqzt + "%"));
  139. if ("岸线利用审批".equals(dqzt)) {
  140. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + "岸线利用审批支撑文件审查" + "%"));
  141. }
  142. if ("项目审批、核准、备案".equals(dqzt)) {
  143. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + "项目审批、核准、备案支撑文件审查" + "%"));
  144. }
  145. if ("初步设计审批".equals(dqzt)) {
  146. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + "初步设计审批支撑文件审查" + "%"));
  147. }
  148. if ("施工图设计审批".equals(dqzt)) {
  149. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + "施工图设计审批支撑文件审查" + "%"));
  150. }
  151. if ("开工备案".equals(dqzt)) {
  152. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + "开工备案支撑文件审查" + "%"));
  153. }
  154. if ("交工验收".equals(dqzt)) {
  155. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + "交工验收" + "%"));
  156. }
  157. if ("试运行备案".equals(dqzt)) {
  158. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + "试运行备案" + "%"));
  159. }
  160. if ("竣工验收".equals(dqzt)) {
  161. subQueryPredicates.add(cb.like(dpRoot.get("currName").as(String.class), "%" + "竣工验收" + "%"));
  162. }
  163. subquery.where(subQueryPredicates.toArray(new Predicate[] {}));
  164. list.add(cb.exists(subquery));
  165. }
  166. }
  167. // 经营人只能查看自己企业下的数据,非经营人只能查看自己所在港区的数据
  168. if (isJyr()) {
  169. list.add(cb.like(root.get("jyrid").get("id").as(String.class), "%" + getSsjyr().getId() + "%"));
  170. } else {
  171. In<String> in = cb.in(root.get("szgq").get("id").as(String.class));
  172. // @SuppressWarnings("unchecked")
  173. // List<String> gqlist = (List<String>) Utils.getSession().getAttribute("gqList");
  174. List<String> gqlist = gqService.findGqListByUserId(SecUtils.getCurrUser().getId());
  175. if (gqlist != null && gqlist.size() > 0) {
  176. for (int i = 0; i < gqlist.size(); i++) {
  177. in.value(gqlist.get(i));
  178. }
  179. list.add(in);
  180. }
  181. }
  182. // 只显示状态为8或者3的
  183. list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORD_STATE_DELETE));
  184. list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORD_STATE_VALID));
  185. return cb.and(list.toArray(new Predicate[] {}));
  186. }
  187. };
  188. if (page.getPage() < 1) {
  189. page.setPage(1);
  190. }
  191. page.setSort("id");
  192. page.setOrder("desc");
  193. Page<XmxxglEntity> list = query.findAll(spec, toPageRequest(page), XmxxglEntity.class);
  194. //List<XmxxglEntity> list = query.findAll(spec, XmxxglEntity.class);
  195. List<XmxxglVo> voList = new ArrayList<XmxxglVo>();
  196. for (XmxxglEntity entity : list) {
  197. XmxxglVo vo = new XmxxglVo();
  198. if (null != entity) {
  199. BeanUtils.copyProperties(entity, vo);
  200. vo.setTzlxzw(entity.getTzlx() != null ? entity.getTzlx().getText() : "");
  201. vo.setXmlxzw(entity.getXmlx() != null ? entity.getXmlx().getText() : "");
  202. vo.setXmhzjbzw(entity.getXmhzjb() != null ? entity.getXmhzjb().getText() : "");
  203. vo.setAxspjbzw(entity.getAxspjb() != null ? entity.getAxspjb().getText() : "");
  204. vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : "");
  205. vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : "");
  206. vo.setJyrzw(entity.getJyrid() != null ? entity.getJyrid().getGkjyr() : "");
  207. vo.setJyrid(entity.getJyrid() != null ? entity.getJyrid().getId() : "");
  208. vo.setTzlx(entity.getTzlx() != null ? entity.getTzlx().getId() : "");
  209. vo.setXmlx(entity.getXmlx() != null ? entity.getXmlx().getId() : "");
  210. vo.setXmhzjb(entity.getXmhzjb() != null ? entity.getXmhzjb().getId() : "");
  211. vo.setAxspjb(entity.getAxspjb() != null ? entity.getAxspjb().getId() : "");
  212. vo.setSzgk(entity.getSzgk() != null ? entity.getSzgk().getId() : "");
  213. vo.setSzgq(entity.getSzgq() != null ? entity.getSzgq().getId() : "");
  214. if (entity.getXmlx().getId().equals("2202")) {
  215. List<TaskInfoEntity> listtask = taskInfoService.findByBusIdAndBusKeyAndRecordStatus(entity.getId().toString(), XmxxglEntity.PROCESS_DEFINITION_KEY2);
  216. if (listtask.size() != 0) {
  217. vo.setDqzt(listtask.get(0).getCurrName());
  218. vo.setTaskkey(listtask.get(0).getTaskKey());
  219. } else {
  220. if (entity.getRecordStatus() == BaseEntity.RECORD_STATE_COMPLETED) {
  221. vo.setDqzt("已完成");
  222. }
  223. if (entity.getRecordStatus() == BaseEntity.RECORD_STATE_VALID || entity.getRecordStatus() == 8) {
  224. vo.setDqzt("未提交");
  225. }
  226. }
  227. } else {
  228. List<TaskInfoEntity> listtask = taskInfoService.findByBusIdAndBusKeyAndRecordStatus(entity.getId().toString(), XmxxglEntity.PROCESS_DEFINITION_KEY);
  229. if (listtask.size() != 0) {
  230. vo.setDqzt(listtask.get(0).getCurrName());
  231. vo.setTaskkey(listtask.get(0).getTaskKey());
  232. } else {
  233. if (entity.getRecordStatus() == BaseEntity.RECORD_STATE_COMPLETED) {
  234. vo.setDqzt("已完成");
  235. }
  236. if (entity.getRecordStatus() == BaseEntity.RECORD_STATE_VALID || entity.getRecordStatus() == 8) {
  237. vo.setDqzt("未提交");
  238. }
  239. }
  240. }
  241. if (!isJyr()) {
  242. if ((xmxxglService.getTaskByUserAndBusKey(SecUtils.getCurrUser().getId().toString(), entity.getId().toString()) != null) || xmxxgljggzService.getCandidateTaskByUserAndBusKey(SecUtils.getCurrUser().getId().toString(), entity.getId().toString()) != null || xmxxglService.getCandidateTaskByUserAndBusKey(SecUtils.getCurrUser().getId().toString(), entity.getId().toString()) != null || xmxxgljggzService.getTaskByUserAndBusKey(SecUtils.getCurrUser().getId().toString(), entity.getId().toString()) != null) {
  243. vo.setTaskState(Constants.IS_MY_TASK);
  244. }
  245. } else {
  246. if ((xmxxglService.getTaskByUserAndBusKey(SecUtils.getCurrUser().getSsjyr().getId().toString(), entity.getId().toString()) != null) || xmxxgljggzService.getCandidateTaskByUserAndBusKey(SecUtils.getCurrUser().getId().toString(), entity.getId().toString()) != null || xmxxglService.getCandidateTaskByUserAndBusKey(SecUtils.getCurrUser().getId().toString(), entity.getId().toString()) != null || xmxxgljggzService.getTaskByUserAndBusKey(SecUtils.getCurrUser().getSsjyr().getId().toString(), entity.getId().toString()) != null) {
  247. vo.setTaskState(Constants.IS_MY_TASK);
  248. }
  249. }
  250. voList.add(vo);
  251. }
  252. }
  253. return Object2JsonStr(voList);
  254. }
  255. /**
  256. * 获取进度详情
  257. */
  258. @Override
  259. public String findOne(String id) {
  260. if (!this.checkUser()){
  261. return BaseWebCtl.NOLOGIN;
  262. }
  263. Map<String, Object> map = new HashMap<String, Object>();
  264. // 附件
  265. List<AccessoryEntity> accessoryList = accessoryService.queryBySsidAndSstype(id, "jsjd");
  266. List<JsjdfjVo> jsjdfjVoList = new ArrayList<>();
  267. for (int i = 0; i < accessoryList.size(); i++) {
  268. if (StringUtils.isNotEmpty(accessoryList.get(i).getRemark())) {
  269. AccessoryEntity acc = accessoryList.get(i);
  270. JsjdfjVo fjnamevo = new JsjdfjVo();
  271. fjnamevo.setXhbz(acc.getRemark().substring(2, accessoryList.get(i).getRemark().length()));
  272. fjnamevo.setFjid(acc.getId());
  273. fjnamevo.setFjmc(acc.getName());
  274. jsjdfjVoList.add(fjnamevo);
  275. }
  276. }
  277. // 项目基本信息
  278. XmxxglEntity entity = xmxxglService.findOne(id);
  279. XmxxglVo vo = new XmxxglVo();
  280. BeanUtils.copyProperties(entity, vo);
  281. vo.setTzlxzw(entity.getTzlx() != null ? entity.getTzlx().getText() : "");
  282. vo.setXmlxzw(entity.getXmlx() != null ? entity.getXmlx().getText() : "");
  283. vo.setXmhzjbzw(entity.getXmhzjb() != null ? entity.getXmhzjb().getText() : "");
  284. vo.setAxspjbzw(entity.getAxspjb() != null ? entity.getAxspjb().getText() : "");
  285. if (entity.getJyrid() != null) {
  286. vo.setSzddzw(entity.getJyrid().getSzd() != null ? entity.getJyrid().getSzd().getText() : "");
  287. vo.setSzd(entity.getJyrid().getSzd() != null ? entity.getJyrid().getSzd().getId() : "");
  288. }
  289. vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : "");
  290. vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : "");
  291. vo.setJyrzw(entity.getJyrid() != null ? entity.getJyrid().getGkjyr() : "");
  292. vo.setZyhbwflzw(entity.getZyhbwfl() != null ? entity.getZyhbwfl().getText() : "");
  293. vo.setTzlx(entity.getTzlx() != null ? entity.getTzlx().getId() : "");
  294. vo.setXmlx(entity.getXmlx() != null ? entity.getXmlx().getId() : "");
  295. vo.setXmhzjb(entity.getXmhzjb() != null ? entity.getXmhzjb().getId() : "");
  296. vo.setAxspjb(entity.getAxspjb() != null ? entity.getAxspjb().getId() : "");
  297. vo.setSzgk(entity.getSzgk() != null ? entity.getSzgk().getId() : "");
  298. vo.setSzgq(entity.getSzgq() != null ? entity.getSzgq().getId() : "");
  299. vo.setJyrid(entity.getJyrid() != null ? entity.getJyrid().getId() : "");
  300. vo.setSylxzw(entity.getSylx() != null ? entity.getSylx().getText() : "");
  301. if (entity.getBwyt() != null) {
  302. String bwytzw = "";
  303. String[] s = entity.getBwyt().split(",");
  304. for (int i = 0; i < s.length; i++) {
  305. if (i != s.length - 1) {
  306. bwytzw += securityMgr.codeService().findOne(s[i]).getText() + ",";
  307. } else {
  308. bwytzw += securityMgr.codeService().findOne(s[i]).getText();
  309. }
  310. }
  311. vo.setBwytzw(bwytzw);
  312. }
  313. String bwids = "";
  314. List<XmbwglbEntity> bwlist = xmbwglbService.findByXmid(entity.getId());
  315. if (bwlist != null && bwlist.size() > 0) {
  316. for (XmbwglbEntity xmbw : bwlist) {
  317. bwids = bwids + xmbw.getBwid() + ",";
  318. }
  319. bwids = bwids.substring(0, bwids.length() - 1);
  320. }
  321. vo.setBwids(bwids);
  322. // 项目泊位关联信息
  323. List<XmbwglbEntity> xmbwlist = xmbwglbService.findByXmid(entity.getId());
  324. // 泊位信息
  325. List<BwEntity> bwList = new ArrayList<BwEntity>();
  326. if (xmbwlist != null && xmbwlist.size() > 0) {
  327. for (XmbwglbEntity xm : xmbwlist) {
  328. BwEntity bw = bwService.findOne(xm.getBwid());
  329. bwList.add(bw);
  330. }
  331. }
  332. List<BwVo> voList = new ArrayList<BwVo>();
  333. for (BwEntity entitybw : bwList) {
  334. BwVo vobw = new BwVo();
  335. if (entitybw != null) {
  336. BeanUtils.copyProperties(entitybw, vobw);
  337. vobw.setSzdzw(entitybw.getSzd() != null ? entitybw.getSzd().getText() : "");
  338. vobw.setSzgkzw(entitybw.getSzgk() != null ? entitybw.getSzgk().getGkmc() : "");
  339. vobw.setSzgqzw(entitybw.getSzgq() != null ? entitybw.getSzgq().getGqmc() : "");
  340. vobw.setSsjyrzw(entitybw.getSsjyr() != null ? entitybw.getSsjyr().getGkjyr() : "");
  341. vobw.setSsmtzw(entitybw.getSsmt() != null ? entitybw.getSsmt().getMtmc() : "");
  342. vobw.setBwsxzw(entitybw.getBwsx() != null ? entitybw.getBwsx().getText() : "");
  343. vobw.setFwlxzw(entitybw.getFwlx() != null ? entitybw.getFwlx().getText() : "");
  344. vobw.setWxpbwzw(entitybw.getWxpbw() != null ? entitybw.getWxpbw().getText() : "");
  345. vobw.setZyhbwflzw(entitybw.getZyhbwfl() != null ? entitybw.getZyhbwfl().getText() : "");
  346. vobw.setSffzzw(entitybw.getSffz() != null ? entitybw.getSffz().getText() : "");
  347. vobw.setSfdwkfzw(entitybw.getSfdwkf() != null ? entitybw.getSfdwkf().getText() : "");
  348. vobw.setBwszsxzw(entitybw.getBwszsx() != null ? entitybw.getBwszsx().getText() : "");
  349. vobw.setSclxzw(entitybw.getSclx() != null ? entitybw.getSclx().getText() : "");
  350. vobw.setJgxszw(entitybw.getJgxs() != null ? entitybw.getJgxs().getText() : "");
  351. if (entitybw.getBwyt() != null) {
  352. String bwytzw = "";
  353. String[] s = entitybw.getBwyt().split(",");
  354. for (int i = 0; i < s.length; i++) {
  355. CodeEntity ce = securityMgr.codeService().findOne(s[i]);
  356. if (ce != null) {
  357. bwytzw += ce.getText();
  358. if (i != s.length - 1) {
  359. bwytzw += ",";
  360. }
  361. }
  362. }
  363. vobw.setBwytzw(bwytzw);
  364. }
  365. vobw.setSzd(entitybw.getSzd() != null ? entitybw.getSzd().getId() : "");
  366. vobw.setSzgk(entitybw.getSzgk() != null ? entitybw.getSzgk().getId() : "");
  367. vobw.setSzgq(entitybw.getSzgq() != null ? entitybw.getSzgq().getId() : "");
  368. vobw.setSsjyr(entitybw.getSsjyr() != null ? entitybw.getSsjyr().getId() : "");
  369. vobw.setSsmt(entitybw.getSsmt() != null ? entitybw.getSsmt().getId() : "");
  370. vobw.setBwsx(entitybw.getBwsx() != null ? entitybw.getBwsx().getId() : "");
  371. vobw.setFwlx(entitybw.getFwlx() != null ? entitybw.getFwlx().getId() : "");
  372. vobw.setWxpbw(entitybw.getWxpbw() != null ? entitybw.getWxpbw().getId() : "");
  373. vobw.setZyhbwfl(entitybw.getZyhbwfl() != null ? entitybw.getZyhbwfl().getId() : "");
  374. vobw.setSffz(entitybw.getSffz() != null ? entitybw.getSffz().getId() : "");
  375. vobw.setSfdwkf(entitybw.getSfdwkf() != null ? entitybw.getSfdwkf().getId() : "");
  376. vobw.setBwszsx(entitybw.getBwszsx() != null ? entitybw.getBwszsx().getId() : "");
  377. vobw.setSclx(entitybw.getSclx() != null ? entitybw.getSclx().getId() : "");
  378. vobw.setJgxs(entitybw.getJgxs() != null ? entitybw.getJgxs().getId() : "");
  379. vobw.setXkzid(entitybw.getXkzid() != null ? entitybw.getXkzid() : "");
  380. vobw.setSszyq(entitybw.getSszyq() != null ? entitybw.getSszyq().getId() : "");
  381. vobw.setSszyqzw(entitybw.getSszyq() != null ? entitybw.getSszyq().getZyqmc() : "");
  382. vobw.setZls(entitybw.getZls() != null ? entitybw.getZls().getId() : "");
  383. vobw.setZlszw(entitybw.getZls() != null ? entitybw.getZls().getText() : "");
  384. vobw.setXp(entitybw.getXp() != null ? entitybw.getXp().getId() : "");
  385. vobw.setXpzw(entitybw.getXp() != null ? entitybw.getXp().getText() : "");
  386. voList.add(vobw);
  387. }
  388. }
  389. // 附件字段
  390. List<JsjdfjEntity> fjlist = jsjdfjService.findByEntity(entity, "ptfj");
  391. List<JsjdfjVo> jsjdfjVoList1 = new ArrayList<>();
  392. SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd");
  393. for (int i = 0; i < fjlist.size(); i++) {
  394. // 从发布单位中获取标识位
  395. if (StringUtils.isNotEmpty(fjlist.get(i).getFjbz())) {
  396. String s = fjlist.get(i).getFjbz().substring(0, 2);
  397. Date date = fjlist.get(i).getFbsj();
  398. JsjdfjVo fjvo = new JsjdfjVo();
  399. fjvo.setFjbz(fjlist.get(i).getFjbz().substring(2, fjlist.get(i).getFjbz().length()));
  400. if (date != null) {
  401. String date2 = dateFormater.format(date);
  402. fjvo.setFbsj(date2);
  403. }
  404. fjvo.setFbdw(fjlist.get(i).getFbdw());
  405. fjvo.setWjh(fjlist.get(i).getWjh());
  406. fjvo.setId(fjlist.get(i).getId());
  407. jsjdfjVoList1.add(fjvo);
  408. }
  409. }
  410. // 其他附件和字段
  411. List<JsjdfjEntity> qtfjzdlist = jsjdfjService.findByEntity(entity, "jsjdqtfj");
  412. // 流程历史
  413. List<TaskInfoEntity> historyList = new ArrayList<TaskInfoEntity>();
  414. if (entity.getXmlx().getId().equals("2202")) {
  415. historyList = taskInfoService.findByBusIdAndBusKeyAndRecordStatus(id, XmxxglEntity.PROCESS_DEFINITION_KEY2);
  416. } else {
  417. historyList = taskInfoService.findByBusIdAndBusKeyAndRecordStatus(id, XmxxglEntity.PROCESS_DEFINITION_KEY);
  418. }
  419. map.put("accessoryList", jsjdfjVoList);
  420. map.put("xmxx", vo);
  421. map.put("bwList", voList);
  422. map.put("qtfjzdlist", qtfjzdlist);
  423. map.put("fjlist", jsjdfjVoList1);
  424. map.put("historyList", historyList);
  425. return Object2JsonStr(map);
  426. }
  427. /**
  428. * 获取流程历史
  429. */
  430. @Override
  431. public String findHistoryAudit(String id,String sortno) {
  432. XmxxglfbVo vo = new XmxxglfbVo();
  433. try {
  434. XmxxglfbEntity xmxxfb = xmxxglfbService.findByXmidAndSortno(id, sortno);
  435. if (xmxxfb != null) {
  436. BeanUtils.copyProperties(xmxxfb, vo);
  437. vo.setTzlxzw(xmxxfb.getTzlx() != null ? xmxxfb.getTzlx().getText() : "");
  438. vo.setXmlxzw(xmxxfb.getXmlx() != null ? xmxxfb.getXmlx().getText() : "");
  439. vo.setXmhzjbzw(xmxxfb.getXmhzjb() != null ? xmxxfb.getXmhzjb().getText() : "");
  440. vo.setAxspjbzw(xmxxfb.getAxspjb() != null ? xmxxfb.getAxspjb().getText() : "");
  441. vo.setSzgkzw(xmxxfb.getSzgk() != null ? xmxxfb.getSzgk().getGkmc() : "");
  442. vo.setSzgqzw(xmxxfb.getSzgq() != null ? xmxxfb.getSzgq().getGqmc() : "");
  443. vo.setSzdzw(xmxxfb.getSzd() != null ? xmxxfb.getSzd().getText() : "");
  444. vo.setZyhbwflzw(xmxxfb.getZyhbwfl() != null ? xmxxfb.getZyhbwfl().getText() : "");
  445. vo.setTzlx(xmxxfb.getTzlx() != null ? xmxxfb.getTzlx().getId() : "");
  446. vo.setXmlx(xmxxfb.getXmlx() != null ? xmxxfb.getXmlx().getId() : "");
  447. vo.setXmhzjb(xmxxfb.getXmhzjb() != null ? xmxxfb.getXmhzjb().getId() : "");
  448. vo.setAxspjb(xmxxfb.getAxspjb() != null ? xmxxfb.getAxspjb().getId() : "");
  449. vo.setSzd(xmxxfb.getSzd() != null ? xmxxfb.getSzd().getId() : "");
  450. vo.setSzgk(xmxxfb.getSzgk() != null ? xmxxfb.getSzgk().getId() : "");
  451. vo.setSzgq(xmxxfb.getSzgq() != null ? xmxxfb.getSzgq().getId() : "");
  452. vo.setYj(xmxxfb.getYj() != null ? xmxxfb.getYj() : "");
  453. vo.setZyhbwfl(xmxxfb.getZyhbwfl() != null ? xmxxfb.getZyhbwfl().getId() : "");
  454. }
  455. } catch (Exception e) {
  456. e.printStackTrace();
  457. }
  458. return Object2JsonStr(vo);
  459. }
  460. /**
  461. * 查询实施过程和详情
  462. */
  463. @Override
  464. public String findSsgc(String xmid) {
  465. List<TzjhglVo> voList = new ArrayList<TzjhglVo>();
  466. List<TzjhglEntity> tzjhlist = tzjhglService.findByXmid(xmid);
  467. for (int i = 0; i < tzjhlist.size(); i++) {
  468. TzjhglVo vo = new TzjhglVo();
  469. vo.setId2(tzjhlist.get(i) != null ? tzjhlist.get(i).getId() : "");
  470. vo.setNdjhtz(tzjhlist.get(i).getNdjhtz());
  471. vo.setJhnd(tzjhlist.get(i) != null ? tzjhlist.get(i).getJhnd() : "");
  472. // 获取当前月份
  473. Calendar cal = Calendar.getInstance();
  474. int month = cal.get(Calendar.MONTH) + 1;
  475. // 根据项目id,年度,月份查询当前数据
  476. XmyjhxxEntity entity = xmyjhxxService.findByJhndAndXmidAndYf(xmid, vo.getJhnd(), month + "");
  477. if (entity != null) {
  478. vo.setDqydtz((entity.getSjwctze() != null ? entity.getSjwctze().toString() : ""));
  479. vo.setDqxxjd(entity.getDqxxjd() != null ? entity.getDqxxjd() : "");
  480. vo.setXxjdwcqkfx(entity.getXxjdwcqkfx() != null ? entity.getXxjdwcqkfx() : "");
  481. }
  482. voList.add(vo);
  483. }
  484. return Object2JsonStr(voList);
  485. }
  486. /**
  487. * 根据资源id查询建设进度信息
  488. */
  489. @Override
  490. public String findJsjdByZyid(String zyid) {
  491. List<XmxxglEntity> xmxxList = new ArrayList<XmxxglEntity>();
  492. List<XmxxglVo> xmxxVoList = new ArrayList<>();
  493. List<BwEntity> bwList = bwService.findByMtid(zyid);
  494. if ( bwList !=null && bwList.size()>0){
  495. for (BwEntity bw : bwList){
  496. List<XmbwglbEntity> xmbwlist = xmbwglbService.findByBwid(bw.getId());
  497. if ( xmbwlist !=null && xmbwlist.size()>0){
  498. for (XmbwglbEntity xb : xmbwlist){
  499. XmxxglEntity entity = xmxxglService.findOne(xb.getXmid());
  500. if(!xmxxList.contains(entity)){
  501. xmxxList.add(entity);
  502. }
  503. }
  504. }
  505. }
  506. }
  507. for (XmxxglEntity entity : xmxxList){
  508. XmxxglVo vo = new XmxxglVo();
  509. BeanUtils.copyProperties(entity, vo);
  510. vo.setTzlxzw(entity.getTzlx() != null ? entity.getTzlx().getText() : "");
  511. vo.setXmlxzw(entity.getXmlx() != null ? entity.getXmlx().getText() : "");
  512. vo.setXmhzjbzw(entity.getXmhzjb() != null ? entity.getXmhzjb().getText() : "");
  513. vo.setAxspjbzw(entity.getAxspjb() != null ? entity.getAxspjb().getText() : "");
  514. vo.setSzgkzw(entity.getSzgk() != null ? entity.getSzgk().getGkmc() : "");
  515. vo.setSzgqzw(entity.getSzgq() != null ? entity.getSzgq().getGqmc() : "");
  516. vo.setZyhbwflzw(entity.getZyhbwfl() != null ? entity.getZyhbwfl().getText() : "");
  517. vo.setSylxzw(entity.getSylx() != null ? entity.getSylx().getText() : "");
  518. vo.setSylx(entity.getSylx() != null ? entity.getSylx().getId() : "");
  519. vo.setSzddzw(entity.getSzd() != null ? entity.getSzd().getText() : "");
  520. if (entity.getBwyt() != null) {
  521. String bwytzw = "";
  522. String[] s = entity.getBwyt().split(",");
  523. for (int i = 0; i < s.length; i++) {
  524. CodeEntity code = securityMgr.codeService().findOne(s[i]);
  525. if (code != null) {
  526. bwytzw += code.getText() + ",";
  527. }
  528. }
  529. if (!StringUtils.isEmpty(bwytzw)) {
  530. bwytzw = bwytzw.substring(0, bwytzw.length() - 1);
  531. }
  532. vo.setBwytzw(bwytzw);
  533. }
  534. String bwids = "";
  535. List<XmbwglbEntity> list = xmbwglbService.findByXmid(entity.getId());
  536. if (list != null && list.size() > 0) {
  537. for (XmbwglbEntity xmbw : list) {
  538. bwids = bwids + xmbw.getBwid() + ",";
  539. }
  540. bwids = bwids.substring(0, bwids.length() - 1);
  541. }
  542. vo.setBwids(bwids);
  543. vo.setTzlx(entity.getTzlx() != null ? entity.getTzlx().getId() : "");
  544. vo.setXmlx(entity.getXmlx() != null ? entity.getXmlx().getId() : "");
  545. vo.setXmhzjb(entity.getXmhzjb() != null ? entity.getXmhzjb().getId() : "");
  546. vo.setAxspjb(entity.getAxspjb() != null ? entity.getAxspjb().getId() : "");
  547. vo.setSzgk(entity.getSzgk() != null ? entity.getSzgk().getId() : "");
  548. vo.setSzgq(entity.getSzgq() != null ? entity.getSzgq().getId() : "");
  549. vo.setZyhbwfl(entity.getZyhbwfl() != null ? entity.getZyhbwfl().getId() : "");
  550. xmxxVoList.add(vo);
  551. }
  552. return Object2JsonStr(xmxxVoList);
  553. }
  554. /**
  555. *根据id获取项目历史流程信息
  556. */
  557. @Override
  558. public String findLslc(String id) {
  559. XmxxglEntity xmxxgl = xmxxglService.findOne(id);
  560. List<XmxxglfbVo> voList = new ArrayList<XmxxglfbVo>();
  561. if (xmxxgl.getXmlx().getId().equals("2202")) {
  562. List<TaskInfoEntity> list = taskInfoService.findByBusIdAndBusKeyOrderByIdAsc(id, XmxxglEntity.PROCESS_DEFINITION_KEY2);
  563. lclslist(list, voList);
  564. } else {
  565. List<TaskInfoEntity> list = taskInfoService.findByBusIdAndBusKeyOrderByIdAsc(id, XmxxglEntity.PROCESS_DEFINITION_KEY);
  566. lclslist(list, voList);
  567. }
  568. return Object2JsonStr(voList);
  569. }
  570. public void lclslist(List<TaskInfoEntity> list, List<XmxxglfbVo> voList) {
  571. for (int i = 0; i < list.size(); i++) {
  572. XmxxglfbVo vo = new XmxxglfbVo();
  573. vo.setCurrentname(list.get(i).getCurrName() != null ? list.get(i).getCurrName() : "");
  574. vo.setAuditusername(list.get(i).getAuditUsername() != null ? list.get(i).getAuditUsername() : "");
  575. vo.setSpyj(list.get(i).getAuditMsg() != null ? list.get(i).getAuditMsg() : "");
  576. vo.setCljg(list.get(i).getAuditResult() != null ? list.get(i).getAuditResult() : "");
  577. if (vo.getCljg().equals("false")) {
  578. vo.setCljg("退回");
  579. } else if (vo.getCljg().equals("true") && vo.getCurrentname().contains("审查")) {
  580. vo.setCljg("同意");
  581. } else if (vo.getCljg().equals("true") && vo.getCurrentname().contains("提交")) {
  582. vo.setCljg("提交");
  583. } else if (vo.getCljg().equals("1")) {
  584. vo.setCljg("提交");
  585. } else {
  586. vo.setCljg("");
  587. }
  588. SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  589. if (list.get(i).getAuditTime() != null) {
  590. Date date = list.get(i).getAuditTime();
  591. String date2 = dateFormater.format(date);
  592. vo.setAudittime(date2 != null ? date2 : "");
  593. }
  594. voList.add(vo);
  595. }
  596. }
  597. }