| | |
| | | package com.lf.server.service.data; |
| | | |
| | | import com.lf.server.entity.all.StaticData; |
| | | import com.lf.server.entity.ctrl.DownloadReqEntity; |
| | | import com.lf.server.entity.data.MetaEntity; |
| | | import com.lf.server.entity.sys.AttachEntity; |
| | | import com.lf.server.entity.sys.UserEntity; |
| | | import com.lf.server.helper.PathHelper; |
| | | import com.lf.server.helper.StringHelper; |
| | | import com.lf.server.helper.WebHelper; |
| | | import com.lf.server.mapper.data.MetaMapper; |
| | | import com.lf.server.service.all.UploadAttachService; |
| | | import org.apache.commons.logging.Log; |
| | | import org.apache.commons.logging.LogFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | public Integer selectCount(String depcode, String dircode, Integer verid, String name) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | dircode = StringHelper.getRightLike(dircode); |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectCount(depcode, dircode, verid, name); |
| | | } |
| | |
| | | public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, Integer limit, Integer offset) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | dircode = StringHelper.getRightLike(dircode); |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectByPage(depcode, dircode, verid, name, limit, offset); |
| | | } |
| | |
| | | @Override |
| | | public Integer selectMetasForCount(String depcode, String dirs, String name) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectMetasForCount(depcode, dirs, name); |
| | | } |
| | |
| | | @Override |
| | | public List<MetaEntity> selectMetasForPage(String depcode, String dirs, String name, Integer limit, Integer offset) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectMetasForPage(depcode, dirs, name, limit, offset); |
| | | } |
| | | |
| | | @Override |
| | | public Integer selectCountForUpload(String name, Integer createUser, String types) { |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectCountForUpload(name, createUser, types); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectByPageForUpload(String name, Integer createUser, String types, Integer limit, Integer offset) { |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectByPageForUpload(name, createUser, types, limit, offset); |
| | | } |
| | | |
| | | @Override |
| | | public Integer selectCountByPid(Integer metaid, String name) { |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectCountByPid(metaid, name); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectPageByPid(Integer metaid, String name, Integer limit, Integer offset) { |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectPageByPid(metaid, name, limit, offset); |
| | | } |
| | |
| | | @Override |
| | | public List<MetaEntity> selectXlsAnnex(Integer[] ids, String tabs) { |
| | | return metaMapper.selectXlsAnnex(ids, tabs); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectMetasByDirCode(String dircode) { |
| | | dircode = StringHelper.getRightLike(dircode); |
| | | |
| | | return metaMapper.selectMetasByDirCode(dircode); |
| | | } |
| | | |
| | | @Override |
| | | public List<String> selectMetaOverflowDep(String ids, String depcode) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | |
| | | return metaMapper.selectMetaOverflowDep(ids, depcode); |
| | | } |
| | | |
| | | /** |
| | | * 查询元数据中溢出的单位ID |
| | | */ |
| | | public List<String> selectMetaOverflowDep(UserEntity ue, DownloadReqEntity dr) { |
| | | String ids = StringHelper.join(dr.getIds(), ","); |
| | | |
| | | return selectMetaOverflowDep(ids, ue.getDepcode()); |
| | | } |
| | | |
| | | @Override |
| | |
| | | * 获取删除表记录SQL |
| | | */ |
| | | public String getDelTabsSql(List<MetaEntity> metas) { |
| | | List<String> list = getTabDeletes(metas, metas.get(0).getTab()); |
| | | addCascadDeletes(list); |
| | | addAttachDeletes(list); |
| | | Collections.reverse(list); |
| | | |
| | | return StringHelper.join(list, ";"); |
| | | } |
| | | |
| | | /** |
| | | * 获取删除表记录SQL |
| | | */ |
| | | private List<String> getTabDeletes(List<MetaEntity> metas, String tab) { |
| | | List<String> list = new ArrayList<>(); |
| | | String tab = metas.get(0).getTab(); |
| | | |
| | | List<String> pids = new ArrayList<>(); |
| | | for (MetaEntity me : metas) { |
| | |
| | | pids.add("'" + me.getEventid() + "'"); |
| | | } |
| | | } |
| | | |
| | | if (pids.size() > 0) { |
| | | list.add(String.format("delete from %s where parentid in (%s)", tab, StringHelper.join(pids, ","))); |
| | | } |
| | | |
| | | return StringHelper.join(list, ";"); |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 添加级联删除 |
| | | */ |
| | | private void addCascadDeletes(List<String> list) { |
| | | int i = 0, c = list.size(); |
| | | while (i < c) { |
| | | String str = list.get(i); |
| | | if (str.contains("bs.m_pipelinepoint ")) { |
| | | list.add(str.replace("bs.m_pipelinepoint ", "bs.m_pipesegment ")); |
| | | list.add(str.replace("bs.m_pipelinepoint ", "bs.m_pipeline ")); |
| | | } |
| | | if (str.contains("bs.s_explorationpoint ")) { |
| | | list.add(str.replace("bs.s_explorationpoint ", "bs.s_surveyworksite ")); |
| | | } |
| | | |
| | | i++; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 添加附件删除 |
| | | */ |
| | | private void addAttachDeletes(List<String> list) { |
| | | int i = 0, c = list.size(); |
| | | while (i < c) { |
| | | String str = list.get(i); |
| | | String tab = str.substring("delete from ".length(), str.indexOf(" where ")); |
| | | String select = str.replace("delete ", "select eventid "); |
| | | |
| | | list.add(String.format("delete from lf.sys_attach where tab='%s' and tab_guid in (%s)", tab, select)); |
| | | |
| | | i++; |
| | | } |
| | | } |
| | | |
| | | /** |