From 08f1b1f1804a8bd833d42f257908d80e88387b55 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 14 三月 2025 11:27:47 +0800 Subject: [PATCH] 3.5增加登录验证、修改密码、人员列表调整 --- flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java | 346 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 298 insertions(+), 48 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java index 56fdd6c..d235426 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java @@ -5,29 +5,35 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dg.core.db.gen.entity.*; -import com.dg.core.db.gen.mapper.AutomessageTransactionEventInterviewMapper; -import com.dg.core.db.gen.mapper.KeywordMapper; -import com.dg.core.db.gen.mapper.OrganizationChartMapper; -import com.dg.core.db.gen.mapper.TransactionEventMapper; +import com.dg.core.db.gen.mapper.*; import com.dg.core.db.manual.pojo.QueryResults; import com.dg.core.db.manual.pojo.RecommendResult; import com.dg.core.db.manual.pojo.Search; import com.dg.core.service.ITransactionEventService; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.IOException; +import java.io.InputStream; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; @Service public class TransactionEventImpl extends ServiceImpl<TransactionEventMapper, TransactionEvent> implements ITransactionEventService { @Resource - private OrganizationChartMapper organizationChartMapper; + private OrganizationChartMapper organizationChartMapper; @Resource private KeywordMapper keywordMapper; @@ -35,38 +41,51 @@ @Resource private AutomessageTransactionEventInterviewMapper automessageTransactionEventInterviewMapper; + + @Resource + private GuideRepairOrderMapper guideRepairOrderMapper; + + + @Resource + private AutomessagePolicyDocumentsMapper automessagePolicyDocumentsMapper; + @Override - public TransactionEvent selectConfigData(String Id,SysUser sysUser) { + public TransactionEvent selectConfigData(String Id, SysUser sysUser) { TransactionEvent transactionEvent = baseMapper.selectConfigData(Id); //如果当前没有登录用户则不增加浏览次数 - if (sysUser!=null){ + if (sysUser != null) { LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0); LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59); AutomessageTransactionEventInterview automessageTransactionEventInterview = automessageTransactionEventInterviewMapper.selectOne(new QueryWrapper<AutomessageTransactionEventInterview>() - .lambda().eq(AutomessageTransactionEventInterview::getTransactionEventId, Id) - .eq(AutomessageTransactionEventInterview::getUserId, sysUser.getUserId()) - .orderByDesc(AutomessageTransactionEventInterview::getInterviewTime) - .last("limit 1")); + .lambda().eq(AutomessageTransactionEventInterview::getTransactionEventId, Id) + .eq(AutomessageTransactionEventInterview::getUserId, sysUser.getUserId()) + .orderByDesc(AutomessageTransactionEventInterview::getInterviewTime) + .last("limit 1")); transactionEvent.setQueryTime(LocalDateTime.now()); //判断上次访问时间是不是今天 如果是今天不增加浏览次数 - if (automessageTransactionEventInterview==null||(!(transactionEvent.getQueryTime().isAfter(startTime)&&transactionEvent.getQueryTime().isBefore(endTime)))) { - transactionEvent.setBrowseNum(transactionEvent.getBrowseNum()+1); - baseMapper.updateById(transactionEvent); - AutomessageTransactionEventInterview automessageTransactionEventInterviewNew = - new AutomessageTransactionEventInterview(); - automessageTransactionEventInterviewNew.setTransactionEventId(Integer.valueOf(Id)); - automessageTransactionEventInterviewNew.setUserId(new Long(sysUser.getUserId())); - automessageTransactionEventInterviewNew.setInterviewTime(LocalDateTime.now()); - automessageTransactionEventInterviewMapper.insert(automessageTransactionEventInterviewNew); - } + if (automessageTransactionEventInterview == null || (!(transactionEvent.getQueryTime().isAfter(startTime) && transactionEvent.getQueryTime().isBefore(endTime)))) { + transactionEvent.setBrowseNum(transactionEvent.getBrowseNum() + 1); + baseMapper.updateById(transactionEvent); + AutomessageTransactionEventInterview automessageTransactionEventInterviewNew = + new AutomessageTransactionEventInterview(); + automessageTransactionEventInterviewNew.setTransactionEventId(Integer.valueOf(Id)); + automessageTransactionEventInterviewNew.setUserId(new Long(sysUser.getUserId())); + automessageTransactionEventInterviewNew.setInterviewTime(LocalDateTime.now()); + automessageTransactionEventInterviewMapper.insert(automessageTransactionEventInterviewNew); + } } return transactionEvent; } @Override public List<TransactionEvent> selectConfigList(IPage<TransactionEvent> page, Integer state, - String matterAndUser, String classifyGrade,List<String> ids) { - return baseMapper.selectConfigList(page, state, matterAndUser, classifyGrade,ids); + String keyword, String classifyGrade, List<String> ids) { + return baseMapper.selectConfigList(page, state, keyword, classifyGrade, ids); + } + + @Override + public List<TransactionEvent> selectConfigList(String keyword, String classifyGrade, List<String> ids) { + return baseMapper.selectConfigList(keyword, classifyGrade, ids); } @Override @@ -81,23 +100,49 @@ @Override public int deleteConfigById(String Id) { - return baseMapper.deleteConfigById(Id); + List<GuideRepairOrder> guideRepairOrders = guideRepairOrderMapper + .selectList(new QueryWrapper<GuideRepairOrder>().lambda().eq(GuideRepairOrder::getMatterId, Id)); + if (guideRepairOrders.size() == 0) { + return baseMapper.deleteConfigById(Id); + } + return 0; } @Override - public int countNum(String matterAndUser,String classifyGrade,List<String> ids) { - return baseMapper.countNum( matterAndUser, classifyGrade, ids); + public int countNum(String matterAndUser, String classifyGrade, List<String> ids) { + return baseMapper.countNum(matterAndUser, classifyGrade, ids); } @Override - public QueryResults queryMatterNameList(IPage<Search> page,Integer state, Integer recommendSize,String keyWord) { + public QueryResults queryMatterNameList(IPage<Search> page, Integer state, Integer recommendSize, String keyWord) { QueryResults queryResults = new QueryResults(); List<Search> searches = baseMapper.selectSearch(page, state, keyWord); queryResults.setSearchList(searches); List<Search> searchesAssociate = baseMapper.selectSearchAssociate(page, recommendSize, keyWord); queryResults.setTransactionEventList(searchesAssociate); - queryResults.setKeywordEntityList( keywordMapper.selectByName(keyWord)); - queryResults.setTotal((baseMapper.selectSearch(keyWord).size())+(baseMapper.selectSearchAssociate(keyWord).size())); + queryResults.setKeywordEntityList(keywordMapper.selectByName(keyWord)); + queryResults.setTotal((baseMapper.selectSearch(keyWord).size()) + (baseMapper.selectSearchAssociate(keyWord).size())); + List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord, null); + List<String> list = new ArrayList<>(); + for (TransactionEvent transactionEvent : transactionEventEntities) { + if (transactionEvent.getAssociateNames() != null) { + String[] associateNames = transactionEvent.getAssociateNames().split(","); + for (String associateName : associateNames) { + list.add(associateName); + } + } + } + List<KeywordEntity> keywordEntityList = new ArrayList<>(); + + String[] keywords = list.stream().distinct().collect(Collectors.joining(",")).split(",");//去重 + for (String keyword : keywords) { + if (keyword != null && !keyword.equals("")) { + KeywordEntity keywordEntity = new KeywordEntity(); + keywordEntity.setName(keyword); + keywordEntityList.add(keywordEntity); + } + } + queryResults.setKeywordAssociationList(keywordEntityList); return queryResults; } @@ -105,39 +150,71 @@ public QueryResults queryMatterNameList(String keyWord) { QueryResults queryResults = new QueryResults(); List<Search> searches = baseMapper.selectSearchList(keyWord); + for (Search search : searches) { + search.setTransactionEventList(baseMapper.queryMatterNameList(keyWord, search.getClassifyId().toString())); + } + queryResults.setOrganizationChartEntityList(organizationChartMapper.selectByKeyWord(keyWord)); queryResults.setSearchList(searches); - List<Search> searchesAssociate = baseMapper.selectSearchAssociate(keyWord); + List<Search> searchesAssociate = baseMapper.selectSearchAssociateDistinct(keyWord); + for (Search search : searchesAssociate) { + search.setTransactionEventList(baseMapper.queryAssociateNamesList(keyWord, search.getClassifyId().toString())); + } queryResults.setTransactionEventList(searchesAssociate); - queryResults.setKeywordEntityList( keywordMapper.selectByName(keyWord)); + queryResults.setKeywordEntityList(keywordMapper.selectByName(keyWord)); + queryResults.setAutomessagePolicyDocuments(automessagePolicyDocumentsMapper.selectConfigList(keyWord,"2",null,null)); + queryResults.setRegulations(automessagePolicyDocumentsMapper.selectConfigList(keyWord,"1",null,null)); return queryResults; } @Override - public RecommendResult smartConsulting(String keyWord){ - RecommendResult recommendResult=new RecommendResult(); - List<KeywordEntity> keywordEntityList=new ArrayList<>(); - List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord); + public RecommendResult smartConsulting(String keyWord) { + RecommendResult recommendResult = new RecommendResult(); + List<KeywordEntity> keywordEntityList = new ArrayList<>(); + List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord, null); + List<TransactionEvent> transactionEvents = baseMapper.queryAssociateNamesList(keyWord, null); recommendResult.setTransactionEventList(transactionEventEntities); - for (TransactionEvent transactionEvent: transactionEventEntities) { - if (transactionEvent.getAssociateNames()!=null) { + List<String> list = new ArrayList<>(); + for (TransactionEvent transactionEvent : transactionEvents) { +// 直接返回办事指南名称 + list.add(transactionEvent.getMatterName()); +// 遍历关键词列表 可能后面流程更改会遇到暂时保存代码; + /* if (transactionEvent.getAssociateNames() != null) { String[] associateNames = transactionEvent.getAssociateNames().split(","); for (String associateName : associateNames) { - KeywordEntity keywordEntity = new KeywordEntity(); - keywordEntity.setName(associateName); - keywordEntityList.add(keywordEntity); + list.add(associateName); } + }*/ + } + String[] keywords = list.stream().distinct().collect(Collectors.joining(",")).split(",");//去重 + for (String keyword : keywords) { + if (keyword != null && !keyword.equals("")) { + KeywordEntity keywordEntity = new KeywordEntity(); + keywordEntity.setName(keyword); + keywordEntityList.add(keywordEntity); } } recommendResult.setKeywordEntityList(keywordEntityList); List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByKeyWord(keyWord); + recommendResult.setAutomessagePolicyDocuments(automessagePolicyDocumentsMapper.selectConfigList(keyWord,"2",null,null)); + recommendResult.setRegulations(automessagePolicyDocumentsMapper.selectConfigList(keyWord,"1",null,null)); recommendResult.setOrganizationChartEntityList(organizationChartEntities); return recommendResult; } @Override public String selectDataIfExist(String departmentId, String matterName) { - return baseMapper.selectDataIfExist(departmentId,matterName); + return baseMapper.selectDataIfExist(departmentId, matterName); + } + + @Override + public List<String> selectclassifyId(String classifyId) { + return baseMapper.selectclassifyId(classifyId); + } + + @Override + public List<TransactionEvent> selectClassifyList(List<String> ids) { + return baseMapper.selectClassifyList(ids); } @@ -147,13 +224,13 @@ } @Override - public List<TransactionEvent> queryByClassifyIdList(String classifyId,Integer departmentId) { - return baseMapper.queryByClassifyIdList(classifyId,departmentId); + public List<TransactionEvent> queryByClassifyIdList(String classifyId, Integer departmentId) { + return baseMapper.queryByClassifyIdList(classifyId, departmentId); } @Override - public List<TransactionEvent> queryByClassifyIdList(IPage<TransactionEvent> page, Integer state,String classifyId,Integer departmentId) { - return baseMapper.queryByClassifyIdList(page,state,classifyId,departmentId); + public List<TransactionEvent> queryByClassifyIdList(IPage<TransactionEvent> page, Integer state, String classifyId, Integer departmentId) { + return baseMapper.queryByClassifyIdList(page, state, classifyId, departmentId); } @Override @@ -175,11 +252,184 @@ @Override public int countNumByClassifyIdList(String classifyId, Integer departmentId) { - return baseMapper.countNumByClassifyIdList(classifyId,departmentId); + return baseMapper.countNumByClassifyIdList(classifyId, departmentId); } @Override - public List<TransactionEvent> selectList(){ - return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda()); + public List<TransactionEvent> selectList(String keyWord) { + if (keyWord != null && keyWord != "") { + return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda().like(TransactionEvent::getMatterName, keyWord)); + } else { + return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda()); + } } + + + @Override + public Integer batchImport(String fileName, MultipartFile file) { + boolean notNull = false; + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + throw new RuntimeException("选择文件格式不正确,请下载模板上传"); + } + boolean isExcel2003 = true; + if (fileName.matches("^.+\\.(?i)(xlsx)$")) { + isExcel2003 = false; + } + InputStream is = null; + try { + is = file.getInputStream(); + } catch (IOException e) { + throw new RuntimeException(e); + } + Workbook wb = null; + + if (isExcel2003) { + try { + wb = new HSSFWorkbook(is); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + try { + wb = new XSSFWorkbook(is); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + Integer failNum = 0;//失败数量 + // 获取excel的sheet页数 + int numberOfSheets = wb.getNumberOfSheets(); + for (int j = 0; j < numberOfSheets; j++) { + int i = 2; + //获取excel字段名称进行比较 + Sheet sheetAt = wb.getSheetAt(j); + if(sheetAt.getRow(2)!=null){ + if (new DataFormatter().formatCellValue(sheetAt.getRow(1).getCell(1)).length()>=3){ + i--; + } + Row row1 = sheetAt.getRow(i); + TransactionEvent transactionEvent = baseMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getMatterName, new DataFormatter().formatCellValue(row1.getCell(1)))); + boolean isAdd = false; + if (transactionEvent == null) { + transactionEvent = new TransactionEvent(); + isAdd = true; + } + transactionEvent.setMatterName(new DataFormatter().formatCellValue(row1.getCell(1))); + Row row2 = sheetAt.getRow(i+1); + transactionEvent.setSetGist("<p>" + new DataFormatter().formatCellValue(row2.getCell(1)) + "</p>"); + Row row3 = sheetAt.getRow(i+2); + Row row4 = sheetAt.getRow(i+3); + transactionEvent.setBasicInformation("<p> 事项名称:" + new DataFormatter().formatCellValue(row1.getCell(1)) + "<br />" + + new DataFormatter().formatCellValue(row3.getCell(0)) + ":" + new DataFormatter().formatCellValue(row3.getCell(1))+ "<br />" + + new DataFormatter().formatCellValue(row3.getCell(3)) + ":" + new DataFormatter().formatCellValue(row3.getCell(4)) + "<br />" + + new DataFormatter().formatCellValue(row4.getCell(0)) + ":" + new DataFormatter().formatCellValue(row4.getCell(1)) + "</p>"); + i = i+5; + String applicationMaterial = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (new DataFormatter().formatCellValue(row.getCell(0)).equals("办理途径、条件和注意事项")) { + i = i + 2; + break; + } + applicationMaterial = applicationMaterial + "办理区域:" + new DataFormatter().formatCellValue(row.getCell(0)) + "<br />" + + "部门名称:" + new DataFormatter().formatCellValue(row.getCell(1)) + "<br />" + + "咨询电话:" + new DataFormatter().formatCellValue(row.getCell(2)) + "<br />" + + "办公地址:" + new DataFormatter().formatCellValue(row.getCell(3)) + "<br />" + + "办公时间:" + new DataFormatter().formatCellValue(row.getCell(4)) + "<br />"; + applicationMaterial = applicationMaterial + "<br />"; + i++; + } + applicationMaterial = applicationMaterial + "</p>"; + transactionEvent.setApplicationMaterial(applicationMaterial); + String acceptConditions = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (new DataFormatter().formatCellValue(row.getCell(0)).equals("(二)网上申报")) { + i = i + 1; + break; + } + acceptConditions = acceptConditions + new DataFormatter().formatCellValue(row.getCell(0)) + " " + +new DataFormatter().formatCellValue( row.getCell(1)) + " " + + new DataFormatter().formatCellValue(row.getCell(2)) + " " + +new DataFormatter().formatCellValue( row.getCell(3)) + " " + + new DataFormatter().formatCellValue(row.getCell(4)) + " "; + acceptConditions = acceptConditions + "<br />"; + i++; + } + acceptConditions = acceptConditions + "</p>"; + transactionEvent.setAcceptConditions(acceptConditions); + String rates = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (new DataFormatter().formatCellValue(row.getCell(0)).equals("(三)手机移动申报")) { + i = i + 1; + break; + } + rates = rates + new DataFormatter().formatCellValue(row.getCell(0)) + " " + + new DataFormatter().formatCellValue(row.getCell(1)) + " " + + new DataFormatter().formatCellValue(row.getCell(2)) + " " + +new DataFormatter().formatCellValue( row.getCell(3)) + " " + + new DataFormatter().formatCellValue(row.getCell(4)) + " "; + rates = rates + "<br />"; + i++; + } + rates = rates + "</p>"; + transactionEvent.setRates(rates); + String transactionArea = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (new DataFormatter().formatCellValue(row.getCell(0)).equals("(四)经营许可(备案)事项程序运行图谱(附电子版)")) { + i = i + 1; + break; + } + transactionArea = transactionArea + new DataFormatter().formatCellValue(row.getCell(0)) + " " + + new DataFormatter().formatCellValue(row.getCell(1)) + " " + + new DataFormatter().formatCellValue(row.getCell(2)) + " " + +new DataFormatter().formatCellValue( row.getCell(3)) + " " + + new DataFormatter().formatCellValue(row.getCell(4)) + " "; + transactionArea = transactionArea + "<br />"; + i++; + } + transactionArea = transactionArea + "</p>"; + transactionEvent.setTransactionArea(transactionArea); + String handlingProcedures = "<p>"; + while (true) { + Row row = sheetAt.getRow(i); + if (new DataFormatter().formatCellValue(row.getCell(0)).equals("(五)经营许可(备案)事项实施内容一览表(附电子版)")) { + i = i + 1; + break; + } + handlingProcedures = handlingProcedures + new DataFormatter().formatCellValue(row.getCell(0)) + " " + + new DataFormatter().formatCellValue(row.getCell(1)) + " " + + new DataFormatter().formatCellValue(row.getCell(2)) + " " + +new DataFormatter().formatCellValue( row.getCell(3)) + " " + + new DataFormatter().formatCellValue(row.getCell(4)) + " "; + handlingProcedures = handlingProcedures + "<br />"; + i++; + } + handlingProcedures = handlingProcedures + "</p>"; + transactionEvent.setHandlingProcedures(handlingProcedures); + int ans; + if (isAdd) { + ans = baseMapper.insert(transactionEvent); + } else { + ans = baseMapper.updateById(transactionEvent); + } + if (ans <= 0) { + failNum++; + } + } + + } + if (failNum == 0) {// + return 3;//全部导入成功 + } else if (failNum < numberOfSheets) { + return 2;//部分导入成功 + } else if (failNum.equals(numberOfSheets)) { + return 0;//导入失败 + } + return 0; + } + + } -- Gitblit v1.7.1