OrgInfoServiceImpl.java 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. package com.chinaitop.depot.system.service.impl;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.annotation.Resource;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.springframework.beans.factory.annotation.Value;
  9. import org.springframework.context.annotation.Bean;
  10. import org.springframework.stereotype.Service;
  11. import org.springframework.util.LinkedMultiValueMap;
  12. import org.springframework.util.MultiValueMap;
  13. import org.springframework.web.client.RestTemplate;
  14. import com.chinaitop.depot.system.mapper.OrgInfoMapper;
  15. import com.chinaitop.depot.system.model.OrgInfo;
  16. import com.chinaitop.depot.system.model.OrgInfoExample;
  17. import com.chinaitop.depot.system.service.OrgInfoService;
  18. import com.fasterxml.jackson.core.JsonProcessingException;
  19. import com.fasterxml.jackson.databind.ObjectMapper;
  20. @Service
  21. public class OrgInfoServiceImpl implements OrgInfoService {
  22. @Resource
  23. private OrgInfoMapper OrgInfoMapper;
  24. @Resource
  25. private RestTemplate restTemplate;
  26. @Value("${jsgjjsjUrl}")
  27. private String jsgjjsjUrl;
  28. @Override
  29. public List<OrgInfo> queryByExample(OrgInfoExample example) {
  30. // TODO Auto-generated method stub
  31. return OrgInfoMapper.selectByExample(example);
  32. }
  33. @Override
  34. public OrgInfo findById(Integer orgId) {
  35. // TODO Auto-generated method stub
  36. return OrgInfoMapper.selectByPrimaryKey(orgId);
  37. }
  38. @Override
  39. public void add(OrgInfo orgInfo) {
  40. // TODO Auto-generated method stub
  41. OrgInfoMapper.insert(orgInfo);
  42. /**
  43. * 国家局数据
  44. */
  45. this.gjjjk(orgInfo.getOrgId(), orgInfo.getOrgId(), "i");
  46. }
  47. @Override
  48. public void update(OrgInfo orgInfo) {
  49. // TODO Auto-generated method stub
  50. OrgInfoMapper.updateByPrimaryKey(orgInfo);
  51. /**
  52. * 国家局数据
  53. */
  54. this.gjjjk(orgInfo.getOrgId(), orgInfo.getOrgId(), "u");
  55. }
  56. @Override
  57. public void remove(Integer orgId) {
  58. // TODO Auto-generated method stub
  59. OrgInfoMapper.deleteByPrimaryKey(orgId);
  60. /**
  61. * 国家局数据
  62. */
  63. this.gjjjk(orgId, orgId, "d");
  64. }
  65. @Override
  66. public void updateSelective(OrgInfo orgInfo) {
  67. OrgInfoMapper.updateByPrimaryKeySelective(orgInfo);
  68. }
  69. @Override
  70. public List<OrgInfo> queryTreeByExample(OrgInfoExample example) {
  71. List<OrgInfo> orglist = OrgInfoMapper.selectByExample(example);
  72. List<OrgInfo> toplist = this.getChildren(orglist, 0);
  73. this.fillTree(orglist, toplist);
  74. return toplist;
  75. }
  76. /**
  77. * 根据编号获取所有子节点
  78. * @param list
  79. * @param parentId
  80. * @return
  81. */
  82. private List<OrgInfo> getChildren(List<OrgInfo> list, Integer parentId) {
  83. List<OrgInfo> children = new ArrayList<OrgInfo>();
  84. for(OrgInfo org: list){
  85. if (org.getParentId().equals(parentId)) {
  86. children.add(org);
  87. }
  88. }
  89. return children;
  90. }
  91. /**
  92. * 递归填充树形结构
  93. * @param allList
  94. * @param childList
  95. */
  96. public void fillTree(List<OrgInfo> allList, List<OrgInfo> childList) {
  97. if(childList!=null){
  98. for(OrgInfo org : childList) {
  99. List<OrgInfo> childList1 = this.getChildren(allList, org.getOrgId());
  100. fillTree(allList, childList1);
  101. org.setChildren(childList1);
  102. }
  103. }
  104. }
  105. @Override
  106. public OrgInfo getDepotInfo(OrgInfo orgInfo) {
  107. if (orgInfo.getOrgClassId()==5318) {
  108. return orgInfo;
  109. } else {
  110. if (orgInfo.getParentId()!=0) {
  111. OrgInfo parentOrg = OrgInfoMapper.selectByPrimaryKey(orgInfo.getParentId());
  112. return getDepotInfo(parentOrg);
  113. }
  114. }
  115. return null;
  116. }
  117. private void addChildren(List<OrgInfo> allList, List<OrgInfo> childList, List<OrgInfo> resultList) {
  118. resultList.addAll(childList);
  119. for(OrgInfo org : childList) {
  120. List<OrgInfo> childList1 = this.getChildren(allList, org.getOrgId());
  121. if(childList1.size()>0){
  122. addChildren(allList, childList1, resultList);
  123. }
  124. }
  125. }
  126. @Override
  127. public List<OrgInfo> getAllChildren(Integer orgId, String barnName) {
  128. OrgInfoExample example = new OrgInfoExample();
  129. OrgInfoExample.Criteria criteria = example.createCriteria();
  130. //传输过来的库点名称
  131. if(barnName!=""&&barnName!=null){
  132. String[] barn = barnName.split(":");
  133. if(StringUtils.isNotBlank(barn[0]) && barn[0].compareTo("null")!=0){
  134. criteria.andOrgNameEqualTo(barn[0]);
  135. }
  136. criteria.andOrgClassIdEqualTo(Integer.parseInt(barn[1]));
  137. }
  138. List<OrgInfo> orglist = OrgInfoMapper.selectByExample(example);
  139. OrgInfo orgInfo = OrgInfoMapper.selectByPrimaryKey(orgId);
  140. List<OrgInfo> toplist = this.getChildren(orglist, orgId);
  141. List<OrgInfo> resultList = new ArrayList<>();
  142. resultList.add(orgInfo);
  143. this.addChildren(orglist, toplist, resultList);
  144. return resultList;
  145. }
  146. @Override
  147. public List<OrgInfo> getTreeListByOrgId(Integer orgId) {
  148. // 当前库.
  149. OrgInfo rootOrgInfo = OrgInfoMapper.selectByPrimaryKey(orgId);
  150. /*this.fillTree(rootOrgInfo, toplist);
  151. OrgInfoExample example = new OrgInfoExample();
  152. Criteria createCriteria = example.createCriteria();
  153. createCriteria.andParentIdEqualTo(orgId);
  154. List<OrgInfo> toplist = this.getChildren(orglist, 0);
  155. this.fillTree(orglist, toplist);
  156. return toplist;*/
  157. return null;
  158. }
  159. @Override
  160. public List<OrgInfo> getOrgLevel(Map<String,Object> map) {
  161. return OrgInfoMapper.getOrgLevel(map);
  162. }
  163. @Override
  164. public void updateOrgLevel(OrgInfo orgInfo) {
  165. Map<String,Object> map = new HashMap<String,Object>();
  166. if(orgInfo.getParentId() == 0 && (orgInfo.getLevelCode() == null || ("").equals(orgInfo.getLevelCode()))) {//根机构
  167. map.put("parentId", orgInfo.getOrgId());
  168. map.put("parentLevel", "10");
  169. }else {
  170. map.put("parentId", orgInfo.getOrgId());
  171. map.put("parentLevel", orgInfo.getLevelCode());
  172. }
  173. OrgInfoMapper.updateOrgLevel(map);
  174. }
  175. @Override
  176. public List<OrgInfo> getAllDepotInfo() {
  177. return OrgInfoMapper.getAllDepotInfo();
  178. }
  179. /**
  180. * 国家局数据
  181. */
  182. public void gjjjk(Integer id, Integer orgId,String czbz) {
  183. Map<String, Object> gjjMap = OrgInfoMapper.getKqGjjDate(orgId);
  184. gjjMap.put("czbz", czbz);
  185. gjjMap.put("is_upload", 0);
  186. String tableName = "ODS_UP_KQXXJK";
  187. /**
  188. * restTemplate调用
  189. */
  190. //String url = "http://localhost:9022/recPublish/sendMessage";//
  191. // 发送post请求,并打印结果,以String类型接收响应结果JSON字符串
  192. MultiValueMap<String, Object> sendMap = new LinkedMultiValueMap<>();
  193. //Map<String, Object> sendMap = new HashMap<String, Object>();
  194. ObjectMapper objectMapper = new ObjectMapper();
  195. String jsonMap;
  196. try {
  197. jsonMap = objectMapper.writeValueAsString(gjjMap);
  198. sendMap.add("gjjMapJson",jsonMap);
  199. } catch (JsonProcessingException e) {
  200. // TODO Auto-generated catch block
  201. e.printStackTrace();
  202. }
  203. sendMap.add("tableName", tableName);
  204. sendMap.add("orgId", orgId);
  205. System.out.println(jsgjjsjUrl);
  206. restTemplate.postForObject(jsgjjsjUrl, sendMap, String.class);
  207. }
  208. }