SiteInfoImpl.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. package com.hz.employmentsite.services.impl.baseSettings;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.hz.employmentsite.filter.exception.BaseException;
  5. import com.hz.employmentsite.mapper.PcCompanyMapper;
  6. import com.hz.employmentsite.mapper.PcSiteInstitutionMapper;
  7. import com.hz.employmentsite.mapper.PcSiteMapper;
  8. import com.hz.employmentsite.mapper.PcSiteUserMapper;
  9. import com.hz.employmentsite.mapper.cquery.SiteInfoCQuery;
  10. import com.hz.employmentsite.mapper.cquery.SiteInstitutionCQuery;
  11. import com.hz.employmentsite.model.*;
  12. import com.hz.employmentsite.services.service.baseSettings.SiteInfoService;
  13. import com.hz.employmentsite.util.StringUtils;
  14. import com.hz.employmentsite.vo.baseSettings.SiteInfoVo;
  15. import com.hz.employmentsite.vo.baseSettings.SiteUserVo;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import java.util.*;
  19. @Service("SiteInfoService")
  20. public class SiteInfoImpl implements SiteInfoService {
  21. @Autowired
  22. private SiteInfoCQuery siteInfoCQuery;
  23. @Autowired
  24. private SiteInstitutionCQuery siteInstitutionCQuery;
  25. @Autowired
  26. private StringUtils stringUtils;
  27. @Autowired
  28. private PcSiteMapper pcSiteMapper;
  29. @Autowired
  30. private PcSiteUserMapper pcSiteUserMapper;
  31. @Autowired
  32. private PcSiteInstitutionMapper pcSiteInstitutionMapper;
  33. @Autowired
  34. private PcCompanyMapper pcCompanyMapper;
  35. @Override
  36. public PageInfo<SiteInfoVo> getList(int pageIndex, int pageSize, List<String> siteIDList, String siteCode, String siteName, String institutionID, String regionCode, String streetCode) {
  37. PageHelper.startPage(pageIndex, pageSize);
  38. List<SiteInfoVo> dataList = siteInfoCQuery.getList(stringUtils.ListToInSql(siteIDList), siteCode, siteName, institutionID, regionCode, streetCode);
  39. PageInfo<SiteInfoVo> result = new PageInfo(dataList);
  40. return result;
  41. }
  42. @Override
  43. public List<SelectProps> getDataList() {
  44. var dataList = getList(1,99999,null,null,null,null,null,null).getList();
  45. List<SelectProps> dataResult = new ArrayList<>();
  46. for (var item: dataList) {
  47. SelectProps itemResult = new SelectProps();
  48. itemResult.setText(item.siteName);
  49. itemResult.setValue(item.siteID);
  50. dataResult.add(itemResult);
  51. }
  52. return dataResult;
  53. }
  54. /**
  55. * 按县区查询选择参数列表
  56. *
  57. * @param regionCode 县区代码
  58. * @return 选择器参数VO
  59. */
  60. @Override
  61. public List<SelectProps> getDataListByRegionCode(String regionCode) {
  62. List<SiteInfoVo> list = getList(1, 99999, null, null, null, null, regionCode, null).getList();
  63. List<SelectProps> dataResult = new ArrayList<>();
  64. for (var item: list) {
  65. SelectProps itemResult = new SelectProps();
  66. itemResult.setText(item.siteName);
  67. itemResult.setValue(item.siteID);
  68. dataResult.add(itemResult);
  69. }
  70. return dataResult;
  71. }
  72. @Override
  73. public PageInfo<SiteInfoVo> getListByInstitutionID(int pageIndex, int pageSize, String institutionID) {
  74. PageHelper.startPage(pageIndex, pageSize);
  75. List<SiteInfoVo> dataList = siteInfoCQuery.getListByInstitutionID(institutionID);
  76. PageInfo<SiteInfoVo> result = new PageInfo(dataList);
  77. return result;
  78. }
  79. @Override
  80. public SiteInfoVo get(String siteID) {
  81. List<String> ids = new ArrayList<>();
  82. if (stringUtils.IsNullOrEmpty(siteID)) {
  83. return null;
  84. }else{
  85. ids.add(siteID);
  86. }
  87. SiteInfoVo model = siteInfoCQuery.getList(stringUtils.ListToInSql(ids),null,null ,null,null,null).stream().findFirst().orElse(null);
  88. return model;
  89. }
  90. @Override
  91. public Integer save(SiteInfoVo data, String userId) {
  92. int result = 0;
  93. SiteInfoVo record = get(data.siteID);
  94. PcSite dbData = record == null ? null : pcSiteMapper.selectByPrimaryKey(record.siteID);
  95. Boolean isExist = dbData != null;
  96. if (!isExist) {
  97. //添加
  98. dbData = new PcSite();
  99. dbData.setSiteID(data.getSiteID());
  100. dbData.setSiteCode(data.getSiteCode());
  101. dbData.setSiteName(data.getSiteName());
  102. dbData.setFzrName(data.getFzrName());
  103. dbData.setFzrMobile(data.getFzrMobile());
  104. dbData.setSiteX(data.getSiteX());
  105. dbData.setSiteY(data.getSiteY());
  106. dbData.setSiteLongitude(data.getSiteLongitude());
  107. dbData.setSiteLatitude(data.getSiteLatitude());
  108. dbData.setDetailAddress(data.getDetailAddress());
  109. dbData.setRegionCode(data.getRegionCode());
  110. dbData.setStreetCode(data.getStreetCode());
  111. dbData.setRemark(data.getRemark());
  112. dbData.setCreateUserID(userId);
  113. dbData.setCreateTime(new Date());
  114. result = pcSiteMapper.insert(dbData);
  115. } else {
  116. //修改
  117. dbData.setSiteID(data.siteID);
  118. dbData.setSiteCode(data.siteCode);
  119. dbData.setSiteName(data.siteName);
  120. dbData.setFzrName(data.fzrName);
  121. dbData.setFzrMobile(data.fzrMobile);
  122. dbData.setSiteX(data.siteX);
  123. dbData.setSiteY(data.siteY);
  124. dbData.setSiteLongitude(data.siteLongitude);
  125. dbData.setSiteLatitude(data.siteLatitude);
  126. dbData.setDetailAddress(data.detailAddress);
  127. dbData.setRegionCode(data.regionCode);
  128. dbData.setStreetCode(data.streetCode);
  129. dbData.setRemark(data.remark);
  130. dbData.setModifyUserID(userId);
  131. dbData.setModifyTime(new Date());
  132. result = pcSiteMapper.updateByPrimaryKey(dbData);
  133. }
  134. /*修改驿站站点信息:先删除所有关联数据,再添加*/
  135. var allExistData = siteInstitutionCQuery.getListBySiteID(data.getSiteID());
  136. if (allExistData != null && allExistData.size() > 0){
  137. for(PcSiteInstitution curLinkData : allExistData) {
  138. var siteInstitutionID = curLinkData.getSiteInstitutionID();
  139. result += pcSiteInstitutionMapper.deleteByPrimaryKey(siteInstitutionID);
  140. }
  141. }
  142. if (!stringUtils.IsNullOrEmpty(data.institutionID)){
  143. PcSiteInstitution insertLinkData = new PcSiteInstitution();
  144. insertLinkData.setSiteInstitutionID(UUID.randomUUID().toString());
  145. insertLinkData.setSiteID(data.getSiteID());
  146. insertLinkData.setInstitutionID(data.getInstitutionID());
  147. insertLinkData.setCreateTime(new Date());
  148. insertLinkData.setCreateUserID(userId);
  149. result += pcSiteInstitutionMapper.insert(insertLinkData);
  150. }
  151. /*修改站点人员信息*/
  152. if(data.manageUsers.size() > 0){
  153. List<SiteUserVo> manageUsers = data.manageUsers.stream().toList();
  154. for (var curData: manageUsers) {
  155. PcSiteUser curUserData = pcSiteUserMapper.selectByPrimaryKey(curData.getSiteUserID());
  156. curUserData.setSiteID(curData.getSiteID());
  157. curUserData.setUpdateBy(userId);
  158. curUserData.setUpdateTime(new Date());
  159. result += pcSiteUserMapper.updateByPrimaryKey(curUserData);
  160. }
  161. }
  162. return result;
  163. }
  164. @Override
  165. public Integer delete(List<String> idList){
  166. var result = 0;
  167. for (String curSiteID: idList) {
  168. // 关联站点工作人员检查
  169. PcSiteUserExample siteUserExp = new PcSiteUserExample();
  170. siteUserExp.or().andSiteIDEqualTo(curSiteID);
  171. var curSiteUserList = pcSiteUserMapper.selectByExample(siteUserExp).stream().toList();
  172. if (curSiteUserList != null && curSiteUserList.size() > 0) {
  173. throw new BaseException("10004", "所选驿站站点已有关联站点人员信息,不允许删除!");
  174. }
  175. // 关联企业检查
  176. PcCompanyExample companyExample = new PcCompanyExample();
  177. companyExample.or().andSiteIDEqualTo(curSiteID);
  178. List<PcCompany> companyList = pcCompanyMapper.selectByExample(companyExample).stream().toList();
  179. if (!companyList.isEmpty()) {
  180. throw new BaseException("10004", "所选驿站站点已有关联企业信息信息,不允许删除!");
  181. }
  182. // 删除站点-机构关联表
  183. PcSiteInstitutionExample siteInstitutionExample = new PcSiteInstitutionExample();
  184. siteInstitutionExample.or().andSiteIDEqualTo(curSiteID);
  185. pcSiteInstitutionMapper.deleteByExample(siteInstitutionExample);
  186. // 删除主表
  187. PcSiteExample contactExample = new PcSiteExample();
  188. contactExample.or().andSiteIDEqualTo(curSiteID);
  189. pcSiteMapper.deleteByExample(contactExample);
  190. result += pcSiteMapper.deleteByExample(contactExample);
  191. }
  192. return result;
  193. }
  194. @Override
  195. public Map<String, Object> findSiteDataCount(String siteID) {
  196. return siteInfoCQuery.findSiteDataCount(siteID);
  197. }
  198. @Override
  199. public PageInfo<SiteInfoVo> getDataMapList(int pageIndex, int pageSize, String siteName, String regionCode, String streetCode) {
  200. PageHelper.startPage(pageIndex, pageSize);
  201. List<SiteInfoVo> dataList = siteInfoCQuery.getDataMapList(siteName, regionCode, streetCode);
  202. PageInfo<SiteInfoVo> result = new PageInfo(dataList);
  203. return result;
  204. }
  205. }