package com.hz.employmentsite.services.impl.baseSettings; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hz.employmentsite.mapper.PcSiteMapper; import com.hz.employmentsite.mapper.PcSiteInstitutionMapper; import com.hz.employmentsite.mapper.PcSiteUserMapper; import com.hz.employmentsite.mapper.cquery.SiteInfoCQuery; import com.hz.employmentsite.mapper.cquery.SiteInstitutionCQuery; import com.hz.employmentsite.model.*; import com.hz.employmentsite.services.service.baseSettings.SiteInfoService; import com.hz.employmentsite.util.StringUtils; import com.hz.employmentsite.vo.baseSettings.SiteInfoVo; import com.hz.employmentsite.vo.baseSettings.SiteUserVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; @Service("SiteInfoService") public class SiteInfoImpl implements SiteInfoService { @Autowired private SiteInfoCQuery siteInfoCQuery; @Autowired private SiteInstitutionCQuery siteInstitutionCQuery; @Autowired private StringUtils stringUtils; @Autowired private PcSiteMapper pcSiteMapper; @Autowired private PcSiteUserMapper pcSiteUserMapper; @Autowired private PcSiteInstitutionMapper pcSiteInstitutionMapper; @Override public PageInfo getList(int pageIndex, int pageSize, List siteIDList, String siteCode, String siteName, String institutionID, String regionCode, String streetCode) { PageHelper.startPage(pageIndex, pageSize); List dataList = siteInfoCQuery.getList(stringUtils.ListToInSql(siteIDList),siteCode,siteName,institutionID,regionCode,streetCode); PageInfo result = new PageInfo(dataList); return result; } @Override public List getDataList() { var dataList = getList(1,99999,null,null,null,null,null,null).getList(); List dataResult = new ArrayList<>(); for (var item: dataList) { SelectProps itemResult = new SelectProps(); itemResult.setText(item.siteName); itemResult.setValue(item.siteID); dataResult.add(itemResult); } return dataResult; } @Override public PageInfo getListByInstitutionID(int pageIndex, int pageSize, String institutionID) { PageHelper.startPage(pageIndex, pageSize); List dataList = siteInfoCQuery.getListByInstitutionID(institutionID); PageInfo result = new PageInfo(dataList); return result; } @Override public SiteInfoVo get(String siteID) { List ids = new ArrayList<>(); ids.add(siteID); SiteInfoVo model = siteInfoCQuery.getList(stringUtils.ListToInSql(ids),null,null ,null,null,null).stream().findFirst().orElse(null); return model; } @Override public Integer save(SiteInfoVo data, String userId) { int result = 0; SiteInfoVo record = get(data.siteID); PcSite dbData = record == null ? null : pcSiteMapper.selectByPrimaryKey(record.siteID); Boolean isExist = dbData != null; if (!isExist) { //添加 dbData = new PcSite(); dbData.setSiteID(data.getSiteID()); dbData.setSiteCode(data.getSiteCode()); dbData.setSiteName(data.getSiteName()); dbData.setFzrName(data.getFzrName()); dbData.setFzrMobile(data.getFzrMobile()); dbData.setSiteX(data.getSiteX()); dbData.setSiteY(data.getSiteY()); dbData.setDetailAddress(data.getDetailAddress()); dbData.setRegionCode(data.getRegionCode()); dbData.setStreetCode(data.getStreetCode()); dbData.setCreateUserID(userId); dbData.setCreateTime(new Date()); result = pcSiteMapper.insert(dbData); } else { //修改 dbData.setSiteID(data.siteID); dbData.setSiteCode(data.siteCode); dbData.setSiteName(data.siteName); dbData.setFzrName(data.fzrName); dbData.setFzrMobile(data.fzrMobile); dbData.setSiteX(data.siteX); dbData.setSiteY(data.siteY); dbData.setDetailAddress(data.detailAddress); dbData.setRegionCode(data.regionCode); dbData.setStreetCode(data.streetCode); dbData.setModifyUserID(userId); dbData.setModifyTime(new Date()); result = pcSiteMapper.updateByPrimaryKey(dbData); } /*修改驿站站点信息:先删除所有关联数据,再添加*/ var allExistData = siteInstitutionCQuery.getListBySiteID(data.getSiteID()); if (allExistData != null && allExistData.size() > 0){ for(PcSiteInstitution curLinkData : allExistData) { var siteInstitutionID = curLinkData.getSiteInstitutionID(); result += pcSiteInstitutionMapper.deleteByPrimaryKey(siteInstitutionID); } } if (!stringUtils.IsNullOrEmpty(data.institutionID)){ PcSiteInstitution insertLinkData = new PcSiteInstitution(); insertLinkData.setSiteInstitutionID(UUID.randomUUID().toString()); insertLinkData.setSiteID(data.getSiteID()); insertLinkData.setInstitutionID(data.getInstitutionID()); insertLinkData.setCreateTime(new Date()); insertLinkData.setCreateUserID(userId); result += pcSiteInstitutionMapper.insert(insertLinkData); } /*修改站点人员信息*/ if(data.manageUsers.size() > 0){ List manageUsers = data.manageUsers.stream().toList(); for (var curData: manageUsers) { PcSiteUser curUserData = pcSiteUserMapper.selectByPrimaryKey(curData.getSiteUserID()); curUserData.setSiteID(curData.getSiteID()); curUserData.setUpdateBy(userId); curUserData.setUpdateTime(new Date()); result += pcSiteUserMapper.updateByPrimaryKey(curUserData); } } return result; } @Override public Integer delete(List idList){ PcSiteExample contactExample = new PcSiteExample(); contactExample.or().andSiteIDIn(idList); pcSiteMapper.deleteByExample(contactExample); return pcSiteMapper.deleteByExample(contactExample); } }