diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql index 6f67d579a..0fe7be784 100644 --- a/jero-boot/db/蔚来标准sql/dev_third_record.sql +++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql @@ -239,6 +239,10 @@ CREATE TABLE `laws_technology_evaluation` ( PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '法规技术评估表' ROW_FORMAT = DYNAMIC; +-- 上报库认证类别参数信息 添加字段 2022-07-11 +ALTER TABLE `laws_weilai`.`report_cert_category_params_info` + ADD COLUMN `params_manifest_id` varchar(50) NULL COMMENT '上报库id' AFTER `version`; + -- 法规技术评估-流程明细表 CREATE TABLE `laws_technology_evaluation_flow_detail` ( `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, @@ -322,3 +326,11 @@ CREATE TABLE `laws_technology_evaluation_result` ( `acti_proc_inst_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程实例id', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '法规技术评估-评估结果表' ROW_FORMAT = Dynamic; + + +-- 增加评估方式树形字典。 +INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1546745025973256194', '0', '评1', NULL, 'admin', '2022-07-12 14:35:26', 'admin', '2022-07-12 14:36:36', 'A01', '1546744902203539458', '1', 'P1', '333', 1, NULL, NULL, 0, NULL, 1); +INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1546745149692641282', '0', '评2', NULL, 'admin', '2022-07-12 14:35:55', NULL, NULL, 'A01', '1546744902203539458', NULL, 'P2', NULL, 1, NULL, NULL, 0, NULL, 2); +INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1546745318161055745', '1546745025973256194', '评1+1', NULL, 'admin', '2022-07-12 14:36:36', NULL, NULL, 'A01', '1546744902203539458', NULL, 'P1+1', NULL, 1, NULL, NULL, 0, NULL, 1); + +INSERT INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `dict_en_name`, `is_tag_dict`, `is_read_only`, `attribute_type`, `order_num`) VALUES ('1546744902203539458', '评估方式', 'evaluation_method', '评估方式', 0, 'admin', '2022-07-12 14:34:56', NULL, NULL, NULL, NULL, 1, 0, '2', 1); diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index ff8f7c289..a11e3fb76 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -1552,6 +1552,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl getById(@RequestParam(name = "id") String id) { + ParamsReportConfigEO paramsReportConfigEO = paramsReportConfigEOService.getById(id); + return Result.OK(paramsReportConfigEO); + } + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/entity/ReportCertCategoryParamsInfoEO.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/entity/ReportCertCategoryParamsInfoEO.java index 8ca30076c..80937575f 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/entity/ReportCertCategoryParamsInfoEO.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/entity/ReportCertCategoryParamsInfoEO.java @@ -29,4 +29,8 @@ public class ReportCertCategoryParamsInfoEO extends CertCategoryParamsInfoEO imp @ApiModelProperty(value = "发布时版本") private Integer version; + /**上报库id*/ + @ApiModelProperty(value = "上报库id") + private String paramsManifestId; + } diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportDetailEOMapper.xml b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportDetailEOMapper.xml index b539d2703..819e1af14 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportDetailEOMapper.xml +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/mapper/xml/ParamsReportDetailEOMapper.xml @@ -103,10 +103,11 @@ prd.id as id, prd.nio_number as nio_number, prd.params_name as params_name, + prd.control_type as control_type, rccpi.params_number as cert_number, rccpi.params_name as cert_params_name from params_report_detail prd - left join report_cert_category_params_info rccpi on prd.nio_number = rccpi.nio_number + left join report_cert_category_params_info rccpi on (prd.params_manifest_id = rccpi.params_manifest_id and prd.nio_number = rccpi.nio_number) and prd.id in diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/mapper/xml/ReportCertCategoryParamsInfoEOMapper.xml b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/mapper/xml/ReportCertCategoryParamsInfoEOMapper.xml index cc2317fb5..d73208e9f 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/mapper/xml/ReportCertCategoryParamsInfoEOMapper.xml +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/mapper/xml/ReportCertCategoryParamsInfoEOMapper.xml @@ -15,5 +15,6 @@ + \ No newline at end of file diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java index ae409e6dc..629c3eebd 100644 --- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java +++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/report/service/impl/ParamsReportDetailEOServiceImpl.java @@ -588,7 +588,8 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl paramsInfoEOList = paramsInfoEOMapper.selectListWithCert(paramsInfoVO); // 中文数据导出 - getTreeDictItemText(paramsInfoEOList, cut); +// getTreeDictItemText(paramsInfoEOList, cut); List> sheetsList = new ArrayList<>(); sheetsList = getCnExportSheetsList(paramsInfoEOList, fileNowPath, paramsTemplateId); workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF); @@ -463,7 +463,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl paramsInfoEnExportList = paramsInfoEOMapper.selectListWithCertForEnExport(paramsInfoVO); // 英文数据导出 - getTreeDictItemTextForEnExport(paramsInfoEnExportList); +// getTreeDictItemTextForEnExport(paramsInfoEnExportList); List> sheetsList = new ArrayList<>(); sheetsList = getEnExportSheetsList(paramsInfoEnExportList, fileNowPath, paramsTemplateId); workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF); @@ -839,7 +839,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl paramsInfoEOListEn = resultEn.getList(); copyParamsInfoList(paramsInfoEOListEn, paramsInfoEOList); } else { - String fields[] ={ "*NIO编号", "*是否必填", "*参数名称","*技术领域","*参数批次","*责任领域", + String fields[] ={ "*NIO编号", "*是否必填", "*参数名称","*参数批次","*责任领域", "参数说明", "*控件类型", "控件校验", "控件备选值", "附件模板"}; params.setImportFields(fields); @@ -1069,7 +1069,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl certCategoryParamsInfoEOList = new ArrayList<>(); // 树形数据字典 - List categoryList = sysCategoryService.queryByTreeDicCode("technology_territory"); +// List categoryList = sysCategoryService.queryByTreeDicCode("technology_territory"); // 普通数据字典 List dictItemList = new ArrayList<>(); List dictCodeList = new ArrayList<>(); @@ -1091,12 +1091,12 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl itemNameList = new ArrayList<>(); if (CutEnum.CN.getValue().equals(cut)) { - treeNameList = categoryList.stream().map(SysCategory::getName).collect(Collectors.toList()); +// treeNameList = categoryList.stream().map(SysCategory::getName).collect(Collectors.toList()); itemNameList = dictItemList.stream().map(SysDictItem::getItemText).collect(Collectors.toList()); certCategoryMap = dictItemList.stream().filter(e->"cert_category".equals(e.getDictCode())).collect(Collectors.toMap(c->c.getItemText(),c->c.getItemValue())); } else if(CutEnum.EN.getValue().equals(cut)){ - treeNameList = categoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList()); +// treeNameList = categoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList()); itemNameList = dictItemList.stream().map(SysDictItem::getEnName).collect(Collectors.toList()); certCategoryMap = dictItemList.stream().filter(e->"cert_category".equals(e.getDictCode())).collect(Collectors.toMap(c->c.getEnName(),c->c.getItemValue())); @@ -1177,15 +1177,15 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl params) { + this.lawsOpinionAssessmentResultEOService.exportXls(response,request, lawsOpinionAssessmentResultEO,params); + } /** * 通过excel导入数据 diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionAssessmentResultEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionAssessmentResultEO.java index a7712bfbf..446d76baa 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionAssessmentResultEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/entity/LawsOpinionAssessmentResultEO.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -82,6 +83,8 @@ public class LawsOpinionAssessmentResultEO implements Serializable { @Excel(name = "附件", width = 15) @ApiModelProperty(value = "附件") private String accessoryFile; + @TableField(exist = false) + private String accessoryFileName; /**提出时间*/ @Excel(name = "提出时间", width = 15, format = "yyyy-MM-dd") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionAssessmentResultEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionAssessmentResultEOService.java index f5f7a15c2..5fdc85844 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionAssessmentResultEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/ILawsOpinionAssessmentResultEOService.java @@ -5,7 +5,9 @@ import com.jero.modules.lawsOpinionGather.entity.LawsOpinionAssessmentResultEO; import com.baomidou.mybatisplus.extension.service.IService; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; /** * @Description: 法规意见收集-评估结果表 @@ -67,4 +69,6 @@ public interface ILawsOpinionAssessmentResultEOService extends IService params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionAssessmentResultEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionAssessmentResultEOServiceImpl.java index bb99b46a6..23fc954b6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionAssessmentResultEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionAssessmentResultEOServiceImpl.java @@ -1,23 +1,44 @@ package com.jero.modules.lawsOpinionGather.service.impl; +import cn.hutool.core.util.ZipUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.aliyuncs.utils.IOUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.oss.CosBootUtil; import com.jero.modules.lawsOpinionGather.entity.LawsOpinionAssessmentResultEO; +import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO; import com.jero.modules.lawsOpinionGather.mapper.LawsOpinionAssessmentResultEOMapper; import com.jero.modules.lawsOpinionGather.service.ILawsOpinionAssessmentResultEOService; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; +import com.jero.modules.system.util.PDFUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; import org.apache.shiro.SecurityUtils; +import org.aspectj.util.FileUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; -import java.util.Date; +import java.io.*; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * @Description: 法规意见收集-评估结果表 @@ -28,6 +49,12 @@ import javax.servlet.http.HttpServletRequest; @Service public class LawsOpinionAssessmentResultEOServiceImpl extends ServiceImpl implements ILawsOpinionAssessmentResultEOService { + @Value(value = "${jero.path.upload}") + private String uploadpath; + + @Autowired + private IOSSFileService iOSSFileService; + /** * 保存 * @@ -125,4 +152,201 @@ public class LawsOpinionAssessmentResultEOServiceImpl extends ServiceImpl params) { + + Integer pageNo = (Integer) params.get("pageNo"); + Integer pageSize = (Integer) params.get("pageSize"); + String exportAll = (String)params.get("exportAll"); + String ids = (String)params.get("ids"); + String cut = (String)params.get("cut"); + String exportType = (String)params.get("exportType"); + List exportData = new ArrayList<>(); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsOpinionAssessmentResultEO, request.getParameterMap()); + if(StringUtils.isNotEmpty(ids)){ + List idList = Arrays.asList(ids.split(",")); + queryWrapper.lambda().in(LawsOpinionAssessmentResultEO::getId,idList); + } + if(StringUtils.equals(exportAll,"yes")){ + exportData = this.baseMapper.selectList(queryWrapper); + }else { + Page page = new Page(pageNo, pageSize); + IPage pageList = this.page(page, queryWrapper); + exportData = pageList.getRecords(); + } + + this.disposeData(exportData,cut); + + String title = ""; + String fileName = ""; + if(StringUtils.equals(cut, CutEnum.CN.getValue())){ + title = "相关章节,问题/建议,理由,附件,评估人,提出时间"; + fileName = "评估结果 " + ".xlsx"; + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + title = "Related section,IssueOrSuggest,Reason,Accessory,Evaluator,Submit Date"; + fileName = "Evaluation results " + ".xlsx"; + } + + OutputStream os = null; + HSSFWorkbook workbook = new HSSFWorkbook(); + + try { + response.setHeader("Content-Disposition", + "attachment; filename=" + fileName); + response.setContentType("application/force-download"); + + HSSFSheet sheet = workbook.createSheet("sheet1"); + + CellStyle titleCellStyle = workbook.createCellStyle(); + titleCellStyle.setAlignment(HorizontalAlignment.CENTER);//垂直居中 + titleCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//水平居中 + titleCellStyle.setWrapText(true);//自动换行 + + Row firstRow = sheet.createRow(0); + + //创建表头 + String[] titleArr = title.split(","); + for (int i=0; i<=5; i++){ + sheet.setColumnWidth(i,4000); + Cell cell = firstRow.createCell(i); + cell.setCellStyle(titleCellStyle); + cell.setCellValue(titleArr[i]); + } + + //设置导出数据 + if(CollectionUtils.isNotEmpty(exportData)) { + for (int dataIndex = 0; dataIndex < exportData.size(); dataIndex++) { + Row dataRow = sheet.createRow(dataIndex + 1); + dataRow.createCell(0).setCellValue(exportData.get(dataIndex).getRelatedSection()); + dataRow.createCell(1).setCellValue(exportData.get(dataIndex).getIssueOrSuggest()); + dataRow.createCell(2).setCellValue(exportData.get(dataIndex).getReason()); + dataRow.createCell(3).setCellValue(exportData.get(dataIndex).getAccessoryFileName()); + dataRow.createCell(4).setCellValue(exportData.get(dataIndex).getCreateBy()); + String submitTimeStr = disposeDate(exportData.get(dataIndex).getSubmitTime()); + dataRow.createCell(5).setCellValue(submitTimeStr); + } + } + if ("excel".equals(exportType)) { + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + }else { + String path = uploadpath + "/tempZip/evaluationResults"; + File fileTemp = new File(path); + if (fileTemp.exists()) { + fileTemp.delete(); + } + fileTemp.mkdirs(); + //excel + OutputStream excelOS = new FileOutputStream(path + File.separator + fileName); + workbook.write(excelOS); + excelOS.flush(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + for (LawsOpinionAssessmentResultEO data : exportData) { + String accessoryFile = data.getAccessoryFile(); + + List fileInfosList = iOSSFileService.getFileInfos(accessoryFile); + if (fileInfosList.size() != 0) { + for (OSSFile ossFile : fileInfosList) { + String url = ossFile.getUrl(); + //判断文件是否存在 + if(StringUtils.isNotBlank(url)){ + //判断文件是否存在 + boolean b = CosBootUtil.doesObjectExist(url); + if(b){ + InputStream download = CosBootUtil.download(url); + if(url.endsWith(".pdf") || url.endsWith(".PDF")){ + String currentTime = sdf.format(new Date()); + String waterContent = loginUser.getUsername() + " " + currentTime; + File newFile = PDFUtils.PDFWatermark(download,uploadpath,ossFile.getFileName(),waterContent); + download = new FileInputStream(newFile.getPath()); + } + copyFile(download, path + File.separator + ossFile.getFileName()); + } + } + } + } + } + ZipUtil.zip(path, path + ".zip"); + //文件 + FileInputStream fis = new FileInputStream(path + ".zip"); + os = response.getOutputStream(); + + int len = 0; + while ((len = fis.read()) != -1) { + os.write(len); + } + os.flush(); + fis.close(); + } + + }catch (IOException ex){ + if(CutEnum.CN.getValue().equals(cut)){ + throw new JeroBootException("下载文件失败"); + }else{ + throw new JeroBootException("Failed to download file"); + } + }finally { + IOUtils.closeQuietly(os); + File file = new File(uploadpath + "/tempZip/evaluationResults"); + FileUtil.deleteContents(file); + File fileTemp = new File(uploadpath + "/tempZip/evaluationResults.zip"); + FileUtil.deleteContents(fileTemp); + } + } + + public static void copyFile(InputStream in, String newFile) throws IOException { + File file2 = new File(newFile); + if (!file2.exists()) { + file2.createNewFile(); + } + try (FileOutputStream ou = new FileOutputStream(newFile);) { + byte[] bs = new byte[1024]; + int count = 0; + while ((count = in.read(bs, 0, bs.length)) != -1) { + ou.write(bs, 0, count); + } + ou.flush(); + } catch (IOException e) { + e.printStackTrace(); + throw new IOException("复制文件失败!"); + } finally { + in.close(); + } + } + + /** + * 处理数据 + * @param datas + * @param cut + */ + public void disposeData(List datas,String cut){ + if(CollectionUtils.isNotEmpty(datas)){ + for (LawsOpinionAssessmentResultEO data : datas) { + if(StringUtils.isNotEmpty(data.getAccessoryFile())){ + List accessoryFileList = iOSSFileService.getFileInfos(data.getAccessoryFile()); + String accessoryFileName = accessoryFileList.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + data.setAccessoryFileName(accessoryFileName); + } + } + } + } + + public String disposeDate(Date date){ + String result = ""; + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if(date != null){ + result = sdf.format(date); + } + }catch (Exception ex){ + ex.printStackTrace(); + log.error("处理日期失败:" +ex.getMessage()); + } + return result; + } } diff --git a/jero-web/src/api/manage.js b/jero-web/src/api/manage.js index 349700e7a..eebd43e55 100644 --- a/jero-web/src/api/manage.js +++ b/jero-web/src/api/manage.js @@ -195,6 +195,10 @@ export function downloadFile(url, fileName, parameter, callback) { } } catch (e) { if (!data || data.size === 0) { + index.showDrawer({ + loading: false, + isTrue: isTrue + }) Vue.prototype['$message'].warning('文件下载失败') return } diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 9b08f22c0..313d0a2b1 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1112,4 +1112,10 @@ module.exports = { selectedStandard:'Selected standard', standardDecompositionDocument:'Standard decomposition document', pleaseSelectStandardFirst:'Please select a standard first', + RelevantMaterials:'RelevantMaterials', + evaluatorFeedback:'Evaluator feedback', + nameTechnicalDocument:'Name of technical document', + chapter:'chapter', + problemDescription:'Problem description', + filingExternalOpinions:'Filing of external opinions', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index d1d642381..d6238311a 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1112,8 +1112,14 @@ module.exports = { RegulationTaskConfirmationNotification:'任务确认通知', evaluationMethod:'评估方式', uploadRelevantMaterials:'相关资料上传', + RelevantMaterials:'相关资料', processBackground:'流程背景', selectedStandard:'所选标准', standardDecompositionDocument:'带入标准分解单', pleaseSelectStandardFirst:'请先选择标准', + evaluatorFeedback:'评估人反馈', + nameTechnicalDocument:'技术文件名称', + chapter:'章节', + problemDescription:'问题说明', + filingExternalOpinions:'对外意见归档', } \ No newline at end of file diff --git a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue index fb1d93dfa..f4230edc3 100644 --- a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue +++ b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/components/evaluationResultsList.vue @@ -44,13 +44,13 @@ />
- 对外意见归档: -
{{$t('filingExternalOpinions')}}: +
{{$t('clickUpload')}}
-
+
{{$t('viewFile')}}
@@ -177,11 +177,13 @@ //导出 handleExport() { let query = { - lawsOpinionGatherId: this.lawsOpinionGatherId, - actiProcInstId: this.actiProcInstId + pageSize:this.pageSize, + pageNo:this.pageNo + // lawsOpinionGatherId: this.lawsOpinionGatherId, + // actiProcInstId: this.actiProcInstId } downloadFile('/lawsOpinionGather/lawsOpinionAssessmentResultEO/exportXls', - this.$t('evaluationResults') + '.xls', query) + this.$t('evaluationResults') + '.zip', query) }, getData(row) { this.visible = true @@ -206,7 +208,9 @@ getList() { let query = { lawsOpinionGatherId: this.lawsOpinionGatherId, - actiProcInstId: this.actiProcInstId + actiProcInstId: this.actiProcInstId, + pageSize:this.pageSize, + pageNo:this.pageNo } this.loading = true getAction('/lawsOpinionGather/lawsOpinionAssessmentResultEO/page', query).then((res) => { diff --git a/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue b/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue index cdd5dd3a4..61e2611e2 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/modules/defaultTemplate.vue @@ -135,20 +135,20 @@ - -
-
- {{$t('releaseDate')}} -
- - - -
-
+ + + + + + + + + + + + + +
@@ -163,8 +163,6 @@
- -
@@ -180,6 +178,9 @@
+ + +
@@ -391,8 +392,21 @@ methods: { ...mapGetters(['userInfo']), getStandData(value) { + console.log(value) this.formInline.titleCn = value.serial_number + ' ' + value.title this.formInline.titleEn = value.serial_number + ' ' + value.title_en + this.formInline.technologyTerritory = value.technology_territory_dict + this.formInline.applyCar = value.shi4_yong4_che1_xing2_dict + this.formInline.applyScope = value.shi4_yong4_fan4_wei2_dict + this.formInline.state = value.state_dict + this.formInline.newCarImplementTime = value.xin1_che1_xing2_shi2_shi1_ri4_qi1 + this.formInline.productionCarImplementTime = value.implement_time + var curPath = window.document.location.href + var pathname = window.document.location.pathname + var pos = curPath.indexOf(pathname) + var localhostPath = curPath.substring(0, pos) + this.formInline.link = localhostPath + '/docManage/library/detail?id=' + value.id + this.formInline = {...this.formInline} }, getSysCategoryTree() { getAction('/sys/category/getSysCategoryTree', {}).then((res) => { diff --git a/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue b/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue index 22f173f08..ca2803ca7 100644 --- a/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue +++ b/jero-web/src/views/businessSupport/regulationReport/components/modules/fillAdd.vue @@ -50,6 +50,7 @@ v-model="formInline.memoriesChapter" :maxTagCount="1" :disabled="disabled" + @change="changeTree" :getPopupContainer="triggerNode=> triggerNode.parentNode" class="box-input" style="width: 100%" @@ -187,6 +188,9 @@ getAction('/report/lawsMonthlyReportTitleTemplateEO/list', {}).then((res) => { if (res.success) { this.chapterContentsList = res.result || [] + this.chapterContentsList.forEach(val => { + val.disabled = true + }) } else { this.chapterContentsList = [] } @@ -245,6 +249,13 @@ handleCancel() { this.visible = false }, + changeTree(value, node, extra) { + if (value.length > 1) { + value.shift() + } + this.formInline.memoriesChapter = value + this.formInline = { ...this.formInline } + }, handleSubmit() { this.$refs.ruleForm.validate(valid => { if (valid) { diff --git a/jero-web/src/views/dashboard/components/myList.vue b/jero-web/src/views/dashboard/components/myList.vue index 82e3f7663..3f1f4e533 100644 --- a/jero-web/src/views/dashboard/components/myList.vue +++ b/jero-web/src/views/dashboard/components/myList.vue @@ -86,8 +86,8 @@ }) }, prcClick(row) { - let index = row.taskIds.lastIndexOf(',') - row.taskIds = row.taskIds.slice(0, index) + // let index = row.taskIds.lastIndexOf(',') + // row.taskIds = row.taskIds.slice(0, index) if (row.prcType == '1') { let newUrl = this.$router.resolve({ path: '/handshakeProcess', diff --git a/jero-web/src/views/processCenter/components/evaluatorFeedback.vue b/jero-web/src/views/processCenter/components/evaluatorFeedback.vue new file mode 100644 index 000000000..a9b0fcefe --- /dev/null +++ b/jero-web/src/views/processCenter/components/evaluatorFeedback.vue @@ -0,0 +1,316 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue b/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue new file mode 100644 index 000000000..1711ad4fe --- /dev/null +++ b/jero-web/src/views/processCenter/components/evaluatorFeedbackList.vue @@ -0,0 +1,217 @@ + + + + + \ No newline at end of file diff --git a/jero-web/src/views/processCenter/components/feedbackInformation.vue b/jero-web/src/views/processCenter/components/feedbackInformation.vue index 2eb3fd2ce..31a6c837d 100644 --- a/jero-web/src/views/processCenter/components/feedbackInformation.vue +++ b/jero-web/src/views/processCenter/components/feedbackInformation.vue @@ -7,16 +7,16 @@
-
+
{{$t('feedbackPoint')+(index+1)}}
@@ -26,7 +26,11 @@ * {{$t('relevantSections')}}
- + {{$t('questionsSuggestions')}}
- + { - return [] + default: (() => { + return [] }) - }, + } }, data() { return { formInline: {}, - disabled:false, + disabled: false, rules: {}, - uploadIndex:'', + uploadIndex: '', dataList: [] } }, mounted() { - if (this.feedbackDataList && this.feedbackDataList.length > 0){ - this.dataList = this.feedbackDataList - this.dataList = [...this.dataList] - }else{ - this.dataList = [ - { - relatedSection: '', - issueOrSuggest: '', - reason: '', - accessoryFile: '' - } - ] - } + this.$nextTick(() => { + if (this.feedbackDataList && this.feedbackDataList.length > 0) { + this.formInline.dataList = this.feedbackDataList + this.formInline = { ...this.formInline } + } else { + this.formInline.dataList = [ + { + relatedSection: '', + issueOrSuggest: '', + reason: '', + accessoryFile: '' + } + ] + } + this.formInline = { ...this.formInline } + }) + }, methods: { - clickButtonToUpload(item,index) { + clickButtonToUpload(item, index) { this.$refs.uploadFile.perentHandleFunc() this.$refs.uploadFile.visible = true this.uploadName = item this.uploadIndex = index - getAction('sys/common/getFileInfos', { id: this.dataList[this.uploadIndex][this.uploadName] }).then((res) => { + getAction('sys/common/getFileInfos', { id: this.formInline.dataList[this.uploadIndex][this.uploadName] }).then((res) => { if (res.success) { this.$refs.uploadFile.perentHandleFunc(res.result) } else { @@ -155,21 +166,21 @@ }) } /** 赋值给当前对应的表单文件 */ - this.dataList[this.uploadIndex][this.uploadName] = attIdList.join(',') - this.dataList = [...this.dataList] + this.formInline.dataList[this.uploadIndex][this.uploadName] = attIdList.join(',') + this.formInline = { ...this.formInline } }, addData() { - this.dataList.push({ + this.formInline.dataList.push({ relatedSection: '', issueOrSuggest: '', reason: '', accessoryFile: '' }) - this.dataList = [...this.dataList] + this.formInline = { ...this.formInline } }, deleteData() { - this.dataList.pop() - this.dataList = [...this.dataList] + this.formInline.dataList.pop() + this.formInline = { ...this.formInline } } } } diff --git a/jero-web/src/views/processCenter/processForm/evaluationProcess/index.vue b/jero-web/src/views/processCenter/processForm/evaluationProcess/index.vue index 94ec268cf..bddbf9efc 100644 --- a/jero-web/src/views/processCenter/processForm/evaluationProcess/index.vue +++ b/jero-web/src/views/processCenter/processForm/evaluationProcess/index.vue @@ -12,11 +12,16 @@ :url="url" :standardContentQuery="queryProject" /> - + { - this.lawsOpinionAssessmentResult() - }) + this.isDisplay = true + // this.queryTaskDetailByTask(() => { + // this.lawsOpinionAssessmentResult() + // }) }, methods: { ...mapGetters(['userInfo']), @@ -161,8 +170,9 @@ }) }, submit() { - let dataList = this.$refs.feedbackInformationRef.dataList - this.insertBatch(dataList, 2) + this.$refs.evaluatorFeedbackRef.submitData() + // let dataList = this.$refs.feedbackInformationRef.dataList + // this.insertBatch(dataList, 2) }, completeTask() { let query = { diff --git a/jero-web/src/views/processCenter/processForm/regulatoryProcess/index.vue b/jero-web/src/views/processCenter/processForm/regulatoryProcess/index.vue index 165d6d740..9d30aecbb 100644 --- a/jero-web/src/views/processCenter/processForm/regulatoryProcess/index.vue +++ b/jero-web/src/views/processCenter/processForm/regulatoryProcess/index.vue @@ -134,7 +134,7 @@ }, preservation() { this.loading = true - let dataList = this.$refs.feedbackInformationRef.dataList + let dataList = this.$refs.feedbackInformationRef.formInline.dataList this.insertBatch(dataList, 1) }, insertBatch(list, num) { @@ -162,7 +162,7 @@ }) }, submit() { - let dataList = this.$refs.feedbackInformationRef.dataList + let dataList = this.$refs.feedbackInformationRef.formInline.dataList this.insertBatch(dataList, 2) }, completeTask() { diff --git a/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue b/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue index e3981099f..ce1eaeec0 100644 --- a/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue +++ b/jero-web/src/views/processCenter/processList/tabComponents/processCenter/index.vue @@ -154,8 +154,8 @@ }) }, dealWith(row) { - let index = row.taskIds.lastIndexOf(',') - row.taskIds = row.taskIds.slice(0, index) + // let index = row.taskIds.lastIndexOf(',') + // row.taskIds = row.taskIds.slice(0, index) if (row.prcType == '1') { let newUrl = this.$router.resolve({ path: '/handshakeProcess',