Merge remote-tracking branch 'origin/dev_20230216' into dev_20230216

This commit is contained in:
gaojiabao
2023-03-30 19:07:30 +08:00
13 changed files with 691 additions and 321 deletions
@@ -193,13 +193,6 @@ public class ActSarItemsEOService {
String resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue); String resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue);
sarStandardsInfoEO.setSarStandAttrEOStr(resData); sarStandardsInfoEO.setSarStandAttrEOStr(resData);
QueryWrapper<SarStandardsInfo> wrapper=new QueryWrapper<>();
wrapper.eq(null!=sarStandardsInfoEO.getStandName(),"STAND_NAME",sarStandardsInfoEO.getStandName())
.eq(null!=sarStandardsInfoEO.getStandNumber(),"STAND_NUMBER",sarStandardsInfoEO.getStandNumber());
Integer s=sarStandardsInfoEOService.count(wrapper);
if (s>0){
throw new AdcDaBaseException("当前标准编号和中文名称已存在");
}
// 根据标准号判断数据是否已存在 // 根据标准号判断数据是否已存在
//2021年4月9日 此处检查当前是否存在standId //2021年4月9日 此处检查当前是否存在standId
String standnumber = ""; String standnumber = "";
@@ -254,37 +247,37 @@ public class ActSarItemsEOService {
sarStandAttrInfoEOService.updateStandInfo(sarStandardsInfoEO.getId(),"XGLC",relatePro); sarStandAttrInfoEOService.updateStandInfo(sarStandardsInfoEO.getId(),"XGLC",relatePro);
String content = "新增一条相关流程:" +prcName+" "+prcNum; String content = "新增一条相关流程:" +prcName+" "+prcNum;
sarUpdLogEOService.createBaseLog(sarStandardsInfoEO.getId(),standType+"_STAND",content); sarUpdLogEOService.createBaseLog(sarStandardsInfoEO.getId(),standType+"_STAND",content);
}else if (standlist != null && !standlist.isEmpty()) {//Id不存在,但是标准号存在的情况 // }else if (standlist != null && !standlist.isEmpty()) {//Id不存在,但是标准号存在的情况
String standId = standlist.get(0).getId(); // String standId = standlist.get(0).getId();
SarStandardsInfo query = new SarStandardsInfo(); // SarStandardsInfo query = new SarStandardsInfo();
query.setId(standId); // query.setId(standId);
sarStandardsInfoEOService.attrInfoDetails(query); // sarStandardsInfoEOService.attrInfoDetails(query);
Map<String, Object> attrInfoMap = query.getAttrInfoMap(); // Map<String, Object> attrInfoMap = query.getAttrInfoMap();
if(attInfoMap!=null && !attInfoMap.isEmpty()){ // if(attInfoMap!=null && !attInfoMap.isEmpty()){
updateStandFileFieldData(attInfoMap,attrInfoMap); // updateStandFileFieldData(attInfoMap,attrInfoMap);
resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue); // resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue);
sarStandardsInfoEO.setSarStandAttrEOStr(resData); // sarStandardsInfoEO.setSarStandAttrEOStr(resData);
} // }
// 查询原相关流程 // // 查询原相关流程
String relatePro = sarStandAttrInfoEOService.selectFieldValByStandId("XGLC",standId); // String relatePro = sarStandAttrInfoEOService.selectFieldValByStandId("XGLC",standId);
if (StringUtils.isNotBlank(relatePro)) { // if (StringUtils.isNotBlank(relatePro)) {
String[] processSplit = relatePro.split(","); // String[] processSplit = relatePro.split(",");
Set<String> processSet = new HashSet<>(); // Set<String> processSet = new HashSet<>();
for(String sData:processSplit){ // for(String sData:processSplit){
processSet.add(sData); // processSet.add(sData);
} // }
processSet.add(prcNum); // processSet.add(prcNum);
relatePro = StringUtils.join(processSet.toArray(), ","); // relatePro = StringUtils.join(processSet.toArray(), ",");
} else { // } else {
relatePro = prcNum; // relatePro = prcNum;
} // }
// 编辑标准 // // 编辑标准
sarStandardsInfoEO.setId(standId); // sarStandardsInfoEO.setId(standId);
sarStandardsInfoEOService.updateSarStandardsInfo(sarStandardsInfoEO); // sarStandardsInfoEOService.updateSarStandardsInfo(sarStandardsInfoEO);
// 编辑相关流程 // // 编辑相关流程
sarStandAttrInfoEOService.updateStandInfo(standId,"XGLC",relatePro); // sarStandAttrInfoEOService.updateStandInfo(standId,"XGLC",relatePro);
String content = "新增一条相关流程:" +prcName+" "+prcNum; // String content = "新增一条相关流程:" +prcName+" "+prcNum;
sarUpdLogEOService.createBaseLog(standId,standType+"_STAND",content); // sarUpdLogEOService.createBaseLog(standId,standType+"_STAND",content);
} else {//标准号、ID都不存在的情况 } else {//标准号、ID都不存在的情况
// 新增方法 // 新增方法
sarStandardsInfoEOService.createSarStandardsInfo(sarStandardsInfoEO); sarStandardsInfoEOService.createSarStandardsInfo(sarStandardsInfoEO);
@@ -156,6 +156,9 @@ public class WebMvcConfig implements WebMvcConfigurer {
addInterceptor.excludePathPatterns("/api/lawss/sarBussionessStand/importSarBussionessStandFile"); addInterceptor.excludePathPatterns("/api/lawss/sarBussionessStand/importSarBussionessStandFile");
addInterceptor.excludePathPatterns("/api/sarLawsDetailedList/sar-laws-detailed-list/importData"); addInterceptor.excludePathPatterns("/api/sarLawsDetailedList/sar-laws-detailed-list/importData");
//企标标准导入模板下载
addInterceptor.excludePathPatterns("/api/lawss/sarBussionessStand/exportTemplateFile");
//doc文檔重新轉換 //doc文檔重新轉換
addInterceptor.excludePathPatterns("/api/sarStandardsInfo/sar-standards-info/convertDocAll_GNW"); addInterceptor.excludePathPatterns("/api/sarStandardsInfo/sar-standards-info/convertDocAll_GNW");
addInterceptor.excludePathPatterns("/api/sarStandardsInfo/sar-standards-info/convertDocAll_QB"); addInterceptor.excludePathPatterns("/api/sarStandardsInfo/sar-standards-info/convertDocAll_QB");
@@ -6,6 +6,7 @@ import com.adc.da.slrs.StandardQA.entity.*;
import com.adc.da.slrs.StandardQA.service.Impl.AskQuestionsServiceImpl; import com.adc.da.slrs.StandardQA.service.Impl.AskQuestionsServiceImpl;
import com.adc.da.slrs.StandardQA.service.Impl.AskUserServiceImpl; import com.adc.da.slrs.StandardQA.service.Impl.AskUserServiceImpl;
import com.adc.da.slrs.StandardQA.service.Impl.SubscriptionServiceImpl; import com.adc.da.slrs.StandardQA.service.Impl.SubscriptionServiceImpl;
import com.adc.da.slrs.sarStandardsInfo.service.impl.SarStandardsInfoServiceImpl;
import com.adc.da.util.LoginUserUtil; import com.adc.da.util.LoginUserUtil;
import com.adc.da.util.UUIDUtils; import com.adc.da.util.UUIDUtils;
import com.adc.da.util.http.ResponseMessage; import com.adc.da.util.http.ResponseMessage;
@@ -16,6 +17,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -41,6 +44,9 @@ public class AskQuestionsController extends BaseController<AskQuestions> {
@Autowired @Autowired
private SubscriptionServiceImpl subscriptionService; private SubscriptionServiceImpl subscriptionService;
private static final Logger logger = LoggerFactory.getLogger(SarStandardsInfoServiceImpl.class);
@GetMapping("/getAskQuestionsPage") @GetMapping("/getAskQuestionsPage")
public ResponseMessage<IPage<AskQuestions>> getAskQuestionsPage(AskQuestionsPage askQuestions){ public ResponseMessage<IPage<AskQuestions>> getAskQuestionsPage(AskQuestionsPage askQuestions){
IPage<AskQuestions> iPage = new Page<>(); IPage<AskQuestions> iPage = new Page<>();
@@ -175,6 +181,7 @@ public class AskQuestionsController extends BaseController<AskQuestions> {
List<String> askUserListUser = new ArrayList<>(); List<String> askUserListUser = new ArrayList<>();
for (AskUser user: askUserList){ for (AskUser user: askUserList){
askUserListUser.add(user.getUsid()); askUserListUser.add(user.getUsid());
logger.info("问答中心分配人员"+user.getUsid()+"===="+user.getAsdId()+"总人数:"+askUserList.size());
} }
JSONArray jsonArray = JSONArray.fromObject(askUserListUser); JSONArray jsonArray = JSONArray.fromObject(askUserListUser);
objectObjectHashMap.put("questioner",jsonArray); objectObjectHashMap.put("questioner",jsonArray);
@@ -84,9 +84,24 @@ public class SarBussStandAttrInfoExecl extends BaseEntity {
private String xgjh; private String xgjh;
//附件 //发布稿附件
private String fbgbuss;
//编制说明附件
private String bzsmbuss;
//历史版本附件
private String lsbbbuss;
//其他文件附件
private String qtwjbuss; private String qtwjbuss;
//修改单附件
private String xgd;
//关联文件附件
private String glwjbuss;
//标准中文名称 //标准中文名称
private String standName; private String standName;
@@ -109,7 +124,7 @@ public class SarBussStandAttrInfoExecl extends BaseEntity {
private String issueTime; private String issueTime;
//标准编号 //标准编号
private String standCode; private String standNumber;
//标准英文名称 //标准英文名称
private String standEnName; private String standEnName;
@@ -171,6 +186,8 @@ public class SarBussStandAttrInfoExecl extends BaseEntity {
//备案日期 //备案日期
private String barq; private String barq;
private String menuId;
@TableField(exist = false) @TableField(exist = false)
private Map<String, Object> attrInfoMap = new LinkedHashMap<>(); private Map<String, Object> attrInfoMap = new LinkedHashMap<>();
@@ -1,6 +1,7 @@
package com.adc.da.slrs.sarBussionessStand.controller; package com.adc.da.slrs.sarBussionessStand.controller;
import cn.hutool.core.util.ZipUtil;
import com.adc.da.Log.BusinessType; import com.adc.da.Log.BusinessType;
import com.adc.da.Log.EpcLog; import com.adc.da.Log.EpcLog;
import com.adc.da.common.FileUnZip; import com.adc.da.common.FileUnZip;
@@ -21,6 +22,7 @@ import com.adc.da.http.PageInfo;
import com.adc.da.http.ResponseMessage; import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result; import com.adc.da.http.Result;
import com.adc.da.util.LoginUserUtil; import com.adc.da.util.LoginUserUtil;
import com.adc.da.util.UUIDUtils;
import com.adc.da.util.exception.AdcDaBaseException; import com.adc.da.util.exception.AdcDaBaseException;
import com.adc.da.util.utils.IOUtils; import com.adc.da.util.utils.IOUtils;
import com.adc.da.util.utils.StringUtils; import com.adc.da.util.utils.StringUtils;
@@ -31,7 +33,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -46,9 +51,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.*;
import java.io.IOException;
import java.io.OutputStream;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@@ -416,9 +419,9 @@ public class SarBussionessStandController extends BaseController<SarBussionessSt
@ApiOperation(value = "导入功能") @ApiOperation(value = "导入功能")
@PostMapping("/importSarBussionessStandFile") @PostMapping("/importSarBussionessStandFile")
public ResponseMessage<String> importSarBussionessStandFile(@RequestParam(value = "file",required = false)MultipartFile file) throws Exception{ public ResponseMessage<String> importSarBussionessStandFile(@RequestParam(value = "file",required = false)MultipartFile file,String menuId) throws Exception{
return sarBussionessStandEOService.importSarBussionessStandFile(file); return sarBussionessStandEOService.importSarBussionessStandFile(file,menuId);
} }
@ApiOperation(value = "|SarBussionessStand|判断原文译文") @ApiOperation(value = "|SarBussionessStand|判断原文译文")
@@ -438,5 +441,67 @@ public class SarBussionessStandController extends BaseController<SarBussionessSt
public ResponseMessage newRpetitionFile (){ public ResponseMessage newRpetitionFile (){
return sarBussionessStandEOService.newRpetitionFile(); return sarBussionessStandEOService.newRpetitionFile();
} }
@ApiOperation(value = "|SarBussionessStand|导入模板下载")
@GetMapping("/exportTemplateFile")
public void exportTemplateFile(String fileName,HttpServletResponse response, HttpServletRequest request)throws Exception{
OutputStream os = null;
OutputStream excelOS = null;
HSSFWorkbook workbook = new HSSFWorkbook();
String fileOriName = "标准导入模板";
if (org.apache.commons.lang3.StringUtils.isNotEmpty(fileName)) {
fileOriName = fileName;
}
try{
//创建临时文件夹
String fileNowPath = filePath + "/tempZip/" + UUIDUtils.randomUUID20() + "/" + fileOriName;
File nowFile = new File(fileNowPath);
if (nowFile.exists()){
nowFile.delete();
}
nowFile.mkdirs();
String fileName2 = "导入模板.xls";
HSSFSheet sheetItems = workbook.createSheet("模板");
sheetItems.setDefaultColumnWidth(16);
HSSFCellStyle cellStyle =workbook.createCellStyle();
cellStyle.setWrapText(true);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
Row rowHeader = sheetItems.createRow(0);//开始创建标题行
String exportFieldName = FieldConvertUtil.exportFieldName;
if (org.apache.commons.lang3.StringUtils.isNotBlank(exportFieldName)) {
String[] headerArr = exportFieldName.split(",");
for (int i=0;i < headerArr.length; i++) {
rowHeader.createCell(i).setCellValue(headerArr[i]);
}
}
String repFileName = fileName2.replaceAll("/","_");
excelOS = new FileOutputStream(fileNowPath + "/" + repFileName);
response.setHeader("Content-Disposition",
"attachment; filename=\""+ ReadExcel.encodeFileName(fileOriName+".zip", request) +"\"");
response.setContentType("application/force-download");
response.flushBuffer();
os = response.getOutputStream();
workbook.write(excelOS);
excelOS.flush();
excelOS.close();
ZipUtil.zip(fileNowPath,fileNowPath+".zip");
FileInputStream fis = new FileInputStream(fileNowPath+".zip");
int len = 0;
while ((len = fis.read()) != -1) {
os.write(len);
}
os.flush();
os.close(); // 后开先关
fis.close(); // 先开后关
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new com.adc.da.exception.AdcDaBaseException("下载文件失败,请重试");
} finally {
org.apache.poi.util.IOUtils.closeQuietly(os);
org.apache.poi.util.IOUtils.closeQuietly(excelOS);
}
}
} }
@@ -58,7 +58,7 @@ public interface ISarBussionessStandService extends IService<SarBussionessStand>
ResponseMessage emptyFileAnewStorage(String type); ResponseMessage emptyFileAnewStorage(String type);
ResponseMessage<String> importSarBussionessStandFile(MultipartFile file)throws Exception; ResponseMessage<String> importSarBussionessStandFile(MultipartFile file,String menuId)throws Exception;
ResponseMessage repetitionFile(); ResponseMessage repetitionFile();
@@ -66,10 +66,13 @@ import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage;
import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo;
import com.adc.da.slrs.sarUpdLog.service.ISarUpdLogService; import com.adc.da.slrs.sarUpdLog.service.ISarUpdLogService;
import com.adc.da.slrs.sarUser.service.ITsUserService; import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.slrs.sarVppsTree.dao.SarVppsTreeDao;
import com.adc.da.slrs.sysInfo.service.SysInfoEOService; import com.adc.da.slrs.sysInfo.service.SysInfoEOService;
import com.adc.da.sys.constant.ValueStateEnum; import com.adc.da.sys.constant.ValueStateEnum;
import com.adc.da.sys.dao.DicTypeEODao; import com.adc.da.sys.dao.DicTypeEODao;
import com.adc.da.sys.dao.UserEODao;
import com.adc.da.sys.entity.DicTypeEO; import com.adc.da.sys.entity.DicTypeEO;
import com.adc.da.sys.entity.UserEO;
import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard; import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard;
import com.adc.da.sys.sarMenuStandard.service.ISarMenuStandardService; import com.adc.da.sys.sarMenuStandard.service.ISarMenuStandardService;
import com.adc.da.sys.util.LoginUserUtil; import com.adc.da.sys.util.LoginUserUtil;
@@ -104,6 +107,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.net.ssl.*; import javax.net.ssl.*;
@@ -246,6 +250,12 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
@Autowired @Autowired
private SarStandardsInfoDao sarStandardsInfoDao; private SarStandardsInfoDao sarStandardsInfoDao;
@Autowired
private ITsResourceService tsResourceService;
@Autowired
private SarVppsTreeDao sarVppsTreeDao;
@Override @Override
public SarBussionessStand getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId){ public SarBussionessStand getStandInfoByReviseStatus(String reviseStatus,String standSort,String taskId){
SarBussionessStand bussionessStand = new SarBussionessStand(); SarBussionessStand bussionessStand = new SarBussionessStand();
@@ -1345,14 +1355,23 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
@Override @Override
public SarBussionessStand selectStandardsInfoByKey(String id) throws Exception{ public SarBussionessStand selectStandardsInfoByKey(String id) throws Exception{
String info = "企标文本状态";
String pid = dicTypeEODao.selectByPid(info);
List<DicTypeEO> dicTypeEOS = dicTypeEODao.selectByPidInfo(pid);
List<SarBussionessStand> sarBussionessStandlist = this.baseMapper.selectStandardsInfoByKey(id); List<SarBussionessStand> sarBussionessStandlist = this.baseMapper.selectStandardsInfoByKey(id);
SarBussionessStand sarBussionessStandEO = new SarBussionessStand(); SarBussionessStand sarBussionessStandEO = new SarBussionessStand();
if(!sarBussionessStandlist.isEmpty()) { if(!sarBussionessStandlist.isEmpty()) {
List<SarBussionessStand> newStandList = new ArrayList<>(); List<SarBussionessStand> newStandList = new ArrayList<>();
newStandList.add(sarBussionessStandlist.get(0)); newStandList.add(sarBussionessStandlist.get(0));
attrInfoShowDetails(newStandList); attrInfoShowDetails(newStandList);
for (DicTypeEO data : dicTypeEOS){
if(data.getDicTypeCode().equals(newStandList.get(0).getTextStatusBuss())){
newStandList.get(0).setTextStatusBussShow(data.getDicTypeName());
}
}
sarBussionessStandEO = newStandList.get(0); sarBussionessStandEO = newStandList.get(0);
} }
//企标文本状态
return sarBussionessStandEO; return sarBussionessStandEO;
} }
@@ -2019,296 +2038,488 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
* @throws Exception * @throws Exception
*/ */
@Override @Override
public ResponseMessage<String> importSarBussionessStandFile(MultipartFile file)throws Exception { public ResponseMessage<String> importSarBussionessStandFile(MultipartFile file,String menuId)throws Exception {
//给出头部信息
String[] headerExcel = {"企标编号,中文名称,英文名称,文本状态,发布日期,企标实施日期,企标制修订状态,起草部门,废止日期,代替企标编号,复审日期,起草人,被代替企标编号,采用标准,文件上传人员,采标程度,引用标准,适用车型,能源类型,适用产品线,上传时间,体系类别,备案日期,关联模块-乘用车VPPS编码,关联模块--乘用车vpps中文名称,关联模块--卡车VPPS编码,关联模块--卡车vpps中文名称,附件,企标类型,标准年份,"};
//获取文件全称 List<TsResource> tsResources = tsResourceService.getByMenuId(menuId);
String fileNameStr = file.getOriginalFilename(); if (ObjectUtils.isEmpty(tsResources)) {
//获取最后.的位置 return Result.error("请选择需要导入的目录");
int pos = fileNameStr.lastIndexOf("."); }
//获取压缩文件名称并以小写显示 //给出头部信息
String fileStr = fileNameStr.substring(pos + 1).toLowerCase(); String[] headerExcel = {"企标类别,标准年份,企标编号,中文名称,英文名称,文本状态,发布日期,企标实施日期,企标制修订状态,起草部门,代替企标编号,复审日期,起草人,被代替企标编号,采用标准,文件上传人员,采标程度,引用标准,适用车型,能源类型,适用产品线,体系类别,备案日期,关联模块-乘用车VPPS编码,关联模块--卡车VPPS编码,发布稿附件,编制说明附件,历史版本附件,其他文件附件,修改单附件,关联文件附件,"};
//校验是否是zip文件
if (!fileStr.equals("zip")){
return Result.error("请上传zip格式的文件");
}
//进行拼接获取文件名称
String fileName = fileNameStr.substring(0,pos);
//获取路径和文件名称
String path = filePath + "/" + fileName;
File saveDirectory = new File(path); //获取文件全称
//判断saveDirectory中是否是文件夹 String fileNameStr = file.getOriginalFilename();
if (!saveDirectory.isDirectory()){ //获取最后.的位置
saveDirectory.mkdir(); int pos = fileNameStr.lastIndexOf(".");
} //获取压缩文件名称并以小写显示
//将文件写入到指定路径中 String fileStr = fileNameStr.substring(pos + 1).toLowerCase();
FileUtils.copyInputStreamToFile(file.getInputStream(),new File(path + "/" + fileNameStr)); //校验是否是zip文件
int countSuccess = 0; if (!fileStr.equals("zip")) {
try { return Result.error("请上传zip格式的文件");
//解压缩 }
String zipEntryName = FileUnZip.unZipFiles(path + "/" + fileNameStr, path); //进行拼接获取文件名称
//获取文件信息 String fileName = fileNameStr.substring(0, pos);
List<File> fileList = readImpExcelFile(zipEntryName); //获取路径和文件名称
//判断获取到的文件数量 String path = filePath + "/" + fileName;
if (fileList.size() < 1){
return Result.error("上传的文件是空文件"); File saveDirectory = new File(path);
} //判断saveDirectory中是否是文件夹
//File excelfile = fileList.get(0); if (!saveDirectory.isDirectory()) {
int excel = 0; saveDirectory.mkdir();
for (File fileInfo:fileList){ }
String infoJson = ""; //将文件写入到指定路径中
if (fileInfo.getName().contains(".xls") || fileInfo.getName().contains(".xlsx")) { FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path + "/" + fileNameStr));
excel =excel+1; int countSuccess = 0;
if (excel > 1){ try {
return Result.error("导入了多个Excel文件"); //解压缩
String zipEntryName = FileUnZip.unZipFiles(path + "/" + fileNameStr, path);
//获取文件信息
List<File> fileList = readImpExcelFile(zipEntryName);
//判断获取到的文件数量
if (fileList.size() < 1) {
return Result.error("上传的文件是空文件");
} }
Workbook workbook = null; //File excelfile = fileList.get(0);
try { int excel = 0;
workbook = WorkbookFactory.create(fileInfo); for (File fileInfo : fileList) {
if (workbook != null){ String infoJson = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); if (fileInfo.getName().contains(".xls") || fileInfo.getName().contains(".xlsx")) {
Sheet sheet = workbook.getSheetAt(0); excel = excel + 1;
if (sheet != null){ if (excel > 1) {
StringBuilder sb = new StringBuilder(); return Result.error("导入了多个Excel文件");
//获取总条数 }
int rowNum = sheet.getLastRowNum(); Workbook workbook = null;
//循环遍历 try {
for (int i = 0;i <= rowNum;i++){ workbook = WorkbookFactory.create(fileInfo);
Row row = sheet.getRow(i); if (workbook != null) {
Row headerRow = sheet.getRow(0); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
boolean isBlank = sarLawsInfoEOService.isRowEmpty(row); Sheet sheet = workbook.getSheetAt(0);
if (row != null && !isBlank) { if (sheet != null) {
int columNos = headerRow.getLastCellNum();// 表头总共的列数 StringBuilder sb = new StringBuilder();
Map<String, String> rowList = new LinkedHashMap<>(); //获取总条数
for (int j = 0; j < columNos; j++) { int rowNum = sheet.getLastRowNum();
Cell cell = row.getCell(j); //循环遍历
Cell headerCell = headerRow.getCell(j); for (int i = 0; i <= rowNum; i++) {
if (cell != null) { Row row = sheet.getRow(i);
if (i == 0) { Row headerRow = sheet.getRow(0);
cell.setCellType(CellType.STRING); boolean isBlank = sarLawsInfoEOService.isRowEmpty(row);
sb.append(cell.getStringCellValue() + ","); if (row != null && !isBlank) {
} else { int columNos = headerRow.getLastCellNum();// 表头总共的列数
if (CellType.NUMERIC == cell.getCellType() && HSSFDateUtil.isCellDateFormatted(cell)) { Map<String, String> rowList = new LinkedHashMap<>();
Date d = cell.getDateCellValue(); for (int j = 0; j < columNos; j++) {
rowList.put(headerCell.getStringCellValue(), sdf.format(d)); Cell cell = row.getCell(j);
} else { Cell headerCell = headerRow.getCell(j);
cell.setCellType(CellType.STRING); if (cell != null) {
rowList.put(headerCell.getStringCellValue(), cell.getStringCellValue()); if (i == 0) {
} cell.setCellType(CellType.STRING);
} sb.append(cell.getStringCellValue() + ",");
} else { } else {
if (i != 0) { if (CellType.NUMERIC == cell.getCellType() && HSSFDateUtil.isCellDateFormatted(cell)) {
rowList.put(headerCell.getStringCellValue(), ""); Date d = cell.getDateCellValue();
} rowList.put(headerCell.getStringCellValue(), sdf.format(d));
} } else {
} cell.setCellType(CellType.STRING);
SarBussStandAttrInfoExecl sarBussStandAttrInfo = new SarBussStandAttrInfoExecl(); rowList.put(headerCell.getStringCellValue(), cell.getStringCellValue());
if (i != 0) { }
}
} else {
if (i != 0) {
rowList.put(headerCell.getStringCellValue(), "");
}
}
}
String fields = StringUtils.join(headerExcel);
String excelHeader = sb.toString();
if (!fields.equals(excelHeader)) {
workbook.close();
//删除原上传文件
FileUnZip.deleteDir(saveDirectory);
return Result.error("fail", "读取失败,请严格按照模板文件导入数据");
}
SarBussStandAttrInfoExecl sarBussStandAttrInfo = new SarBussStandAttrInfoExecl();
if (i != 0) {
String standCode = rowList.get("企标编号"); String standSort = rowList.get("企标类别");
sarBussStandAttrInfo.setStandCode(standCode); if (StringUtils.isNotBlank(standSort)) {
if (standSort.length() > 100) {
return Result.error("企标类别输入过长");
}
sarBussStandAttrInfo.setStandSort(standSort);
} else {
return Result.error("企标类别不能为空");
}
String standName = rowList.get("中文名称"); String standYear = rowList.get("标准年份");
if(StringUtils.isNotBlank(standName)){ if (StringUtils.isNotBlank(standYear)) {
if(standName.length()>100){ if (standYear.length() > 100) {
return Result.error("输入的标准名称过长"); return Result.error("标准年份输入过长");
} }
sarBussStandAttrInfo.setStandName(standName); sarBussStandAttrInfo.setStandYear(standYear);
} } else {
return Result.error("标准年份不能为空");
}
String standEnName = rowList.get("英文名称"); String standNumber = rowList.get("企标编号");
sarBussStandAttrInfo.setStandEnName(standEnName); sarBussStandAttrInfo.setStandNumber(standNumber);
String textStatusBuss = rowList.get("文本状态"); String standName = rowList.get("中文名称");
if (StringUtils.isNotBlank(textStatusBuss)){ if (StringUtils.isNotBlank(standName)) {
if (textStatusBuss.length() > 200){ if (standName.length() > 100) {
return Result.error("输入的文本状态过长"); return Result.error("输入的标准名称过长");
} }
sarBussStandAttrInfo.setTextStatusBuss(textStatusBuss); sarBussStandAttrInfo.setStandName(standName);
} } else {
return Result.error("中文名称不能为空");
}
SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd"); String standEnName = rowList.get("英文名称");
sarBussStandAttrInfo.setStandEnName(standEnName);
Date issueTime = sdfs.parse( rowList.get("发布日期")); String textStatusBuss = rowList.get("文本状态");
String issueTimeStr = sdfs.format(issueTime); if (StringUtils.isNotBlank(textStatusBuss)) {
if (StringUtils.isNotBlank(issueTimeStr)){ if (textStatusBuss.length() > 200) {
sarBussStandAttrInfo.setIssueTime(issueTimeStr); return Result.error("输入的文本状态过长");
} }
switch (textStatusBuss) {
case "发布":
sarBussStandAttrInfo.setTextStatusBuss("6jnqba2mby");
break;
case "被代替":
sarBussStandAttrInfo.setTextStatusBuss("quxujsuev5");
break;
case "参考":
sarBussStandAttrInfo.setTextStatusBuss("01i8opy07d");
break;
case "即将实施":
sarBussStandAttrInfo.setTextStatusBuss("rpvoxsvr60");
break;
case "有效":
sarBussStandAttrInfo.setTextStatusBuss("9z741h2m3j");
break;
case "直接上传":
sarBussStandAttrInfo.setTextStatusBuss("t769k1rkcy");
break;
case "作废":
sarBussStandAttrInfo.setTextStatusBuss("3lqnlgmgcn");
break;
case "待修订-指的其他企业标准":
sarBussStandAttrInfo.setTextStatusBuss("1w7cegukbs");
break;
default:
return Result.error("请提供准确的文本状态");
}
} else {
return Result.error("文本状态不能为空");
}
String issueTimeStr =rowList.get("发布日期");
if (issueTimeStr.contains("-")) {
sarBussStandAttrInfo.setIssueTime(issueTimeStr);
}else {
return Result.error("发布日期格式必须为年-月-日");
}
String putTimeStr = rowList.get("企标实施日期");
if (putTimeStr.contains("-")) {
sarBussStandAttrInfo.setPutTime(putTimeStr);
}else {
return Result.error("企标实施日期格式必须为年-月-日");
}
Date putTime = sdfs.parse(rowList.get("企标实施日期")); String revisionStatus = rowList.get("企标制修订状态");
String putTimeStr = sdfs.format(putTime); sarBussStandAttrInfo.setRevisionStatus(revisionStatus);
if (StringUtils.isNotBlank(putTimeStr)){
sarBussStandAttrInfo.setPutTime(putTimeStr); String qcdw = rowList.get("起草部门");
} if (StringUtils.isNotBlank(qcdw)) {
if (qcdw.length() > 100) {
return Result.error("输入的起草部门过长");
}
sarBussStandAttrInfo.setQcdw(qcdw);
}
String revisionStatus = rowList.get("企标制修订状态"); String dtqbbhbuss = rowList.get("代替企标编号");
sarBussStandAttrInfo.setRevisionStatus(revisionStatus); sarBussStandAttrInfo.setDtqbbhbuss(dtqbbhbuss);
String qcdw = rowList.get("起草部门"); String fsrqbuss = rowList.get("复审日期");
if (StringUtils.isNotBlank(qcdw)){ if (fsrqbuss.contains("-")) {
if (qcdw.length() > 100){ sarBussStandAttrInfo.setFsrqbuss(fsrqbuss);
return Result.error("输入的起草部门过长"); }else {
} return Result.error("复审日期格式必须为年-月-日");
sarBussStandAttrInfo.setQcdw(qcdw); }
}
String fzrqbuss = rowList.get("废止日期");
if (StringUtils.isNotBlank(fzrqbuss)){
sarBussStandAttrInfo.setFzrqbuss(fzrqbuss);
}
String dtqbbhbuss = rowList.get("代替企标编号"); String qcrbuss = rowList.get("起草人");
sarBussStandAttrInfo.setDtqbbhbuss(dtqbbhbuss); if (StringUtils.isNotBlank(qcrbuss)) {
if (qcrbuss.length() > 100) {
return Result.error("输入的起草人过长");
}
sarBussStandAttrInfo.setQcrbuss(qcrbuss);
}
String fsrqbuss = rowList.get("复审日期"); String bdtqbbhbuss = rowList.get("被代替企标编号");
if (StringUtils.isNotBlank(fsrqbuss)){ sarBussStandAttrInfo.setBdtqbbhbuss(bdtqbbhbuss);
sarBussStandAttrInfo.setFsrqbuss(fsrqbuss);
}
String qcrbuss = rowList.get("起草人");
if (StringUtils.isNotBlank(qcrbuss)){
if (qcrbuss.length() > 100){
return Result.error("输入的起草人过长");
}
sarBussStandAttrInfo.setQcrbuss(qcrbuss);
}
String bdtqbbhbuss = rowList.get("被代替企标编号");
sarBussStandAttrInfo.setBdtqbbhbuss(bdtqbbhbuss);
//// //采用标准 13 //// //采用标准 13
String cybz = rowList.get("采用标准"); String cybz = rowList.get("采用标准");
sarBussStandAttrInfo.setCybz(cybz); sarBussStandAttrInfo.setCybz(cybz);
String wjscrybuss = rowList.get("文件上传人员"); String wjscrybuss = rowList.get("文件上传人员");
sarBussStandAttrInfo.setWjscrybuss(wjscrybuss); sarBussStandAttrInfo.setWjscrybuss(wjscrybuss);
//// //采标程度 15 //// //采标程度 15
String cycd = rowList.get("采标程度"); String cycd = rowList.get("采标程度");
sarBussStandAttrInfo.setCycd(cycd); sarBussStandAttrInfo.setCycd(cycd);
//// //引用标准 16 //// //引用标准 16
String yybz = rowList.get("引用标准"); String yybz = rowList.get("引用标准");
sarBussStandAttrInfo.setYybz(yybz); sarBussStandAttrInfo.setYybz(yybz);
String sycxclass = rowList.get("适用车型"); String sycxclass = rowList.get("适用车型");
sarBussStandAttrInfo.setSycxclass(sycxclass); sarBussStandAttrInfo.setSycxclass(sycxclass);
String nylxclass = rowList.get("能源类型"); String nylxclass = rowList.get("能源类型");
sarBussStandAttrInfo.setNylxclass(nylxclass); sarBussStandAttrInfo.setNylxclass(nylxclass);
String sycpxclass = rowList.get("适用产品线"); String sycpxclass = rowList.get("适用产品线");
sarBussStandAttrInfo.setSycpxclass(sycpxclass); sarBussStandAttrInfo.setSycpxclass(sycpxclass);
String xcsjbuss = rowList.get("上传时间"); //上传时间
if (StringUtils.isNotBlank(xcsjbuss)){ Date date = new Date();
sarBussStandAttrInfo.setXcsjbuss(xcsjbuss); String format = sdf.format(date);
} sarBussStandAttrInfo.setXcsjbuss(format);
String txlbbuss = rowList.get("体系类别"); String txlbbuss = rowList.get("体系类别");
sarBussStandAttrInfo.setTxlbbuss(txlbbuss); sarBussStandAttrInfo.setTxlbbuss(txlbbuss);
//// //备案日期 22 //// //备案日期 22
String barq = rowList.get("备案日期"); String barq = rowList.get("备案日期");
sarBussStandAttrInfo.setBarq(barq); if (barq.contains("-")){
sarBussStandAttrInfo.setBarq(barq);
}else {
return Result.error("备案日期格式必须为年-月-日");
}
//// //关联模块-乘用车VPPS编码 23 //// //关联模块-乘用车VPPS编码 23
String cycvppsbmbuss = rowList.get("关联模块-乘用车VPPS编码"); String cycvppsbmbuss = rowList.get("关联模块-乘用车VPPS编码");
sarBussStandAttrInfo.setCycvppsbmbuss(cycvppsbmbuss); sarBussStandAttrInfo.setCycvppsbmbuss(cycvppsbmbuss);
//// //关联模块--乘用车vpps中文名称 24 // 关联模块-乘用车VPPS名称 24
String cycvppscnbuss = rowList.get("关联模块--乘用车vpps中文名称"); String cycvppscnbuss = sarVppsTreeDao.getCycvppscnbuss(sarBussStandAttrInfo.getCycvppsbmbuss());
sarBussStandAttrInfo.setCycvppscnbuss(cycvppscnbuss); sarBussStandAttrInfo.setCycvppscnbuss(cycvppscnbuss);
//// //关联模块--卡车VPPS编码 25 //// //关联模块--卡车VPPS编码 25
String kcvppsbmbuss = rowList.get("关联模块--卡车VPPS编码"); String kcvppsbmbuss = rowList.get("关联模块--卡车VPPS编码");
sarBussStandAttrInfo.setKcvppsbmbuss(kcvppsbmbuss); sarBussStandAttrInfo.setKcvppsbmbuss(kcvppsbmbuss);
//// //关联模块--卡车vpps中文名称 26 //关联模块--卡车VPPS名称 26
String kcvppscnbuss = rowList.get("关联模块--卡车vpps中文名称"); String kcvppscnbuss = sarVppsTreeDao.getKcvppscnbuss(sarBussStandAttrInfo.getKcvppsbmbuss());
sarBussStandAttrInfo.setKcvppscnbuss(kcvppscnbuss); sarBussStandAttrInfo.setKcvppscnbuss(kcvppscnbuss);
String qtwjbuss = rowList.get("附件"); String fbgbuss = rowList.get("发布稿附件");
if (qtwjbuss != null && !qtwjbuss.equals("")) { if (fbgbuss != null && !fbgbuss.equals("")) {
String[] split = qtwjbuss.split(","); String[] split = fbgbuss.split(",");
String s = ""; String s = "";
if (split.length != 0) { if (split.length != 0) {
for (int j = 0; j < split.length; j++) { for (int j = 0; j < split.length; j++) {
String name = fileInfo.getName(); String fjName = split[j];
String[] split1 = fileInfo.toString().split(name); int one = fjName.lastIndexOf(".");
File files = new File(split1[0] + split[j]); String split2 = fjName.substring(one + 1).toLowerCase();
AttFileVo attFileVo = attFileEOService.saveFileInfo(files); if (split2.equals("pdf") || split2.equals("ppt") || split2.equals("pptx") || split2.equals("doc") || split2.equals("docx") || split2.equals("xls") || split2.equals("xlsx")) {
if (StringUtils.isNotBlank(attFileVo.getId())) { String name = fileInfo.getName();
s += "," + attFileVo.getAttId(); String[] split1 = fileInfo.toString().split(name);
} else { File files = new File(split1[0] + split[j]);
s = attFileVo.getAttId(); AttFileVo attFileVo = attFileEOService.saveFileInfo(files);
} if (StringUtils.isNotBlank(attFileVo.getId())) {
} s += "," + attFileVo.getAttId();
sarBussStandAttrInfo.setQtwjbuss(s); } else {
} s = attFileVo.getAttId();
} }
} else {
logger.info(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
return Result.error(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
}
}
sarBussStandAttrInfo.setFbgbuss(s);
}
}
String standSort = rowList.get("企标类型"); String bzsmbuss = rowList.get("编制说明附件");
if (StringUtils.isNotBlank(standSort)){ if (bzsmbuss != null && !bzsmbuss.equals("")) {
if (standSort.length() > 100){ String[] split = bzsmbuss.split(",");
return Result.error("企标类型输入过长"); String s = "";
} if (split.length != 0) {
sarBussStandAttrInfo.setStandSort(standSort); for (int j = 0; j < split.length; j++) {
} String fjName = split[j];
int one = fjName.lastIndexOf(".");
String split2 = fjName.substring(one + 1).toLowerCase();
if (split2.equals("pdf") || split2.equals("ppt") || split2.equals("pptx") || split2.equals("doc") || split2.equals("docx") || split2.equals("xls") || split2.equals("xlsx")) {
String name = fileInfo.getName();
String[] split1 = fileInfo.toString().split(name);
File files = new File(split1[0] + split[j]);
AttFileVo attFileVo = attFileEOService.saveFileInfo(files);
if (StringUtils.isNotBlank(attFileVo.getId())) {
s += "," + attFileVo.getAttId();
} else {
s = attFileVo.getAttId();
}
} else {
logger.info(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
return Result.error(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
}
}
sarBussStandAttrInfo.setBzsmbuss(s);
}
}
String standYear = rowList.get("标准年份"); String lsbbbuss = rowList.get("历史版本附件");
if (StringUtils.isNotBlank(standYear)){ if (lsbbbuss != null && !lsbbbuss.equals("")) {
if (standYear.length() > 100){ String[] split = lsbbbuss.split(",");
return Result.error("标准年份输入过长"); String s = "";
} if (split.length != 0) {
sarBussStandAttrInfo.setStandYear(standYear); for (int j = 0; j < split.length; j++) {
} String fjName = split[j];
int one = fjName.lastIndexOf(".");
String split2 = fjName.substring(one + 1).toLowerCase();
if (split2.equals("pdf") || split2.equals("ppt") || split2.equals("pptx") || split2.equals("doc") || split2.equals("docx") || split2.equals("xls") || split2.equals("xlsx")) {
String name = fileInfo.getName();
String[] split1 = fileInfo.toString().split(name);
File files = new File(split1[0] + split[j]);
AttFileVo attFileVo = attFileEOService.saveFileInfo(files);
if (StringUtils.isNotBlank(attFileVo.getId())) {
s += "," + attFileVo.getAttId();
} else {
s = attFileVo.getAttId();
}
} else {
logger.info(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
return Result.error(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
}
}
sarBussStandAttrInfo.setLsbbbuss(s);
}
}
List<SarBussStandAttrInfoExecl> list = new ArrayList<>(); String qtwjbuss = rowList.get("其他文件附件");
list.add(sarBussStandAttrInfo); if (qtwjbuss != null && !qtwjbuss.equals("")) {
String[] split = qtwjbuss.split(",");
String s = "";
if (split.length != 0) {
for (int j = 0; j < split.length; j++) {
String fjName = split[j];
int one = fjName.lastIndexOf(".");
String split2 = fjName.substring(one + 1).toLowerCase();
if (split2.equals("pdf") || split2.equals("ppt") || split2.equals("pptx") || split2.equals("doc") || split2.equals("docx") || split2.equals("xls") || split2.equals("xlsx") || split2.equals("png")) {
String name = fileInfo.getName();
String[] split1 = fileInfo.toString().split(name);
File files = new File(split1[0] + split[j]);
AttFileVo attFileVo = attFileEOService.saveFileInfo(files);
if (StringUtils.isNotBlank(attFileVo.getId())) {
s += "," + attFileVo.getAttId();
} else {
s = attFileVo.getAttId();
}
} else {
logger.info(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx/png格式的附件");
return Result.error(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx/png格式的附件");
}
}
sarBussStandAttrInfo.setQtwjbuss(s);
}
}
com.alibaba.fastjson.JSONArray json = com.alibaba.fastjson.JSONArray.parseArray(JSON.toJSONString(list)); String xgd = rowList.get("修改单附件");
com.alibaba.fastjson.JSONObject jsonObjects = null; if (xgd != null && !xgd.equals("")) {
for (int j = 0; j < json.size(); j++) { String[] split = xgd.split(",");
jsonObjects = json.getJSONObject(j); String s = "";
} if (split.length != 0) {
infoJson = String.valueOf(jsonObjects); for (int j = 0; j < split.length; j++) {
String fjName = split[j];
int one = fjName.lastIndexOf(".");
String split2 = fjName.substring(one + 1).toLowerCase();
if (split2.equals("pdf") || split2.equals("ppt") || split2.equals("pptx") || split2.equals("doc") || split2.equals("docx") || split2.equals("xls") || split2.equals("xlsx")) {
String name = fileInfo.getName();
String[] split1 = fileInfo.toString().split(name);
File files = new File(split1[0] + split[j]);
AttFileVo attFileVo = attFileEOService.saveFileInfo(files);
if (StringUtils.isNotBlank(attFileVo.getId())) {
s += "," + attFileVo.getAttId();
} else {
s = attFileVo.getAttId();
}
} else {
logger.info(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
return Result.error(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
}
}
sarBussStandAttrInfo.setXgd(s);
}
}
//入库 String glwjbuss = rowList.get("关联文件附件");
processCreateBuss(infoJson); if (glwjbuss != null && !glwjbuss.equals("")) {
countSuccess++; String[] split = glwjbuss.split(",");
} String s = "";
} if (split.length != 0) {
} for (int j = 0; j < split.length; j++) {
String fields = StringUtils.join(headerExcel); String fjName = split[j];
String excelHeader = sb.toString(); int one = fjName.lastIndexOf(".");
if (!fields.equals(excelHeader)) { String split2 = fjName.substring(one + 1).toLowerCase();
workbook.close(); if (split2.equals("pdf") || split2.equals("ppt") || split2.equals("pptx") || split2.equals("doc") || split2.equals("docx") || split2.equals("xls") || split2.equals("xlsx")) {
//删除原上传文件 String name = fileInfo.getName();
FileUnZip.deleteDir(saveDirectory); String[] split1 = fileInfo.toString().split(name);
return Result.error("fail", "读取失败,请严格按照模板文件导入数据"); File files = new File(split1[0] + split[j]);
} AttFileVo attFileVo = attFileEOService.saveFileInfo(files);
} if (StringUtils.isNotBlank(attFileVo.getId())) {
} s += "," + attFileVo.getAttId();
}catch (Exception e){ } else {
FileUnZip.deleteDir(saveDirectory); s = attFileVo.getAttId();
return Result.error("导入失败,请查看需要导入的企标标准号和企标名称是否已存在"); }
} } else {
} logger.info(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
} return Result.error(fjName + "格式不正确,请上传pdf/ppt/pptx/doc/docx/xls/xlsx格式的附件");
String msg = "成功导入" + countSuccess + "条"; }
return Result.success("",msg,null); }
}catch (Exception e){ sarBussStandAttrInfo.setGlwjbuss(s);
FileUnZip.deleteDir(saveDirectory); }
return Result.error("导入失败,没有可导入的数据,请检查!"); }
}
sarBussStandAttrInfo.setMenuId(menuId);
List<SarBussStandAttrInfoExecl> list = new ArrayList<>();
list.add(sarBussStandAttrInfo);
com.alibaba.fastjson.JSONArray json = com.alibaba.fastjson.JSONArray.parseArray(JSON.toJSONString(list));
com.alibaba.fastjson.JSONObject jsonObjects = null;
for (int j = 0; j < json.size(); j++) {
jsonObjects = json.getJSONObject(j);
}
infoJson = String.valueOf(jsonObjects);
//入库
processCreateBuss(infoJson);
countSuccess++;
}
}
}
}
}
} catch (Exception e) {
FileUnZip.deleteDir(saveDirectory);
return Result.error("导入失败,请查看需要导入的企标标准号和企标名称是否已存在");
}
}
}
String msg = "成功导入" + countSuccess + "条";
return Result.success("", msg, null);
} catch (Exception e) {
FileUnZip.deleteDir(saveDirectory);
return Result.error("导入失败,没有可导入的数据,请检查!");
}
} }
private static List<File> readImpExcelFile(String path) { private static List<File> readImpExcelFile(String path) {
@@ -2365,6 +2576,12 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
} }
String resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue); String resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue);
sarBussionessStand.setSarStandAttrEOStr(resData); sarBussionessStand.setSarStandAttrEOStr(resData);
// String textStatusBussShow = sarBussionessStand.getTextStatusBuss();
//拼接企标编号
String standCode = sarBussionessStand.getStandSort() + " " + sarBussionessStand.getStandNumber() + "-" + sarBussionessStand.getStandYear();
sarBussionessStand.setStandCode(standCode);
// 根据标准号判断数据是否已存在 // 根据标准号判断数据是否已存在
//2021年4月9日 此处检查当前是否存在standId //2021年4月9日 此处检查当前是否存在standId
QueryWrapper<SarBussionessStand>queryWrapper = new QueryWrapper<>(); QueryWrapper<SarBussionessStand>queryWrapper = new QueryWrapper<>();
@@ -2375,13 +2592,6 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
//return Result.error("当前企标标准号和企标名称已存在"); //return Result.error("当前企标标准号和企标名称已存在");
throw new AdcDaBaseException("企标标准号"+ sarBussionessStand.getStandCode() +"或企标名称"+ sarBussionessStand.getStandName() +"已存在"); throw new AdcDaBaseException("企标标准号"+ sarBussionessStand.getStandCode() +"或企标名称"+ sarBussionessStand.getStandName() +"已存在");
} }
String standCode = "";
if(StringUtils.isNotBlank(sarBussionessStand.getStandCode()) && !"null".equals(sarBussionessStand.getStandCode())){
standCode = sarBussionessStand.getStandCode();
}
List<SarBussionessStand> lawsList = iSarBussionessStandService.selectStandardsByStandNumber(standCode);
//此处判断是否是带入的标准 //此处判断是否是带入的标准
if(StringUtils.isNotBlank(sarBussionessStand.getId())) { if(StringUtils.isNotBlank(sarBussionessStand.getId())) {
bussId = sarBussionessStand.getId(); bussId = sarBussionessStand.getId();
@@ -2396,28 +2606,10 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
// 编辑标准 // 编辑标准
iSarBussionessStandService.updateSarBussionessStand(sarBussionessStand); iSarBussionessStandService.updateSarBussionessStand(sarBussionessStand);
}else if (lawsList != null && !lawsList.isEmpty()) {//Id不存在,但是标准号存在的情况
String standId = lawsList.get(0).getId();
bussId = lawsList.get(0).getId();
SarBussionessStand query = new SarBussionessStand();
query.setId(standId);
iSarBussionessStandService.attrInfoDetails(query);
Map<String, Object> attrInfoMap = query.getAttrInfoMap();
if(attInfoMap!=null && !attInfoMap.isEmpty()){
// updateStandFileFieldData(attInfoMap,attrInfoMap);
resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue);
sarBussionessStand.setSarStandAttrEOStr(resData);
}
// 编辑标准
sarBussionessStand.setId(standId);
iSarBussionessStandService.updateSarBussionessStand(sarBussionessStand);
} else {//标准号、ID都不存在的情况 } else {//标准号、ID都不存在的情况
// 新增方法 // 新增方法
sarBussionessStand.setStandCode(standCode); //sarBussionessStand.setTextStatusBussShow(textStatusBussShow);
iSarBussionessStandService.createSarBussionessStand(sarBussionessStand); saveSarBussionessStand(sarBussionessStand);
} }
} }
return null; return null;
@@ -2482,8 +2674,8 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
//查询字典表,形成Hash映射提升速度 //查询字典表,形成Hash映射提升速度
List<DicTypeEO> dicInfo = dicTypeEODao.getDicInfo("dic_type_code", "dic_type_name"); List<DicTypeEO> dicInfo = dicTypeEODao.getDicInfo("dic_type_code", "dic_type_name");
Map<String, String> dicMap = dicInfo.stream() Map<String, String> dicMap = dicInfo.stream()
.filter(item-> !item.getDicTypeName().isEmpty()) .filter(item-> !item.getDicTypeCode().isEmpty())
.collect(Collectors.toMap(DicTypeEO::getDicTypeName,DicTypeEO::getDicTypeCode,(value1, value2 )->value2)); .collect(Collectors.toMap(DicTypeEO::getDicTypeCode,DicTypeEO::getDicTypeName,(value1, value2 )->value2));
for(SarBussStandAttrInfoExecl row : sarlist){ for(SarBussStandAttrInfoExecl row : sarlist){
attrInfoDetailsImport(row); attrInfoDetailsImport(row);
@@ -3868,12 +4060,14 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
String str = updateInfo(asList, data.getStandId(), data.getAttfid()); String str = updateInfo(asList, data.getStandId(), data.getAttfid());
if(StringUtils.isNotBlank(str)){ if(StringUtils.isNotBlank(str)){
objects.add(str); objects.add(str);
logger.info("产品附件的修改数据==========="+str);
} }
} }
} }
} }
} }
} }
logger.info("产品附件结束完成!==========="+objects.toString());
return Result.success(objects); return Result.success(objects);
} }
@@ -3964,4 +4158,54 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
} }
return "标准Id==="+standId+"修改文件==="+strFile+"删除文件=="+strFileInfo; return "标准Id==="+standId+"修改文件==="+strFile+"删除文件=="+strFileInfo;
} }
public ResponseMessage<SarBussionessStand> saveSarBussionessStand(SarBussionessStand sarBussionessStandEO) throws Exception {
//标准信息表中插入一条数据
sarBussionessStandEO.setValidFlag(ValueStateEnum.VALUE_TRUE.getValue());
sarBussionessStandEO.setCreationTime(new Date());
sarBussionessStandEO.setModifyTime(new Date());
sarBussionessStandEO.setId(UUIDUtils.randomUUID20());
if (StringUtils.isEmpty(sarBussionessStandEO.getMenuId())){
sarBussionessStandEO.setMenuId("3");
}
//根据新建标准所在目录,确定此处是否需要在标准目录关联表中插入数据
if (StringUtils.isNotEmpty(sarBussionessStandEO.getMenuId())) {
SarBussStandMenu sarStandMenuEO = new SarBussStandMenu();
sarStandMenuEO.setBussStandId(sarBussionessStandEO.getId());
sarStandMenuEO.setMenuId(sarBussionessStandEO.getMenuId());
sarStandMenuEO.setValidFlag(ValueStateEnum.VALUE_TRUE.getValue());
sarStandMenuEO.setId(UUIDUtils.randomUUID20());
sarBussStandMenuEODao.insertSelective(sarStandMenuEO);
}
int insertresult = this.baseMapper.insert(sarBussionessStandEO);
if (insertresult >= 1) {
// 根据代替标准号 ,修改代替标准号标准中的,被代替标准号
updateReplaceConnect(sarBussionessStandEO);
//编写预警信息
// writeWarnings(sarBussionessStandEO);
// 处理属性表信息
if (StringUtils.isNotBlank(sarBussionessStandEO.getSarStandAttrEOStr())) {
createStandAttrInfo(sarBussionessStandEO,false);
}
// 增加关联事件
String sortName = sysInfoEOService.getDicNamesByCodes(sarBussionessStandEO.getStandSort(),"JKSADFH564S");
String number = sortName + " " + sarBussionessStandEO.getStandCode();
if (StringUtils.isNotBlank(sarBussionessStandEO.getStandYear())) {
number += "-" + sarBussionessStandEO.getStandYear();
}
String content = "入库" + number + " 《" + sarBussionessStandEO.getStandName() + "》";
String prcCreateUser = StringUtils.isNotBlank(sarBussionessStandEO.getPrcCreateUser()) ? sarBussionessStandEO.getPrcCreateUser() : "";
sarUpdLogEOService.createBaseProcessLog(sarBussionessStandEO.getId(),"BUSINESS",content,prcCreateUser);
saveNewFeed(sarBussionessStandEO,"2");
if(elasflag) {
attrInfoShowSearchDetails(sarBussionessStandEO,"add");
createStandMQService.sendBussStandMQ(sarBussionessStandEO,"add");
}
return Result.success("00", "插入数据成功", sarBussionessStandEO);
} else {
return Result.error("01", "插入输入过程中出错");
}
}
} }
@@ -59,4 +59,7 @@ public interface ITsResourceService extends IService<TsResource> {
List<String> getChildMenuList(String menuId); List<String> getChildMenuList(String menuId);
boolean dealWithData(); boolean dealWithData();
List<TsResource> getByMenuId(String menuId)throws Exception;
} }
@@ -1,5 +1,6 @@
package com.adc.da.slrs.sarResource.service.impl; package com.adc.da.slrs.sarResource.service.impl;
import com.adc.da.exception.AdcDaBaseException;
import com.adc.da.http.ResponseMessage; import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result; import com.adc.da.http.Result;
@@ -490,6 +491,14 @@ public class TsResourceServiceImpl extends ServiceImpl<TsResourceDao, TsResource
return true; return true;
} }
@Override
public List<TsResource> getByMenuId(String menuId) throws Exception{
QueryWrapper<TsResource> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ID",menuId);
List<TsResource> tsResources = baseMapper.selectList(queryWrapper);
return tsResources;
}
public boolean dealData(TsResource tsResource,Map<String,TsResource> map){ public boolean dealData(TsResource tsResource,Map<String,TsResource> map){
if (null!=tsResource.getParentId() && !"".equals(tsResource.getParentId()) && !"0".equals(tsResource.getParentId())){ if (null!=tsResource.getParentId() && !"".equals(tsResource.getParentId()) && !"0".equals(tsResource.getParentId())){
tsResource.setParentIds(tsResource.getParentIds()+tsResource.getParentId()+","); tsResource.setParentIds(tsResource.getParentIds()+tsResource.getParentId()+",");
@@ -2,6 +2,8 @@ package com.adc.da.slrs.sarVppsTree.dao;
import com.adc.da.slrs.sarVppsTree.entity.SarVppsTree; import com.adc.da.slrs.sarVppsTree.entity.SarVppsTree;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/** /**
* <p> * <p>
@@ -13,4 +15,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface SarVppsTreeDao extends BaseMapper<SarVppsTree> { public interface SarVppsTreeDao extends BaseMapper<SarVppsTree> {
@Select("select sar_vpps_tree.CHINESE_NAME from sar_vpps_tree where sar_vpps_tree.VPPS_CODE = #{cycvppsbmbuss} and sar_vpps_tree.TYPE = 'car';")
String getCycvppscnbuss(@Param("cycvppsbmbuss") String cycvppsbmbuss);
@Select("select sar_vpps_tree.CHINESE_NAME from sar_vpps_tree where sar_vpps_tree.VPPS_CODE = #{kcvppsbmbuss} and sar_vpps_tree.TYPE = 'truck';")
String getKcvppscnbuss(@Param("kcvppsbmbuss") String kcvppsbmbuss);
} }
@@ -68,6 +68,8 @@ public class FieldConvertUtil {
"在产车实施日期(项目),EOP实施日期(项目),实施说明,认证交付物,认证对象,监管类型,适用车辆类型,责任部门,相关部门,FO,项目评估角色," + "在产车实施日期(项目),EOP实施日期(项目),实施说明,认证交付物,认证对象,监管类型,适用车辆类型,责任部门,相关部门,FO,项目评估角色," +
"文本说明,标签,要求类型,清单类型,入库模块"; "文本说明,标签,要求类型,清单类型,入库模块";
public static String exportFieldName = "企标类别,标准年份,企标编号,中文名称,英文名称,文本状态,发布日期,企标实施日期,企标制修订状态,起草部门,代替企标编号,复审日期,起草人,被代替企标编号,采用标准,文件上传人员,采标程度,引用标准,适用车型,能源类型,适用产品线,体系类别,备案日期,关联模块-乘用车VPPS编码,关联模块--卡车VPPS编码,发布稿附件,编制说明附件,历史版本附件,其他文件附件,修改单附件,关联文件附件";
/*** /***
* @Description: Clob类型 转String * @Description: Clob类型 转String
* @Author: super_liu * @Author: super_liu
@@ -85,4 +85,7 @@ public interface DicTypeEODao extends BaseMapper<DicTypeEO> {
*/ */
public List<DicTypeEO> getDicInfo(@Param("filed") String... filed); public List<DicTypeEO> getDicInfo(@Param("filed") String... filed);
String selectByPid(@Param("Info") String Info);
List<DicTypeEO> selectByPidInfo(@Param("pid") String pid);
} }
@@ -614,4 +614,21 @@
</select> </select>
<select id="selectByPid" resultType="java.lang.String">
SELECT
ID
FROM
ts_dictionary
WHERE
DICTIONARY_NAME = #{Info}
</select>
<select id="selectByPidInfo" resultType="com.adc.da.sys.entity.DicTypeEO">
SELECT
*
FROM
ts_dictype
WHERE
DIC_ID = #{pid}
</select>
</mapper> </mapper>