diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/exportWkExcel.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/exportWkExcel.java index a3fdd787..53043a1e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/exportWkExcel.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/exportWkExcel.java @@ -68,9 +68,9 @@ public class exportWkExcel { @ApiOperation(value = "|SarFileSplitItemsEO|导入") @PostMapping(value = "/importData") - public ResponseMessage importSplitItemsZip(@RequestParam(value = "file", required = false) MultipartFile file) throws Exception { + public ResponseMessage importSplitItemsZip(@RequestParam(value = "importFileId", required = false) String importFileId) throws Exception { StringBuilder stringBuilder=new StringBuilder(); - List res=exportService.delWithWkData(file,stringBuilder); + List res=exportService.delWithWkData(importFileId,stringBuilder); if(null==res){ return Result.error("-1","","请严格按照模板上传文件"); }else if (stringBuilder.toString().length()>0){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/service/IExportService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/service/IExportService.java index cec1c948..4bde425f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/service/IExportService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/service/IExportService.java @@ -7,6 +7,6 @@ import java.util.List; public interface IExportService { - List delWithWkData(MultipartFile file ,StringBuilder stringBuilder) throws Exception; + List delWithWkData(String importFileId ,StringBuilder stringBuilder) throws Exception; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/service/impl/IExportServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/service/impl/IExportServiceImpl.java index ec192cf0..f4a3f745 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/service/impl/IExportServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/service/impl/IExportServiceImpl.java @@ -1,5 +1,7 @@ package com.adc.da.slrs.processModel.service.impl; +import com.adc.da.att.entity.AttFileEO; +import com.adc.da.att.service.IAttFileEOService; import com.adc.da.slrs.processModel.entity.importExcelDTO; import com.adc.da.slrs.processModel.service.IExportService; import com.adc.da.slrs.processModel.utils.DateUtil; @@ -15,9 +17,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.poi.hssf.usermodel.HSSFDateUtil; 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.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -38,87 +42,108 @@ public class IExportServiceImpl implements IExportService { private TsUserServiceImpl tsUserService; + @Autowired + private IAttFileEOService attFileEOService; + + @Value("${file.path}") + private String filePath;//文件存储路径 + + @Override - public List delWithWkData(MultipartFile file ,StringBuilder stringBuilder) throws Exception { + public List delWithWkData(String importFileId ,StringBuilder stringBuilder) throws Exception { -// //获取数据字典数据 + AttFileEO fileInfo = attFileEOService.getFileInfo(importFileId); + if(fileInfo!=null){ + //文件 + String importFilePath = filePath+fileInfo.getFilePath()+fileInfo.getFileName(); + File importFile = new File(importFilePath); + if(!importFile.exists()){ + return null; + } + // //获取数据字典数据 // Map dicTypeEO = dicTypeEOService.getDicTypeListCode(); - //获取机构数据 - QueryWrapper wrapper=new QueryWrapper<>(); - wrapper.select("id","name"); - List tsInstitutions=tsInstitutionService.list(wrapper); - //获取人员数据 - QueryWrapper tsUserQueryWrapper=new QueryWrapper<>(); - tsUserQueryWrapper.select("ACCOUNT","UNAME"); - tsUserQueryWrapper.eq("VALID_FLAG","0"); - List tsUsers=tsUserService.list(tsUserQueryWrapper); + //获取机构数据 + QueryWrapper wrapper=new QueryWrapper<>(); + wrapper.select("id","name"); + List tsInstitutions=tsInstitutionService.list(wrapper); + //获取人员数据 + QueryWrapper tsUserQueryWrapper=new QueryWrapper<>(); + tsUserQueryWrapper.select("ACCOUNT","UNAME"); + tsUserQueryWrapper.eq("VALID_FLAG","0"); + List tsUsers=tsUserService.list(tsUserQueryWrapper); - //获取institution工具集合 - Map tsInstitutionMap=new HashMap<>(); - tsInstitutions.forEach(tsInstitution -> { - tsInstitutionMap.put(tsInstitution.getName(),tsInstitution.getId()); - }); - //获取user工具集合 - Map tsUserMap=new HashMap<>(); - tsUsers.forEach(tsUser -> { - tsUserMap.put(tsUser.getAccount(),tsUser.getUname()); - }); - List res= ExcelImportUtilByWk.readExcelpublic(importExcelDTO.class,file,stringBuilder); - if (null!=res) { - DateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); - int i = 1; - for (importExcelDTO importExcelDTO : res) { - if (null != importExcelDTO.getWgLeader() && !"".equals(importExcelDTO.getWgLeader())) { - importExcelDTO.setWgLeaderName(tsUserMap.get(importExcelDTO.getWgLeader())+"("+importExcelDTO.getWgLeader()+")"); - if (null == tsUserMap.get(importExcelDTO.getWgLeader())) { - stringBuilder.append("第" + i + "行第7列工作组组长填写不符合格式要求请检查;"); + //获取institution工具集合 + Map tsInstitutionMap=new HashMap<>(); + tsInstitutions.forEach(tsInstitution -> { + tsInstitutionMap.put(tsInstitution.getName(),tsInstitution.getId()); + }); + //获取user工具集合 + Map tsUserMap=new HashMap<>(); + tsUsers.forEach(tsUser -> { + tsUserMap.put(tsUser.getAccount(),tsUser.getUname()); + }); + List res= ExcelImportUtilByWk.readExcelpublic(importExcelDTO.class,importFile,stringBuilder); + if (null!=res) { + DateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); + int i = 1; + for (importExcelDTO importExcelDTO : res) { + if (null != importExcelDTO.getWgLeader() && !"".equals(importExcelDTO.getWgLeader())) { + importExcelDTO.setWgLeaderName(tsUserMap.get(importExcelDTO.getWgLeader())+"("+importExcelDTO.getWgLeader()+")"); + if (null == tsUserMap.get(importExcelDTO.getWgLeader())) { + stringBuilder.append("第" + i + "行第7列工作组组长填写不符合格式要求请检查;"); + } } - } - if (null != importExcelDTO.getUnitName() && !"".equals(importExcelDTO.getUnitName())) { - importExcelDTO.setUnit(tsInstitutionMap.get(importExcelDTO.getUnitName())); - if (null == tsInstitutionMap.get(importExcelDTO.getUnitName())) { - stringBuilder.append("第" + i + "行第4列起草责任单位填写不符合格式要求请检查;"); + if (null != importExcelDTO.getUnitName() && !"".equals(importExcelDTO.getUnitName())) { + importExcelDTO.setUnit(tsInstitutionMap.get(importExcelDTO.getUnitName())); + if (null == tsInstitutionMap.get(importExcelDTO.getUnitName())) { + stringBuilder.append("第" + i + "行第4列起草责任单位填写不符合格式要求请检查;"); + } } - } - if (null != importExcelDTO.getDrafter() && !"".equals(importExcelDTO.getDrafter())) { - importExcelDTO.setDrafterName(tsUserMap.get(importExcelDTO.getDrafter())+"("+importExcelDTO.getDrafter()+")"); - if (null == tsUserMap.get(importExcelDTO.getDrafter())) { - stringBuilder.append("第" + i + "行第5列起草人填写不符合格式要求请检查;"); + if (null != importExcelDTO.getDrafter() && !"".equals(importExcelDTO.getDrafter())) { + importExcelDTO.setDrafterName(tsUserMap.get(importExcelDTO.getDrafter())+"("+importExcelDTO.getDrafter()+")"); + if (null == tsUserMap.get(importExcelDTO.getDrafter())) { + stringBuilder.append("第" + i + "行第5列起草人填写不符合格式要求请检查;"); + } } - } - if (null != importExcelDTO.getResPerson() && !"".equals(importExcelDTO.getResPerson())) { - importExcelDTO.setResPersonName(tsUserMap.get(importExcelDTO.getResPerson())+"("+importExcelDTO.getResPerson()+")"); - if (null == tsUserMap.get(importExcelDTO.getResPerson())) { - stringBuilder.append("第" + i + "行第6列评审责任人填写不符合格式要求请检查;"); + if (null != importExcelDTO.getResPerson() && !"".equals(importExcelDTO.getResPerson())) { + importExcelDTO.setResPersonName(tsUserMap.get(importExcelDTO.getResPerson())+"("+importExcelDTO.getResPerson()+")"); + if (null == tsUserMap.get(importExcelDTO.getResPerson())) { + stringBuilder.append("第" + i + "行第6列评审责任人填写不符合格式要求请检查;"); + } } - } - try { - if (null != importExcelDTO.getEndTime() && !"".equals(importExcelDTO.getEndTime())) { - importExcelDTO.setEndTime(formater.format(HSSFDateUtil.getJavaDate(Double.valueOf(importExcelDTO.getEndTime())))); + try { + if (null != importExcelDTO.getEndTime() && !"".equals(importExcelDTO.getEndTime())) { + importExcelDTO.setEndTime(formater.format(HSSFDateUtil.getJavaDate(Double.valueOf(importExcelDTO.getEndTime())))); + } + } catch (Exception e) { + stringBuilder.append("第" + i + "行第10列立项完成时间填写不符合格式要求请检查;"); } - } catch (Exception e) { - stringBuilder.append("第" + i + "行第10列立项完成时间填写不符合格式要求请检查;"); - } - try { - if (null != importExcelDTO.getReleaseTime() && !"".equals(importExcelDTO.getReleaseTime())) { - importExcelDTO.setReleaseTime(formater.format(HSSFDateUtil.getJavaDate(Double.valueOf(importExcelDTO.getReleaseTime())))); + try { + if (null != importExcelDTO.getReleaseTime() && !"".equals(importExcelDTO.getReleaseTime())) { + importExcelDTO.setReleaseTime(formater.format(HSSFDateUtil.getJavaDate(Double.valueOf(importExcelDTO.getReleaseTime())))); + } + } catch (Exception e) { + stringBuilder.append("第" + i + "行第9列计划标准发布时间填写不符合格式要求请检查;"); } - } catch (Exception e) { - stringBuilder.append("第" + i + "行第9列计划标准发布时间填写不符合格式要求请检查;"); - } - try { - if (null != importExcelDTO.getDraftTime() && !"".equals(importExcelDTO.getDraftTime())) { - importExcelDTO.setDraftTime(formater.format(HSSFDateUtil.getJavaDate(Double.valueOf(importExcelDTO.getDraftTime())))); + try { + if (null != importExcelDTO.getDraftTime() && !"".equals(importExcelDTO.getDraftTime())) { + importExcelDTO.setDraftTime(formater.format(HSSFDateUtil.getJavaDate(Double.valueOf(importExcelDTO.getDraftTime())))); + } + } catch (Exception e) { + stringBuilder.append("第" + i + "行第8列计划初稿完成日期填写不符合格式要求请检查;"); } - } catch (Exception e) { - stringBuilder.append("第" + i + "行第8列计划初稿完成日期填写不符合格式要求请检查;"); + i++; } - i++; + + return res; + }else { + return null; } - - return res; - }else { + }else{ return null; } + + + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/utils/ExcelImportUtilByWk.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/utils/ExcelImportUtilByWk.java index 19517039..54d8b8fe 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/utils/ExcelImportUtilByWk.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/utils/ExcelImportUtilByWk.java @@ -15,6 +15,8 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; @@ -146,6 +148,123 @@ public class ExcelImportUtilByWk { } } + /** + * 读取Excel文件内容 + * @param file 上传的Excel文件 + * @return 读取结果列表,读取失败时返回null + */ + public static List readExcelpublic(Class tClass, File file, StringBuilder stringBuilder) { + + Workbook workbook = null; + InputStream is = null; + try { + // 获取Excel后缀名 + String fileName = file.getName(); + if (fileName == null || fileName.isEmpty() || fileName.lastIndexOf(".") < 0) { + log.warn("解析Excel失败,因为获取到的Excel文件名非法!"); + return null; + } + String fileType = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()); + is = new FileInputStream(file); + // 获取Excel工作簿 + workbook = getWorkbook(is, fileType); + + //不同需求条件下可以 在此处修改 来获取不同的对象 + List resultDataList = new ArrayList<>(); + + // 解析sheet + for (int sheetNum = 0; sheetNum < workbook.getNumberOfSheets(); sheetNum++) { + Sheet sheet = workbook.getSheetAt(sheetNum); + if(!"hidden".equals(sheet.getSheetName())) { + // 校验sheet是否合法 + if (sheet == null) { + continue; + } + + // 获取第一行数据 + int firstRowNum = sheet.getFirstRowNum(); + Row firstRow = sheet.getRow(firstRowNum); + if (null == firstRow) { + log.warn("解析Excel失败,在第一行没有读取到任何数据!"); + } + + // 解析每一行的数据,构造数据对象 + int rowStart = firstRowNum + 1; + int rowEnd = sheet.getPhysicalNumberOfRows(); + + Map map=new HashMap<>(); + Map mapExcel=new HashMap<>(); + Field[] fields=tClass.getDeclaredFields(); + for (Field field:fields) { + field.setAccessible(true); + Excel excel=field.getAnnotation(Excel.class); + if (null!=excel) { + map.put(Integer.valueOf(excel.orderNum()), field); + mapExcel.put(Integer.valueOf(excel.orderNum()), excel); + } + } + Row headRow=sheet.getRow(firstRowNum); + for (int j=0;j } } + @ApiOperation(value = "|SarBussStandMenuEO|移动标准") + @PutMapping("/moveStandInfo") + public ResponseMessage moveStandInfo(@RequestBody SarBussStandMenu standardsInfoEO){ + if("sarMs".equals(standardsInfoEO.getTreeType())) { + return Result.error("请在企业标准目录下进行移动!"); + } + String[] idList = standardsInfoEO.getIdlist(); + int count = 0; + if(idList != null){ + for(String id : idList){ + SarBussStandMenu menuEO = new SarBussStandMenu(); + menuEO.setBussStandId(id); + + //删除所选目录下关联 + String oldMenuId = standardsInfoEO.getOldMenuId(); + menuEO.setOldMenuId(oldMenuId); + count+= sarBussStandMenuEOService.deleteByMenuId(menuEO); + + menuEO.setMenuId(standardsInfoEO.getMenuId()); + menuEO.setId(UUIDUtils.randomUUID20()); + menuEO.setValidFlag(0); + sarBussStandMenuEOService.save(menuEO); + } + } + if(count>0){ + return Result.success("0","移动成功!",true); + } else { + return Result.error("移动失败!"); + } + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/controller/SarStandMenuController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/controller/SarStandMenuController.java index efa376f0..527eb8d6 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/controller/SarStandMenuController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/controller/SarStandMenuController.java @@ -79,4 +79,31 @@ public class SarStandMenuController extends BaseController { return Result.error("移除失败!"); } } + + @ApiOperation(value = "|SarStandMenuEO|移动标准") + @PutMapping("/moveStandInfo") + public ResponseMessage moveStandInfo(@RequestBody SarStandMenu standardsInfoEO){ + String[] idList = standardsInfoEO.getIdlist(); + int count = 0; + if(idList != null){ + for(String id : idList){ + SarStandMenu menuEO = new SarStandMenu(); + menuEO.setStandId(id); + //删除所选旧目录下关联, 存在 旧目录是目标标准所属目录的上级目录的情况 + menuEO.setOldMenuId(standardsInfoEO.getOldMenuId()); // 旧目录 + count+= sarStandMenuEOService.deleteByMenuId(menuEO); + + //新增新的关联 + menuEO.setMenuId(standardsInfoEO.getMenuId()); // 新目录 + menuEO.setId(UUIDUtils.randomUUID20()); + menuEO.setValidFlag(0); + sarStandMenuEOService.saveOrUpdate(menuEO); + } + } + if(count>0){ + return Result.success("0","移动成功!",true); + } else { + return Result.error("移动失败!"); + } + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceAssessResultController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceAssessResultController.java index 42640ba1..680d71df 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceAssessResultController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/controller/SarStandardComplianceAssessResultController.java @@ -50,9 +50,9 @@ public class SarStandardComplianceAssessResultController { @ApiOperation(value = "条件查询标准清单") @GetMapping("/standard") public ResponseMessage selectStandard(SarStandardsInfoEO eo) throws Exception { - if(StringUtils.isNotBlank(eo.getStandNumber())){ - eo.setStandNumber(eo.getStandNumber().replace(" ","  ")); - } +// if(StringUtils.isNotBlank(eo.getStandNumber())){ +// eo.setStandNumber(eo.getStandNumber().replace(" ","  ")); +// } if (eo.getStandApplicationType() == 1) { QueryWrapper queryWrapper = new QueryWrapper<>(); IPage iPage = new Page<>(eo.getCurrent(), eo.getSize()); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceProductAssessDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceProductAssessDao.java index 6cf6e1b8..880f782d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceProductAssessDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardComplianceAssessResult/dao/SarStandardComplianceProductAssessDao.java @@ -24,4 +24,8 @@ public interface SarStandardComplianceProductAssessDao extends BaseMapper selectPagesCount(@Param("product")unCountDTO productAssess); + List selectByPages(@Param("page")Long page,@Param("pageSize")Long size,@Param("product") SarStandardComplianceProductAssess productAssess); + + List selectByPagesCount(@Param("product")SarStandardComplianceProductAssess productAssess); + } diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarStandardComplianceProductAssessMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarStandardComplianceProductAssessMapper.xml index a40576d8..894b5c40 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarStandardComplianceProductAssessMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardComplianceAssessResult/SarStandardComplianceProductAssessMapper.xml @@ -88,4 +88,38 @@ ORDER BY sar_stand_project_library.project_name ASC + + + + diff --git a/doc/sql/20221009_添加移动标准按钮.sql b/doc/sql/20221009_添加移动标准按钮.sql new file mode 100644 index 00000000..debffe54 --- /dev/null +++ b/doc/sql/20221009_添加移动标准按钮.sql @@ -0,0 +1,3 @@ +INSERT INTO `foton_slrs`.`sar_menu`(`ID`, `SOR_DIVIDE`, `MENU_NAME`, `PARENT_ID`, `PARENT_IDS`, `LEVEL`, `DISPLAY_SEQ`, `HREF`, `VALID_FLAG`, `CREATION_TIME`, `MODIFY_TIME`, `REMARKS`) VALUES ('56b2eec13fe5b53916b8e2b9dacc6554', NULL, '国内标准移动标准', '3e3657498664beaa0dc1de1ecb3ae0da', NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `foton_slrs`.`sar_menu`(`ID`, `SOR_DIVIDE`, `MENU_NAME`, `PARENT_ID`, `PARENT_IDS`, `LEVEL`, `DISPLAY_SEQ`, `HREF`, `VALID_FLAG`, `CREATION_TIME`, `MODIFY_TIME`, `REMARKS`) VALUES ('c596ecef95f5177ecde662acfc9dee02', NULL, '海外标准移动标准', '18c1e5134ea0cf865e8960b26b81fd8c', NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `foton_slrs`.`sar_menu`(`ID`, `SOR_DIVIDE`, `MENU_NAME`, `PARENT_ID`, `PARENT_IDS`, `LEVEL`, `DISPLAY_SEQ`, `HREF`, `VALID_FLAG`, `CREATION_TIME`, `MODIFY_TIME`, `REMARKS`) VALUES ('6d0daae8471f16d635bec1529801670a', NULL, '企业标准移动标准', '01ed8f752748227777b3572d56ee9ab5', NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL);