diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 9433cdde..df332c93 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -62,6 +62,9 @@ public class WebMvcConfig implements WebMvcConfigurer { addInterceptor.excludePathPatterns("/api/att/attFile/downloadFileForSar"); //水印下载 addInterceptor.excludePathPatterns("/api/att/attFile/downloadFileForSarWaterMark"); + //企业标准导出 + addInterceptor.excludePathPatterns("/api/lawss/sarBussionessStand/exportSarBussionessStand"); + //OCR回调存储文件 addInterceptor.excludePathPatterns("/api/ocr/OCRRestful/OcrHandleResult"); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java index 1a36d323..7ba28226 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/controller/ImportExcelController.java @@ -4,6 +4,7 @@ import com.adc.da.base.web.BaseController; import com.adc.da.common.ReadExcel; import com.adc.da.http.ResponseMessage; import com.adc.da.slrs.ImportExcelDatas.comment.ExclErrorOut; +import com.adc.da.slrs.ImportExcelDatas.comment.ExclExport; import com.adc.da.slrs.ImportExcelDatas.entity.ImportDto; import com.adc.da.slrs.ImportExcelDatas.service.ImportExcelService; import com.adc.da.slrs.ImportExcelDatas.service.impl.ImportExcelServiceImpl; @@ -34,7 +35,7 @@ import java.util.Map; @RestController @Api(description = "|SarStandPutTime|") -@RequestMapping("/ImportExcel") +@RequestMapping("/api/ImportExcel") public class ImportExcelController extends BaseController { @Autowired @@ -43,14 +44,24 @@ public class ImportExcelController extends BaseController { @Autowired private ExclErrorOut exclErrorOut; - @ApiOperation("批量删除用户收藏") + + @ApiOperation("从excl中导入标准信息") @PostMapping("/import") public void deleteList(MultipartFile file, MultipartFile file2, HttpServletResponse response, HttpServletRequest request) throws IOException { Map> mapMap=importExcelService.getExcelData(file,file2); + /** + * 导入系统 + */ List errorList = importExcelService.storageExclData(mapMap); +// mapMap.put("导入后的信息",errorList); // List guonei= mapMap.get("GNBZ"); // List haiwai = mapMap.get("HWBZ"); // List qibiao = mapMap.get("QYBZ"); + + + /** + * 生成错误表格 + */ OutputStream os = null; Workbook workbook = null; try { @@ -61,7 +72,11 @@ public class ImportExcelController extends BaseController { response.setContentType("application/force-download"); //导出数据 String headStr="标准号,标准名称,英文名称,发布时间,实施时间,标准状态,代替标准号,附件路径,错误原因"; - workbook = exclErrorOut.exportDatas(errorList,headStr); +// workbook = exclErrorOut.exportDatas(guonei,headStr); + + ExclExport exclExport = new ExclExport(); + workbook = exclExport.exportData(mapMap, headStr); + os = response.getOutputStream(); workbook.write(os); os.flush(); @@ -75,8 +90,8 @@ public class ImportExcelController extends BaseController { } - // return responseMessage; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java index 5175ea6c..2cb63faa 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java @@ -2,7 +2,6 @@ package com.adc.da.slrs.ImportExcelDatas.service.impl; import com.adc.da.att.service.IAttFileEOService; import com.adc.da.att.vo.AttFileVo; -import com.adc.da.http.Result; import com.adc.da.slrs.ImportExcelDatas.dao.ImportExcelDao; import com.adc.da.slrs.ImportExcelDatas.entity.ImportDto; import com.adc.da.slrs.ImportExcelDatas.service.ImportExcelService; @@ -10,9 +9,7 @@ import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; -import com.adc.da.sys.dao.DicTypeEODao; import com.adc.da.sys.entity.DicTypeEO; -import com.adc.da.sys.entity.DictionaryEO; import com.adc.da.sys.service.impl.DicTypeEOServiceImpl; import com.adc.da.util.UUIDUtils; import com.adc.da.utils.util.InitStandAttrUtil; @@ -26,13 +23,13 @@ import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.InputStream; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Pattern; @Service @@ -54,7 +51,9 @@ public class ImportExcelServiceImpl extends ServiceImpl middle = new HashMap<>(); datas.forEach(items -> { + System.out.print("."); //判断是否是正确的数据 String[] as = items.split(","); - if (!inDate(as[0], dates)) { + if( as.length < 8){ + ImportDto importDto = new ImportDto(); + importDto.setErrorStr(items); + error.add(importDto); + + } else if (!inDate(as[0], dates) ) { ImportDto importDto = getImportDto(as); error.add(importDto); - middle.put(as[0].trim(), "error-" + error.size()); + middle.put(as[7].trim(), "error-" + error.size()); } else { //数据二次拆解 针对标准进行拆解 String[] step2 = as[0].trim().split(" "); @@ -131,15 +137,15 @@ public class ImportExcelServiceImpl extends ServiceImpl { String[] fj = items2.split(","); if (fj.length > 2) { - if (null != middle.get(null != fj[2] ? fj[2].trim() : "")) { + if (null != middle.get(null != fj[1] ? fj[1].trim() : "")) { //对应数据位置 - String[] location = middle.get(fj[2].trim()).split("-"); + String[] location = middle.get(fj[1].trim()).split("-"); +// List importDtos = res.get(location[0]); + res.get(location[0]).get(Integer.parseInt(location[1]) - 1).setPath(fj[3]); } } @@ -189,10 +197,15 @@ public class ImportExcelServiceImpl extends ServiceImpl error = new ArrayList<>(); - private List fileError = new ArrayList<>(); @Autowired private ISarStandardsInfoService sarStandardsInfoService; @@ -278,12 +291,38 @@ public class ImportExcelServiceImpl extends ServiceImpl error = new ArrayList<>(); + + private List fileError = new ArrayList<>(); + + private HashSet sarSort = new HashSet<>(); + + + @Override public List storageExclData(Map> importListMap) { - +//TODO 利用stream把list变为set +// List list = dicTypeEOService.list(); +// list.stream().flatMap(dicTypeEO -> { +// return dicTypeEO; +// }.co) + List isExist = dicTypeEOService.getTypeIdByDicIdAndTypeName("JKSADFH564S", null, null, null); + isExist.forEach(item->{ + sarSort.add(item.getDicTypeCode()); + }); error = importListMap.get("error"); + + AtomicInteger QYBZcount= new AtomicInteger(); + AtomicInteger QYBZcountUpdate= new AtomicInteger(); + AtomicInteger HWBZcount= new AtomicInteger(); + AtomicInteger HWBZcountUpdate= new AtomicInteger(); + AtomicInteger GNBZcount= new AtomicInteger(); + AtomicInteger GNBZcountUpdate= new AtomicInteger(); + /** * 初始化国内外标准属性字段 */ @@ -296,24 +335,26 @@ public class ImportExcelServiceImpl extends ServiceImpl { - String standID = UUIDUtils.randomUUID20(); - //使用初始化的属性字段映射 获得key值,value为"" - Map mapField = standAttrMap; - SarStandardsInfo ForeignEO = parseImportDtoToStandardsInfo(item,mapField, standID); + /*importListMap.get("HWBZ").forEach(item -> { + if (true ) { + String standID = UUIDUtils.randomUUID20(); - if (ForeignEO != null) { - ForeignEO.setValidFlag("0"); - ForeignEO.setStandType("FOREIGN"); - QueryWrapper standSaveWrapper = new QueryWrapper<>(); - standSaveWrapper - .eq("STAND_SORT", ForeignEO.getStandSort()) - .eq("STAND_NUMBER", ForeignEO.getStandNumber()) - .eq("STAND_YEAR", ForeignEO.getStandYear()); + //使用初始化的属性字段映射 获得key值,value为"" + Map mapField = standAttrMap; + SarStandardsInfo ForeignEO = parseImportDtoToStandardsInfo(item,mapField, standID); - SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); + if (ForeignEO != null) { + ForeignEO.setValidFlag("0"); + ForeignEO.setStandType("FOREIGN"); + QueryWrapper standSaveWrapper = new QueryWrapper<>(); + standSaveWrapper + .eq("STAND_SORT", ForeignEO.getStandSort()) + .eq("STAND_NUMBER", ForeignEO.getStandNumber()) + .eq("STAND_YEAR", ForeignEO.getStandYear()); + + SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); @@ -322,6 +363,9 @@ public class ImportExcelServiceImpl extends ServiceImpl { - String standID = UUIDUtils.randomUUID20(); - //使用初始化的属性字段映射 获得key值,value为"" - Map mapStandField = standAttrMap; - SarStandardsInfo InlandEO = parseImportDtoToStandardsInfo(item, mapStandField,standID); - - if (InlandEO != null) { + /*importListMap.get("GNBZ").forEach(item -> { - InlandEO.setValidFlag("0"); - InlandEO.setStandType("INLAND"); + if (true) { + String standID = UUIDUtils.randomUUID20(); + //使用初始化的属性字段映射 获得key值,value为"" + Map mapStandField = standAttrMap; + SarStandardsInfo InlandEO = parseImportDtoToStandardsInfo(item, mapStandField, standID); + + if (InlandEO != null) { - QueryWrapper standSaveWrapper = new QueryWrapper<>(); - standSaveWrapper - .eq("STAND_SORT", InlandEO.getStandSort()) - .eq("STAND_NUMBER", InlandEO.getStandNumber()) - .eq("STAND_YEAR", InlandEO.getStandYear()); + InlandEO.setValidFlag("0"); + InlandEO.setStandType("INLAND"); - SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); - if (one != null) { + QueryWrapper standSaveWrapper = new QueryWrapper<>(); + standSaveWrapper + .eq("STAND_SORT", InlandEO.getStandSort()) + .eq("STAND_NUMBER", InlandEO.getStandNumber()) + .eq("STAND_YEAR", InlandEO.getStandYear()); - InlandEO.setId(one.getId()); - try { - sarStandardsInfoService.updateSarStandardsInfo(InlandEO); - } catch (Exception e) { - item.setErrorStr("国内标准更新失败"); - error.add(item); - e.printStackTrace(); + SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); + if (one != null) { + + + InlandEO.setId(one.getId()); + try { + sarStandardsInfoService.updateSarStandardsInfo(InlandEO); + } catch (Exception e) { + item.setErrorStr("国内标准更新失败"); + error.add(item); + e.printStackTrace(); + } + + + } else { + + + try { + sarStandardsInfoService.createSarStandardsInfo(InlandEO); + } catch (Exception e) { + item.setErrorStr("国内标准新增失败"); + error.add(item); + e.printStackTrace(); + } } - - } else { - - - try { - sarStandardsInfoService.createSarStandardsInfo(InlandEO); - } catch (Exception e) { - item.setErrorStr("国内标准新增失败"); - error.add(item); - e.printStackTrace(); - } + item.setErrorStr("标准号无法解析"); + error.add(item); + importListMap.replace("error", error); } - } else { - item.setErrorStr("标准号无法解析"); - error.add(item); - importListMap.replace("error", error); + } - - }); + });*/ /** @@ -420,38 +474,61 @@ public class ImportExcelServiceImpl extends ServiceImpl{ bussAttrMap.put(item,""); }); + importListMap.get("QYBZ").forEach(item -> { - String standId = UUIDUtils.randomUUID20(); - SarBussionessStand BussEO = parseImportDtoToSarBussionessStand(item, bussAttrMap,standId); - if (BussEO != null) { - try { - QueryWrapper saveWrapper = new QueryWrapper<>(); - saveWrapper.eq("STAND_CODE", item.getStandId()); - SarBussionessStand one = sarBussionessStandService.getOne(saveWrapper); - if (one != null) { - BussEO.setId(one.getId()); - sarBussionessStandService.updateSarBussionessStand(BussEO); - } else { - sarBussionessStandService.createSarBussionessStand(BussEO); + if (true){ +// if (item.getStandId().contains("Q/FT T396—2021") ){ + + String standId = UUIDUtils.randomUUID20(); + SarBussionessStand BussEO = parseImportDtoToSarBussionessStand(item, bussAttrMap,standId); + + if (BussEO != null) { + + try { + QueryWrapper saveWrapper = new QueryWrapper<>(); + saveWrapper.eq("STAND_CODE", item.getStandId()); + SarBussionessStand one = sarBussionessStandService.getOne(saveWrapper); + if (one != null) { + BussEO.setId(one.getId()); + sarBussionessStandService.updateSarBussionessStand(BussEO); + QYBZcountUpdate.getAndIncrement(); + QYBZcount.getAndIncrement(); + System.out.println("企业标准执行更新====第: "+QYBZcount+"行"); + + } else { + sarBussionessStandService.createSarBussionessStand(BussEO); + QYBZcount.getAndIncrement(); + System.out.println("企业标准执行新增第: "+QYBZcount+"行"); + } + + + } catch (Exception e) { + item.setErrorStr("数据格式错误"); + error.add(item); + + e.printStackTrace(); + } - - } catch (Exception e) { - item.setErrorStr("数据格式错误"); - error.add(item); - - e.printStackTrace(); - } - } + }); error.addAll(fileError); + System.out.println("执行结束"); + System.out.println("执行国内标准"+GNBZcount+"条"); + System.out.println("国内标准执行更新"+GNBZcountUpdate+"条"); + System.out.println("执行国外标准"+HWBZcount+"条"); + System.out.println("海外标准执行更新"+HWBZcountUpdate+"条"); + System.out.println("执行企业标准"+QYBZcount+"条"); + System.out.println("企业标准执行更新"+QYBZcountUpdate+"条"); + + return error; } @@ -464,13 +541,10 @@ public class ImportExcelServiceImpl extends ServiceImpl fieldMap, String standId) { - - HashMap analysis = analysisStandId(importDto); if (analysis == null) { return null; } - SarStandardsInfo sarStandardsInfoEO = new SarStandardsInfo(); sarStandardsInfoEO.setId(standId); @@ -507,21 +581,21 @@ public class ImportExcelServiceImpl extends ServiceImpl isExist = dicTypeEOService.getTypeIdByDicIdAndTypeName("JKSADFH564S", null, sort, null); - if (isExist == null || isExist.isEmpty() || isExist.size()==0){ - - DicTypeEO dicTypeVO = new DicTypeEO(); - dicTypeVO.setId(null); - dicTypeVO.setDicId("JKSADFH564S"); - dicTypeVO.setDicTypeCode(sort); - dicTypeVO.setDicTypeName(sort); - dicTypeVO.setShowIndex(1); - Integer dicTypeEO = dicTypeEOService.saveDictype(dicTypeVO); - if (dicTypeEO>0){ - importDto.setErrorStr("标准类别不存在,已新增"); - }else { - importDto.setErrorStr("标准类别不存在,新增失败"); - } - error.add(importDto); - } - + /** + * 标准类别不存在,新增标准类别 + */ +// List isExist = dicTypeEOService.getTypeIdByDicIdAndTypeName("JKSADFH564S", null, sort, null); +// if (!sarSort.contains(sort)){ +// +// DicTypeEO dicTypeVO = new DicTypeEO(); +// dicTypeVO.setId(null); +// dicTypeVO.setDicId("JKSADFH564S"); +// dicTypeVO.setDicTypeCode(sort); +// dicTypeVO.setDicTypeName(sort); +// dicTypeVO.setShowIndex(1); +// Integer dicTypeEO = dicTypeEOService.saveDictype(dicTypeVO); +// if (dicTypeEO>0){ +// sarSort.add(sort); +// importDto.setErrorStr("标准类别不存在,已新增"); +// }else { +// importDto.setErrorStr("标准类别不存在,新增失败"); +// } +// error.add(importDto); +// } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java index 7826e189..1615a683 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/controller/TsInstitutionController.java @@ -93,6 +93,14 @@ public class TsInstitutionController extends BaseController { } + @ApiOperation("通过部门机构名称查询部门树形结构 废弃使用") + @GetMapping("/findInstitution") + public List findInstitution(String institutionName){ + //TODO 调用业务接口 + tsInstitutionService.findInstitutionTreeByName(institutionName); + return null; + } + public static void main(String[] args) { // System.out.println(json); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java index 0ea1a63b..8f7b76a9 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java @@ -3,6 +3,7 @@ package com.adc.da.slrs.sarInstitution.dao; import com.adc.da.slrs.sarInstitution.entity.InstitutionAndUser; import com.adc.da.slrs.sarInstitution.entity.TsInstitution; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @@ -29,7 +30,7 @@ public interface TsInstitutionDao extends BaseMapper { List selectNextUser(String institutionId); - + List selectTreeByIds(@Param("rootIds") List rootIds); /** * 查询最高级机构及其人员 diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java index 478f2e20..208c0c21 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/entity/TsInstitution.java @@ -11,6 +11,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -73,4 +75,12 @@ public class TsInstitution extends BaseEntity { this.parentId = parentId; this.name = name; } + +// public void addChildren(TsInstitution node){ +// if (this.children==null){ +// this.children=Arrays.asList(node); +// }else { +// this.children.add(node); +// } +// } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java index 8350d452..af1e8996 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java @@ -43,5 +43,13 @@ public interface ITsInstitutionService extends IService { */ public List getFirst(); + + /** + * 根据机构部门名称查询机构树 + * @param institutionName + * @return + */ + public List findInstitutionTreeByName(String institutionName); + int clearData(); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java index 57e64d77..0d78c184 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java @@ -6,6 +6,7 @@ import com.adc.da.slrs.sarInstitution.entity.SyncInstitution; import com.adc.da.slrs.sarInstitution.entity.TsInstitution; import com.adc.da.slrs.sarInstitution.entity.TsUserVO; import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService; +import com.adc.da.slrs.sarInstitution.util.TreeUtil; import com.adc.da.sync.service.SyncUserService; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -15,8 +16,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** *

@@ -38,17 +39,21 @@ public class TsInstitutionServiceImpl extends ServiceImpl getInstitution() { + List institutionList = this.list();//查询所有的的数据 + //查询第一层机构 - List institutionRoot=tsInstitutionDao.selectRoot(); - for(TsInstitution tsInstitution:institutionRoot){ - tsInstitution.setChildren(recursionGetInstitution(tsInstitution)); - } - return institutionRoot; + List root=tsInstitutionDao.selectRoot(); + + TreeUtil treeUtil = new TreeUtil(); + List institutionTree = treeUtil.treeAsList(institutionList, root); + + return institutionTree; } + /** * 递归获取子机构 * @param tsInstitution:父机构 @@ -109,21 +114,29 @@ public class TsInstitutionServiceImpl extends ServiceImpl getInstitutionAndUser(String userName) { - //查询第一层机构 - List institutionRoot=tsInstitutionDao.selectRootAndUser(userName); + List tsInstitutions = new ArrayList<>(); - //把查到的数据结构修改,把用户放 - for(TsInstitution tsInstitution:institutionRoot){ - tsInstitution.setDisabled(true); - tsInstitution.setChildren( recursionGetInstitutionAndUser(tsInstitution) ); - for(TsUserVO user:tsInstitution.getUsers()){ - if(tsInstitution.getChildren()==null){ - tsInstitution.setChildren(new ArrayList<>()); + //当条件为null时避免查询全部,直接返回第一级 + if (userName==null||userName==""){ + tsInstitutions=this.getFirst(); + }else { + //查询第一层机构 + tsInstitutions=tsInstitutionDao.selectRootAndUser(userName); + + //把查到的数据结构修改,把用户放 + for(TsInstitution tsInstitution:tsInstitutions){ + tsInstitution.setDisabled(true); +// tsInstitution.setChildren( recursionGetInstitutionAndUser(tsInstitution) ); + for(TsUserVO user:tsInstitution.getUsers()){ + if(tsInstitution.getChildren()==null){ + tsInstitution.setChildren(new ArrayList<>()); + } +// tsInstitution.getChildren().add(user); } - tsInstitution.getChildren().add(user); } } - return institutionRoot; + + return tsInstitutions; } /** @@ -213,6 +226,27 @@ public class TsInstitutionServiceImpl extends ServiceImpl findInstitutionTreeByName(String institutionName) { + + QueryWrapper tsInstitutionQuery = new QueryWrapper<>(); + tsInstitutionQuery.select("id") + .like("name",institutionName); + + /** + * 查询出id的数据集合并转换成String类型 + */ + List rootIds = this.listObjs(tsInstitutionQuery) + .stream() + .map(item -> item.toString()) + .collect(Collectors.toList()); + + List tsInstitutions = tsInstitutionDao.selectTreeByIds(rootIds); + + + return null; + } + @Override public int clearData() { return tsInstitutionDao.clearData(); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/util/TreeUtil.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/util/TreeUtil.java new file mode 100644 index 00000000..b7ab6e4d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/util/TreeUtil.java @@ -0,0 +1,132 @@ +package com.adc.da.slrs.sarInstitution.util; + +import com.adc.da.slrs.sarInstitution.entity.TsInstitution; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.stream.Collectors; + +@Component +public class TreeUtil { + + public List treeAsList(List institutionList,List rootList){ + + //转换为hashSet + List root = rootList.stream() + .map(item -> item.getId()) + .collect(Collectors.toList()); + HashSet rootSet = new HashSet<>(root); + + //获取父节点,0表示父节点 + List tree = institutionList.stream() + .filter(e -> rootSet.contains(e.getId())) + .map(e -> { + + List childNode = getChildNode(e, institutionList); + + e.setChildren(new ArrayList<>(childNode)); + return e; + }).collect(Collectors.toList()); + + return tree; + } + + /** + * 递归查询子节点 + * @param root + * @param contentKnowledgeList + * @return + */ + private List getChildNode(TsInstitution root, List contentKnowledgeList) { + List childrenList = contentKnowledgeList.stream() + .filter(e -> Objects.equals(e.getParentId(), root.getId())) + .map(e -> { + List childNode = getChildNode(e, contentKnowledgeList); + e.setChildren(new ArrayList<>(childNode)); + return e; + } + ).collect(Collectors.toList()); + return childrenList; + } + + + + +// public List getChildAsHash(TsInstitution root, Map hashInstitution){ +// String id = root.getId(); +// if (hashInstitution.containsKey(id)){ +// +// } +// return null; +// } + + +// //TODO 利用HashMap组装树结构 +// +// public List treeAsHash(List institutionList,List rootList) { +// +// Map idMap = institutionList.stream() +// .collect(Collectors.toMap(TsInstitution::getId, tsInstitution -> tsInstitution)); +// +// Map pid_institution = institutionList.stream() +// .collect(Collectors.toMap(TsInstitution::getParentId, institution -> institution)); +// +// for (TsInstitution institution : rootList) { +// +// String id = institution.getId(); +// if (pid_institution.containsKey(id)) { +// institution.addChildren(pid_institution.get(id)); +// +// } +// +// } +// +// +// Set rootSet = rootList.stream() +// .map(TsInstitution::getId) +// .collect(Collectors.toSet()); +// +// Iterator it = institutionList.iterator(); +// +// ArrayList resultList = new ArrayList<>(); +// +// +// HashMap id_obj = new HashMap<>(); +// while (it.hasNext()) { +// TsInstitution next = it.next(); +// +// String parentId = next.getParentId(); +// id_obj.put(next.getId(), next); +// if (rootSet.contains(parentId)) { +// id_obj.put(next.getId(), next); +// } else if (id_obj.containsKey(parentId)) { +// id_obj.get(parentId).addChildren(next); +// } +// +// } +// return null ; +// +// } + + + +// +// +// +// List list = dbMapper.getNodeList(); +// ArrayList rootNodes = new ArrayList<>(); +// Map map = new HashMap<>(); +// for (TreeNodeDTO node :list) { +// map.put(node.getId(), node); +// Integer parentId = node.getParentId(); +// // 判断是否有父节点 (没有父节点本身就是个父菜单) +// if (parentId.equals('0')){ +// rootNodes.add(node); +// // 找出不是父级菜单的且集合中包括其父菜单ID +// } else if (map.containsKey(parentId)){ +// map.get(parentId).getChildren().add(node); +// } +// } +// +// } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/controller/SarModelTreeController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/controller/SarModelTreeController.java index dcbc369e..53ca743f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/controller/SarModelTreeController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/controller/SarModelTreeController.java @@ -42,7 +42,7 @@ public class SarModelTreeController extends BaseController { @GetMapping("/list") public ResponseMessage> getAll(){ List tsResources = iSarModelTreeService.getAll(null); -// List tsResources = iSarModuleTreeService.getAll(null); +// TODO List tsResources = iSarModuleTreeService.getAll(null); return Result.success(tsResources); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModuleTreeServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModuleTreeServiceImpl.java index 7a44d284..2fc5df32 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModuleTreeServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModuleTreeServiceImpl.java @@ -17,6 +17,7 @@ import org.springframework.stereotype.Service; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Service @@ -25,27 +26,38 @@ public class SarModuleTreeServiceImpl extends ServiceImpl getAll(SarModelTree sarModelTree) { QueryWrapper treeQueryWrapper = new QueryWrapper<>(); treeQueryWrapper.groupBy("FTVSTYPE1"); List moduleTreeList = this.baseMapper.selectList(treeQueryWrapper); - - //把SarModuleTree类型的list集合转换为SarModelTree类型的list集合 - List sarModelTreeList = moduleTreeList.stream().map(SarModuleTree -> { - SarModelTree modelTree = new SarModelTree(); - modelTree.setId(SarModuleTree.getGuid()); - modelTree.setName(SarModuleTree.getFtvstype1()); -// modelTree.setModel("TS"+SarModuleTree.get); - return modelTree; - }).collect(Collectors.toList()); - - return sarModelTreeList; + //返回转换元素后的数组 + return listTransform(moduleTreeList); } + /** + * 根据根节点查询其所有的子节点 + * @param parent + * @return + */ @Override public List recursionGetChildren(SarModelTree parent) { + + QueryWrapper treeQueryWrapper = new QueryWrapper<>(); + treeQueryWrapper.eq("GUID",parent.getId()); + List moduleTreeList = this.baseMapper.selectList(treeQueryWrapper); + + + Map> collect = moduleTreeList.stream().collect(Collectors.groupingBy(SarModuleTree::getFtvstype1)); + collect.forEach((k, v)->{ + SarModelTree modelTree = new SarModelTree(); + //TODO 生成树型结构 +// modelTree + }); return null; } @@ -93,5 +105,25 @@ public class SarModuleTreeServiceImpl extends ServiceImpl对修改关闭,对扩展开放 + * @param moduleTreeList + * @return + */ + public List listTransform(List moduleTreeList){ + + return moduleTreeList.stream().map(SarModuleTree -> { + SarModelTree modelTree = new SarModelTree(); + modelTree.setId(SarModuleTree.getGuid()); + modelTree.setName(SarModuleTree.getFtvstype1()); + modelTree.setModel("TS" + +SarModuleTree.getFtvstype2().substring(SarModuleTree.getFtvstype2().length()-2) + +SarModuleTree.getSeriesid() + +SarModuleTree.getReserved() + +SarModuleTree.getStarted()); //"TS"+SF_ID+SE_ID+SU_ID 拼接模块编号ID + return modelTree; + }).collect(Collectors.toList()); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java index df811c59..29e87b98 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java @@ -57,6 +57,14 @@ public interface TsPositionDao extends BaseMapper { */ List selectPositionAndRole(TsPosition tsPosition); + /** + * 总数 + * @param tsPosition + * @return + */ + Integer countPositionAndRole(TsPosition tsPosition); + + /** * 通过岗位列表查询绑定的角色列表 * @param positionIds:岗位列表 diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java index 0c57e382..f34b3081 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java @@ -44,9 +44,10 @@ public class TsPositionServiceImpl extends ServiceImpl getPosition(TsPosition tsPosition) { IPage page=new Page(); - - page.setTotal(tsPositionDao.pageTotal()); +// page.setTotal(tsPositionDao.pageTotal()); + page.setTotal(tsPositionDao.countPositionAndRole(tsPosition)); page.setRecords(tsPositionDao.selectPositionAndRole(tsPosition)); + page.setTotal(page.getTotal()); page.setCurrent(tsPosition.getCurrent()); page.setSize(tsPosition.getPageSize()); System.out.println(page.getTotal()); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index 341c2033..5d5f14fa 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -1,6 +1,9 @@ package com.adc.da.slrs.sarStandardsInfo.service.impl; import com.adc.da.att.entity.AttFileEO; +import com.adc.da.slrs.sarPosition.entity.TsPosition; +import com.adc.da.slrs.sarPosition.service.ITsPositionService; +import com.adc.da.slrs.sarUser.entity.TsUser; import com.adc.da.att.service.IAttFileEOService; import com.adc.da.att.vo.AttFileVo; import com.adc.da.common.*; @@ -69,6 +72,7 @@ import com.alibaba.fastjson.serializer.SerializerFeature; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import net.sf.json.JSONObject; +import org.apache.catalina.User; import org.apache.commons.lang3.StringUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.util.PDFTextStripper; @@ -116,6 +120,9 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 0 && InitStandAttrUtil.selectionFieldList.contains(name)) { value = entry.getValue().toString(); List valArr = Arrays.asList(value.split(",")); - value = dicTypeEODao.getDicNamesByCodes(valArr); + + switch (name){ + //通过id绑定责任工程师名称 + case "ZRGCS":{ + QueryWrapper tsUserQW = new QueryWrapper<>(); + tsUserQW.select("UNAME") + .in("USID",valArr); + List stringList = tsUserService.listObjs(tsUserQW, o ->o.toString()); + value= String.join(",", stringList); + break; + } + //通过id绑定责任部门师名称 + case "ZRBM":{ + QueryWrapper tsPositionQW = new QueryWrapper<>(); + tsPositionQW.select("name") + .in("id",valArr); + List stringList = iTsPositionService.listObjs(tsPositionQW, o -> o.toString()); + value = String.join(",", stringList); + break; + } + default:value = dicTypeEODao.getDicNamesByCodes(valArr); + } + + entry.setValue(value); } } diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml index d5c48467..b3f53de2 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml @@ -40,6 +40,24 @@ select * from ts_user WHERE institution_id=#{institutionId} + + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml index 2249eb2e..b5e3c5f8 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml @@ -34,7 +34,11 @@ on u.usid=up.user_id left join ts_position p on up.position_id=p.id - where u.institution_id=#{TsUser.institutionId} + where 1=1 + + and u.institution_id=#{TsUser.institutionId} + + and u.uname like concat('%',#{TsUser.uname},'%') diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/service/impl/DicTypeEOServiceImpl.java b/adc-da-sys/src/main/java/com/adc/da/sys/service/impl/DicTypeEOServiceImpl.java index 5f2fb13f..98c3ccaf 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/service/impl/DicTypeEOServiceImpl.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/service/impl/DicTypeEOServiceImpl.java @@ -101,6 +101,8 @@ public class DicTypeEOServiceImpl extends ServiceImpl im if(!StringUtils.isNotEmpty(dicTypeEO.getDicTypeCode())){ dicTypeEO.setDicTypeCode(UUIDUtils.randomUUID10()); } + }else { + dicTypeEO.setDicTypeCode(dicTypeEO.getDicTypeName()); } String id = UUIDUtils.randomUUID20(); dicTypeEO.setId(id);