| | |
| | | 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.UserEntity; |
| | | import com.lf.server.helper.PathHelper; |
| | | import com.lf.server.helper.StringHelper; |
| | | import com.lf.server.helper.WebHelper; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | @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 |
| | | public Integer insert(MetaEntity entity) { |
| | | return metaMapper.insert(entity); |
| | | } |
| | |
| | | * 获取删除表记录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++; |
| | | } |
| | | } |
| | | |
| | | /** |