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

This commit is contained in:
yuezhihang
2021-08-20 15:20:54 +08:00
41 changed files with 1660 additions and 278 deletions
+6
View File
@@ -87,6 +87,12 @@
<artifactId>dom4j</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.adc</groupId>
<artifactId>adc-da-slrs</artifactId>
<version>3.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
@@ -22,6 +22,6 @@ public class CreateConvertMQService {
public void sendConvertMQ(AttFileEO attFileEO){
// 中间转换业务逻辑
//发送消息队列
this.rabbitTemplate.convertAndSend("convert-exchange_SQ_GSAR", "convert-key_SQ_GSAR", attFileEO);
// this.rabbitTemplate.convertAndSend("convert-exchange_SQ_GSAR", "convert-key_SQ_GSAR", attFileEO);
}
}
@@ -1,217 +1,412 @@
//package com.adc.da.convert.mq;
//
//import com.adc.da.att.entity.AttFileEO;
//import com.adc.da.att.service.IAttFileEOService;
//import com.adc.da.convert.common.DocConverterPdf;
//import com.adc.da.util.http.ResponseMessage;
//import com.adc.da.util.http.Result;
//import com.adc.da.util.utils.StringUtils;
//import com.rabbitmq.client.Channel;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.amqp.rabbit.annotation.Exchange;
//import org.springframework.amqp.rabbit.annotation.Queue;
//import org.springframework.amqp.rabbit.annotation.QueueBinding;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.amqp.support.AmqpHeaders;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.messaging.Message;
//import org.springframework.stereotype.Component;
//
//import java.io.File;
//import java.util.Date;
//import java.util.Map;
//
//@Component
//public class SendConvertMQService {
//
// // 文档转换远程服务IP地址
// @Value("${convert.host}")
// private String convertHost;
//
// @Autowired
// private IAttFileEOService iAttFileEOService;
//
// private static final Logger logger = LoggerFactory.getLogger(SendConvertMQService.class);
//
// @RabbitListener(bindings = @QueueBinding(
// value = @Queue(value = "createConvertStandMQ_SQ_GSAR", durable = "true"),
// exchange = @Exchange(value = "convert-exchange_SQ_GSAR", ignoreDeclarationExceptions = "true"),
// key = "convert-key_SQ_GSAR"))
// public void createMQ(AttFileEO attFileEO, Message message, Channel channel) throws Exception{
// try{
// try{
// Thread.sleep(5000);
// insertOrUpdateStandInfo(attFileEO);
// }catch(InterruptedException e){
// logger.error(e.toString());
// Thread.currentThread().interrupt();
// }
// } catch (Exception e) {
// logger.error("文档转换消息队列进入添加数据方法前失败!");
// logger.error(e.getMessage(),e);
// }finally {
// Long tag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG);
// channel.basicAck(tag,false);
// logger.debug("文档转换消息确认成功!!!!!!!!!");
// }
//
// }
//
// public void insertConvertMsg(Map<String,Object> convertInfo) throws Exception{
// String attId = "";
// String filePath = "";
// String otId = "";
// String addUpFlag = "";
// String convertType = "";
// String standFileClassify = "";
// String lawsFileClassify = "";
// //资源与文件关联表转换成功的ID
// String standFilePdfId = "";
// if(convertInfo.get("attId") != null){
// attId = convertInfo.get("attId").toString();
// }
// if(convertInfo.get("path") != null){
// filePath = convertInfo.get("path").toString();
// }
// if(convertInfo.get("otId") != null){
// otId = convertInfo.get("otId").toString();
// }
// if(convertInfo.get("addUpFlag") != null){
// addUpFlag = convertInfo.get("addUpFlag").toString();
// }
// if(convertInfo.get("convertType") != null){
// convertType = convertInfo.get("convertType").toString();
// }
// if(convertInfo.get("standFilePdfId") != null){
// standFilePdfId = convertInfo.get("standFilePdfId").toString();
// }
// if(convertInfo.get("standFileClassify") != null){
// standFileClassify = convertInfo.get("standFileClassify").toString();
// }
// if(convertInfo.get("lawsFileClassify") != null){
// lawsFileClassify = convertInfo.get("lawsFileClassify").toString();
// }
//
// //更改完转换表信息后开始转换
// OtConvertMqEO convertMqEO = new OtConvertMqEO();
// if("0".equals(addUpFlag)){
// convertMqEO.setLawsId(convertInfo.get("lawsId").toString());
//// convertMqEO.setResId(convertInfo.get("resId").toString());
// }
// convertMqEO.setConvertType(convertType);
// convertMqEO.setAttId(attId);
// convertMqEO.setOriAttId(attId);
// convertMqEO.setId(otId);
// convertMqEO.setFilePath(filePath);
// convertMqEO.setAddOrUp(addUpFlag);
// convertMqEO.setPdfId(standFilePdfId);
// convertMqEO.setStandFileClassify(standFileClassify);
// convertMqEO.setLawsFileClassify(lawsFileClassify);
// int i = Integer.valueOf(convertInfo.get("againNum").toString());
// convertMqEO.setAgainNum(i);
// docUploadConvert(convertMqEO);
// }
//
// /**
// * @Author yangxuenan
// * @Description 文件转换
// * Date 2018/8/21 15:51
// * @Param [path]
// * @return com.adc.da.util.http.ResponseMessage
// **/
// public ResponseMessage docUploadConvert(OtConvertMqEO convertMqEO) throws Exception{
// //保存在数据库中的ID
// String path = localFilePath + convertMqEO.getFilePath();
// String convertId = convertMqEO.getId();
// try {
// //进入转换方法中,修改OT_CONVERT表中状态为转换中
// convertMqEO.setId(convertId);
// convertMqEO.setModifyTime(new Date());
// convertMqEO.setMqState(3);
// convertMqEOService.updateByPrimaryKeySelective(convertMqEO);
// //开始转换。。。。。。
// if(!"".equals(path)){
// String converfilename = path.replaceAll("\\\\", "/");
// logger.info("*****上传路径:*******"+localFilePath);
// logger.info("************文件路径:**********" + convertMqEO.getFilePath());
// logger.info("************接口:**********" + port);
// logger.info("*****上传路径替换,加入文件名*******"+converfilename);
// //截取文件类型
// int index = converfilename.lastIndexOf(".");
// String fileType = converfilename.substring(index,converfilename.length());
// String fileOriName = converfilename.substring(0,index);
// //调用转换类DocConverter,并将需要转换的文件传递给该类的构造方法
// DocConverterPdf d = new DocConverterPdf(converfilename,fileType);
// d.setConvertHost(convertHost);
// //调用conver方法开始转换,先执行doc2pdf()将office文件转换为pdf;再执行pdf2swf()将pdf转换为swf;
// File getPdf = d.conver(fileType);
// //调用getswfPath()方法,打印转换后的swf文件路径
// String dPath = d.getpdfPath();
// logger.info("*****转换后的pdf文件路径*******"+dPath);
// //判断是否转换成功,修改数据状态
// if(!dPath.isEmpty() && getPdf.length()>0){
// // 上传转换后文件
// String pdfId = attFileEOService.saveFileAttId(getPdf);
// logger.info("////////转换后文件id"+pdfId);
// int count = 0;
// if("0".equals(convertMqEO.getAddOrUp())){
// count = insertConvertDocToFiles(convertMqEO,pdfId,fileOriName,fileType);
// } else {
// //查询之前在资源与文件关联表中是否有转换成功的数据,如果有执行修改,没有执行新增
// if(StringUtils.isNotEmpty(convertMqEO.getPdfId())){
// count = updateConvertDocToFIles(convertMqEO,pdfId);
// } else {
// count = insertConvertDocToFiles(convertMqEO,pdfId,fileOriName,fileType);
// }
// }
// convertMqEO.setId(convertId);
// if (count>0) {
// // 转换成功
// convertMqEO.setModifyTime(new Date());
// convertMqEO.setMqState(1);
// convertMqEOService.updateByPrimaryKeySelective(convertMqEO);
// } else {
// // 转换失败
// convertMqEO.setModifyTime(new Date());
// convertMqEO.setMqState(2);
// convertMqEOService.updateByPrimaryKeySelective(convertMqEO);
// }
// } else {
// // 转换失败
// convertMqEO.setId(convertId);
// convertMqEO.setModifyTime(new Date());
// convertMqEO.setMqState(2);
// convertMqEOService.updateByPrimaryKeySelective(convertMqEO);
// if(convertMqEO.getAgainNum()<=5){
// throw new Exception("转换失败");
// }
// }
// return Result.success(dPath);
// } else {
// logger.error("转换时未获取到文件路径!");
// return Result.error("文件存储失败,请重试");
// }
// } catch (Exception e) {
// // 转换失败
// logger.error("转换过程中失败!");
// logger.error(e.getMessage(),e);
// convertMqEO.setId(convertId);
// convertMqEO.setMqState(2);
// convertMqEOService.updateByPrimaryKeySelective(convertMqEO);
// this.restartUploadConvert(convertMqEO);
// return Result.error("r0072", "文件转换失败,请重试");
// }
// }
//
// /**
// * 文档转换逻辑
// * @param attFileEO
// */
// public void insertOrUpdateStandInfo(AttFileEO attFileEO){
//
// }
//
//
//}
package com.adc.da.convert.mq;
import com.adc.da.att.entity.AttFileEO;
import com.adc.da.att.service.IAttFileEOService;
import com.adc.da.common.ConvertMqEO;
import com.adc.da.common.SarTypeEnum;
import com.adc.da.common.UseModuleEnum;
import com.adc.da.convert.common.DocConverterPdf;
import com.adc.da.convert.otConvertMq.entity.OtConvertMq;
import com.adc.da.convert.otConvertMq.service.IOtConvertMqService;
import com.adc.da.mq.service.CreateMQService;
import com.adc.da.slrs.sarBussStandFile.dao.SarBussStandFileDao;
import com.adc.da.slrs.sarBussStandFile.entity.SarBussStandFile;
import com.adc.da.slrs.sarStandFile.dao.SarStandFileDao;
import com.adc.da.slrs.sarStandFile.entity.SarStandFile;
import com.adc.da.sys.util.LoginUserUtil;
import com.adc.da.util.http.ResponseMessage;
import com.adc.da.util.http.Result;
import com.adc.da.util.utils.StringUtils;
import com.adc.da.util.utils.UUID;
import com.rabbitmq.client.Channel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
import java.io.File;
import java.util.Date;
import java.util.Map;
@Component
public class SendConvertMQService {
// 文档转换远程服务IP地址
@Value("${convert.host}")
private String convertHost;
@Value("${server.port}")
private String port;
@Value("${file.path}")
private String localFilePath;
@Autowired
private IAttFileEOService attFileEOService;
@Autowired
private CreateMQService convertMq;
@Autowired
private IOtConvertMqService convertMqEOService;
@Autowired
private SarStandFileDao sarStandFileEODao;
@Autowired
private SarBussStandFileDao sarBussStandFileEODao;
private static final Logger logger = LoggerFactory.getLogger(SendConvertMQService.class);
@RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "createConvertStandMQ_SQ_GSAR", durable = "true"),
exchange = @Exchange(value = "convert-exchange_SQ_GSAR", ignoreDeclarationExceptions = "true"),
key = "convert-key_SQ_GSAR"))
public void createMQ(Map<String,Object> convertInfo, Message message, Channel channel) throws Exception{
try{
try{
Thread.sleep(5000);
insertConvertMsg(convertInfo);
}catch(InterruptedException e){
logger.error(e.toString());
Thread.currentThread().interrupt();
}
} catch (Exception e) {
logger.error("文档转换消息队列进入添加数据方法前失败!");
logger.error(e.getMessage(),e);
}finally {
Long tag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG);
channel.basicAck(tag,false);
logger.debug("文档转换消息确认成功!!!!!!!!!");
}
}
public void insertConvertMsg(Map<String,Object> convertInfo) throws Exception{
String attId = "";
String filePath = "";
String otId = "";
String addUpFlag = "";
String convertType = "";
String standFileClassify = "";
String lawsFileClassify = "";
//资源与文件关联表转换成功的ID
String standFilePdfId = "";
if(convertInfo.get("attId") != null){
attId = convertInfo.get("attId").toString();
}
if(convertInfo.get("path") != null){
filePath = convertInfo.get("path").toString();
}
if(convertInfo.get("otId") != null){
otId = convertInfo.get("otId").toString();
}
if(convertInfo.get("addUpFlag") != null){
addUpFlag = convertInfo.get("addUpFlag").toString();
}
if(convertInfo.get("convertType") != null){
convertType = convertInfo.get("convertType").toString();
}
if(convertInfo.get("standFilePdfId") != null){
standFilePdfId = convertInfo.get("standFilePdfId").toString();
}
if(convertInfo.get("standFileClassify") != null){
standFileClassify = convertInfo.get("standFileClassify").toString();
}
if(convertInfo.get("lawsFileClassify") != null){
lawsFileClassify = convertInfo.get("lawsFileClassify").toString();
}
//更改完转换表信息后开始转换
OtConvertMq convertMqEO = new OtConvertMq();
if("0".equals(addUpFlag)){
convertMqEO.setLawsId(convertInfo.get("lawsId").toString());
// convertMqEO.setResId(convertInfo.get("resId").toString());
}
convertMqEO.setConvertType(convertType);
convertMqEO.setAttId(attId);
convertMqEO.setOriAttId(attId);
convertMqEO.setId(otId);
convertMqEO.setFilePath(filePath);
convertMqEO.setAddOrUp(addUpFlag);
convertMqEO.setPdfId(standFilePdfId);
convertMqEO.setStandFileClassify(standFileClassify);
convertMqEO.setLawsFileClassify(lawsFileClassify);
int i = Integer.valueOf(convertInfo.get("againNum").toString());
convertMqEO.setAgainNum(i);
docUploadConvert(convertMqEO);
}
/**
* @Author yangxuenan
* @Description 文件转换
* Date 2018/8/21 15:51
* @Param [path]
* @return com.adc.da.util.http.ResponseMessage
**/
public ResponseMessage docUploadConvert(OtConvertMq convertMqEO) throws Exception{
//保存在数据库中的ID
String path = localFilePath + convertMqEO.getFilePath();
String convertId = convertMqEO.getId();
try {
//进入转换方法中,修改OT_CONVERT表中状态为转换中
convertMqEO.setId(convertId);
convertMqEO.setModifyTime(new Date());
convertMqEO.setMqState(3);
convertMqEOService.updateById(convertMqEO);
//开始转换。。。。。。
if(!"".equals(path)){
String converfilename = path.replaceAll("\\\\", "/");
logger.info("*****上传路径:*******"+localFilePath);
logger.info("************文件路径:**********" + convertMqEO.getFilePath());
logger.info("************接口:**********" + port);
logger.info("*****上传路径替换,加入文件名*******"+converfilename);
//截取文件类型
int index = converfilename.lastIndexOf(".");
String fileType = converfilename.substring(index,converfilename.length());
String fileOriName = converfilename.substring(0,index);
//调用转换类DocConverter,并将需要转换的文件传递给该类的构造方法
DocConverterPdf d = new DocConverterPdf(converfilename,fileType);
d.setConvertHost(convertHost);
//调用conver方法开始转换,先执行doc2pdf()将office文件转换为pdf;再执行pdf2swf()将pdf转换为swf;
File getPdf = d.conver(fileType);
//调用getswfPath()方法,打印转换后的swf文件路径
String dPath = d.getpdfPath();
logger.info("*****转换后的pdf文件路径*******"+dPath);
//判断是否转换成功,修改数据状态
if(!dPath.isEmpty() && getPdf.length()>0){
// 上传转换后文件
String pdfId = attFileEOService.saveFileAttId(getPdf);
logger.info("////////转换后文件id"+pdfId);
int count = 0;
if("0".equals(convertMqEO.getAddOrUp())){
count = insertConvertDocToFiles(convertMqEO,pdfId,fileOriName,fileType);
} else {
//查询之前在资源与文件关联表中是否有转换成功的数据,如果有执行修改,没有执行新增
if(StringUtils.isNotEmpty(convertMqEO.getPdfId())){
count = updateConvertDocToFIles(convertMqEO,pdfId);
} else {
count = insertConvertDocToFiles(convertMqEO,pdfId,fileOriName,fileType);
}
}
convertMqEO.setId(convertId);
if (count>0) {
// 转换成功
convertMqEO.setModifyTime(new Date());
convertMqEO.setMqState(1);
convertMqEOService.updateById(convertMqEO);
} else {
// 转换失败
convertMqEO.setModifyTime(new Date());
convertMqEO.setMqState(2);
convertMqEOService.updateById(convertMqEO);
}
} else {
// 转换失败
convertMqEO.setId(convertId);
convertMqEO.setModifyTime(new Date());
convertMqEO.setMqState(2);
convertMqEOService.updateById(convertMqEO);
if(convertMqEO.getAgainNum()<=5){
throw new Exception("转换失败");
}
}
return Result.success(dPath);
} else {
logger.error("转换时未获取到文件路径!");
return Result.error("文件存储失败,请重试");
}
} catch (Exception e) {
// 转换失败
logger.error("转换过程中失败!");
logger.error(e.getMessage(),e);
convertMqEO.setId(convertId);
convertMqEO.setMqState(2);
convertMqEOService.updateById(convertMqEO);
this.restartUploadConvert(convertMqEO);
return Result.error("r0072", "文件转换失败,请重试");
}
}
public ResponseMessage restartUploadConvert(OtConvertMq convertInfo) throws Exception{
ConvertMqEO convertMqEO = new ConvertMqEO();
convertMqEO.setLawsId(convertInfo.getLawsId());
convertMqEO.setConvertType(convertInfo.getConvertType());
convertMqEO.setAttId(convertInfo.getAttId());
convertMqEO.setOriAttId(convertInfo.getOriAttId());
convertMqEO.setId(convertInfo.getId());
convertMqEO.setFilePath(convertInfo.getFilePath());
convertMqEO.setAddOrUp(convertInfo.getAddOrUp());
convertMqEO.setPdfId(convertInfo.getPdfId());
convertMqEO.setStandFileClassify(convertInfo.getStandFileClassify());
int countAdd = 0;
convertMqEO.setAddOrUp("1");
int againNumNew = Integer.valueOf(convertInfo.getAgainNum());
convertMqEO.setAgainNum(againNumNew+1);
convertMq.sendMQ(convertMqEO);
return Result.success("true","已重新加入转换","");
}
/**
* @Author yangxuenan
* @Description 修改标准法规文件表pdf信息
* Date 2018/10/31 17:09
* @Param [convertMq, pdfId]
* @return int
**/
public int updateConvertDocToFIles(OtConvertMq convertMq,String pdfId){
int countSuccess = 0;
if(SarTypeEnum.STAND.getValue().equals(convertMq.getConvertType())){
SarStandFile lawsFile = new SarStandFile();
lawsFile.setId(convertMq.getPdfId());
lawsFile.setAttId(pdfId);
lawsFile.setOriAttId(convertMq.getOriAttId());
lawsFile.setModifyTime(new Date());
lawsFile.setUseModel(UseModuleEnum.WEB_FILE.getValue());
countSuccess = sarStandFileEODao.updateById(lawsFile);
} else if (SarTypeEnum.LAWS.getValue().equals(convertMq.getConvertType())) {
// SarLawsFile lawsFile = new SarLawsFile();
// lawsFile.setId(convertMq.getPdfId());
// lawsFile.setAttId(pdfId);
// lawsFile.setOriAttId(convertMq.getOriAttId());
// lawsFile.setUseModel(UseModuleEnum.WEB_FILE.getValue());
// lawsFile.setModifyTime(new Date());
// countSuccess = sarLawsFileEODao.updateByPrimaryKeySelective(lawsFile);
} else if (SarTypeEnum.BUSINESS.getValue().equals(convertMq.getConvertType())) {
SarBussStandFile lawsFile = new SarBussStandFile();
lawsFile.setId(convertMq.getPdfId());
lawsFile.setAttId(pdfId);
lawsFile.setOriAttId(convertMq.getOriAttId());
lawsFile.setUseModule(UseModuleEnum.WEB_FILE.getValue());
lawsFile.setModifyTime(new Date());
countSuccess = sarBussStandFileEODao.updateById(lawsFile);
}else if (SarTypeEnum.RECORDS.getValue().equals(convertMq.getConvertType())) {
// SarBussRecordsFileEO lawsFile = new SarBussRecordsFileEO();
// lawsFile.setId(convertMq.getPdfId());
// lawsFile.setRecordsId(convertMq.getLawsId());
// lawsFile.setAttId(pdfId);
// lawsFile.setOriAttId(convertMq.getOriAttId());
// lawsFile.setUseModel(UseModuleEnum.WEB_FILE.getValue());
// lawsFile.setValidFlag("0");
// lawsFile.setCreationTime(new Date());
// lawsFile.setModifyTime(new Date());
// countSuccess = sarBussRecordsFileEODao.updateByPrimaryKeySelective(lawsFile);
}
else {
// SarFileSplitItemsFileEO lawsFile = new SarFileSplitItemsFileEO();
// lawsFile.setId(convertMq.getPdfId());
// lawsFile.setAttId(pdfId);
//// lawsFile.setOriAttId(convertMq.getOriAttId());
// lawsFile.setUseModel(UseModuleEnum.WEB_FILE.getValue());
// lawsFile.setModifyTime(new Date());
// countSuccess = sarFileSplitItemsFileEODao.updateByPrimaryKeySelective(lawsFile);
}
return countSuccess;
}
/**
* @Author yangxuenan
* @Description 添加标准法规文件表pdf信息
* Date 2018/10/30 21:52
* @Param [convertMq]
* @return int
**/
public int insertConvertDocToFiles(OtConvertMq convertMq,String pdfId,String fileOriName,String fileType) {
int countSuccess = 0;
String creationUser = LoginUserUtil.getUserId();
if(SarTypeEnum.STAND.getValue().equals(convertMq.getConvertType())){
SarStandFile lawsFile = new SarStandFile();
lawsFile.setId(UUID.randomUUID(20));
lawsFile.setStandId(convertMq.getLawsId());
// lawsFile.setResId(convertMq.getResId());
lawsFile.setAttId(pdfId);
lawsFile.setOriAttId(convertMq.getOriAttId());
lawsFile.setValidFlag("0");
lawsFile.setCreationUser(creationUser);
lawsFile.setCreationTime(new Date());
lawsFile.setModifyTime(new Date());
lawsFile.setUseModel(UseModuleEnum.WEB_FILE.getValue());
lawsFile.setStandFileClassify(convertMq.getStandFileClassify());
lawsFile.setFileName(fileOriName+".pdf");
lawsFile.setFileSuffix("pdf");
countSuccess = sarStandFileEODao.insert(lawsFile);
} else if (SarTypeEnum.LAWS.getValue().equals(convertMq.getConvertType())) {
// SarLawsFile lawsFile = new SarLawsFile();
// lawsFile.setId(UUID.randomUUID(20));
// lawsFile.setLawsId(convertMq.getLawsId());
// lawsFile.setResId(convertMq.getResId());
// lawsFile.setAttId(pdfId);
// lawsFile.setOriAttId(convertMq.getOriAttId());
// lawsFile.setUseModel(UseModuleEnum.WEB_FILE.getValue());
// lawsFile.setValidFlag("0");
// lawsFile.setCreationTime(new Date());
// lawsFile.setModifyTime(new Date());
// lawsFile.setLawsFileClassify(convertMq.getLawsFileClassify());
// lawsFile.setFileName(fileOriName+".pdf");
// lawsFile.setFileSuffix("pdf");
// countSuccess = sarLawsFileEODao.insertSelective(lawsFile);
} else if (SarTypeEnum.BUSINESS.getValue().equals(convertMq.getConvertType())) {
SarBussStandFile lawsFile = new SarBussStandFile();
lawsFile.setId(UUID.randomUUID(20));
lawsFile.setStandId(convertMq.getLawsId());
lawsFile.setResId(convertMq.getResId());
lawsFile.setAttId(pdfId);
lawsFile.setOriAttId(convertMq.getOriAttId());
lawsFile.setUseModule(UseModuleEnum.WEB_FILE.getValue());
lawsFile.setStandFileClassify(convertMq.getStandFileClassify());
lawsFile.setFileName(fileOriName+".pdf");
lawsFile.setFileSuffix("pdf");
lawsFile.setValidFlag(0);
lawsFile.setCreationTime(new Date());
lawsFile.setModifyTime(new Date());
countSuccess = sarBussStandFileEODao.insert(lawsFile);
}
else if (SarTypeEnum.RECORDS.getValue().equals(convertMq.getConvertType())) {
// SarBussRecordsFileEO lawsFile = new SarBussRecordsFileEO();
// lawsFile.setId(UUID.randomUUID(20));
// lawsFile.setRecordsId(convertMq.getLawsId());
// lawsFile.setResId(convertMq.getResId());
// lawsFile.setAttId(pdfId);
// lawsFile.setOriAttId(convertMq.getOriAttId());
// lawsFile.setUseModel(UseModuleEnum.WEB_FILE.getValue());
// lawsFile.setRecordsFileClassify(convertMq.getStandFileClassify());
// lawsFile.setFileName(fileOriName+".pdf");
// lawsFile.setFileSuffix("pdf");
// lawsFile.setValidFlag("0");
// lawsFile.setCreationTime(new Date());
// lawsFile.setModifyTime(new Date());
// countSuccess = sarBussRecordsFileEODao.insertSelective(lawsFile);
}else {
// SarFileSplitItemsFileEO lawsFile = new SarFileSplitItemsFileEO();
// lawsFile.setId(UUID.randomUUID(20));
// lawsFile.setStandId(convertMq.getLawsId());
// lawsFile.setResId(convertMq.getResId());
// lawsFile.setAttId(pdfId);
//// lawsFile.setOriAttId(convertMq.getOriAttId());
// lawsFile.setUseModel(UseModuleEnum.WEB_FILE.getValue());
// lawsFile.setValidFlag(0);
// lawsFile.setCreationTime(new Date());
// lawsFile.setModifyTime(new Date());
// countSuccess = sarFileSplitItemsFileEODao.insertSelective(lawsFile);
}
return countSuccess;
}
/**
* 文档转换逻辑
* @param attFileEO
*/
public void insertOrUpdateStandInfo(AttFileEO attFileEO){
}
}
@@ -1,4 +1,4 @@
package com.adc.da.convert.OtConvert.controller;
package com.adc.da.convert.otConvert.controller;
import com.adc.da.att.entity.AttFileEO;
@@ -9,7 +9,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.adc.da.convert.OtConvert.entity.OtConvert;
import com.adc.da.convert.otConvert.entity.OtConvert;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.adc.da.base.web.BaseController;
@@ -1,6 +1,6 @@
package com.adc.da.convert.OtConvert.dao;
package com.adc.da.convert.otConvert.dao;
import com.adc.da.convert.OtConvert.entity.OtConvert;
import com.adc.da.convert.otConvert.entity.OtConvert;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
@@ -1,8 +1,8 @@
package com.adc.da.convert.OtConvert.entity;
package com.adc.da.convert.otConvert.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
@@ -1,6 +1,6 @@
package com.adc.da.convert.OtConvert.service;
package com.adc.da.convert.otConvert.service;
import com.adc.da.convert.OtConvert.entity.OtConvert;
import com.adc.da.convert.otConvert.entity.OtConvert;
import com.baomidou.mybatisplus.extension.service.IService;
/**
@@ -1,8 +1,8 @@
package com.adc.da.convert.OtConvert.service.impl;
package com.adc.da.convert.otConvert.service.impl;
import com.adc.da.convert.OtConvert.entity.OtConvert;
import com.adc.da.convert.OtConvert.dao.OtConvertDao;
import com.adc.da.convert.OtConvert.service.IOtConvertService;
import com.adc.da.convert.otConvert.entity.OtConvert;
import com.adc.da.convert.otConvert.dao.OtConvertDao;
import com.adc.da.convert.otConvert.service.IOtConvertService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@@ -0,0 +1,23 @@
package com.adc.da.convert.otConvertMq.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.adc.da.convert.otConvertMq.entity.OtConvertMq;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.adc.da.base.web.BaseController;
/**
* <p>
* 文档转换记录信息表 前端控制器
* </p>
*
* @author super_liu
* @since 2021-08-20
*/
@RestController
@Api(description = "|OtConvertMq|")
@RequestMapping("/otConvertMq/ot-convert-mq")
public class OtConvertMqController extends BaseController<OtConvertMq> {
}
@@ -0,0 +1,16 @@
package com.adc.da.convert.otConvertMq.dao;
import com.adc.da.convert.otConvertMq.entity.OtConvertMq;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 文档转换记录信息表 Mapper 接口
* </p>
*
* @author super_liu
* @since 2021-08-20
*/
public interface OtConvertMqDao extends BaseMapper<OtConvertMq> {
}
@@ -0,0 +1,99 @@
package com.adc.da.convert.otConvertMq.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
/**
* <p>
* 文档转换记录信息表
* </p>
*
* @author super_liu
* @since 2021-08-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="OtConvertMq对象", description="文档转换记录信息表")
public class OtConvertMq extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId("ID")
private String id;
@ApiModelProperty(value = "消息队列编码")
@TableField("MQ_CODE")
private String mqCode;
@ApiModelProperty(value = "队列状态")
@TableField("MQ_STATE")
private Integer mqState;
@TableField("USER_ID")
private String userId;
@ApiModelProperty(value = "文件路径")
@TableField("FILE_PATH")
private String filePath;
@ApiModelProperty(value = "文件ID")
@TableField("ATT_ID")
private String attId;
@ApiModelProperty(value = "是否有效")
@TableField("VALID_FLAG")
private Integer validFlag;
@ApiModelProperty(value = "创建时间")
@TableField("CREATION_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date creationTime;
@ApiModelProperty(value = "修改时间")
@TableField("MODIFY_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date modifyTime;
@TableField(exist = false)
private String fileOriginPath;
//向文件表添加信息
@TableField(exist = false)
private String lawsId;
@TableField(exist = false)
private String resId;
@TableField(exist = false)
private String convertType;
@TableField(exist = false)
private String pdfPath;
@TableField(exist = false)
private String pdfId;
@TableField(exist = false)
private String addOrUp;
@TableField(exist = false)
private String oldFileName;
@TableField(exist = false)
private String standFileClassify;
@TableField(exist = false)
private String lawsFileClassify;
@TableField(exist = false)
private String oriAttId;
@TableField(exist = false)
private int againNum;
}
@@ -0,0 +1,16 @@
package com.adc.da.convert.otConvertMq.service;
import com.adc.da.convert.otConvertMq.entity.OtConvertMq;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 文档转换记录信息表 服务类
* </p>
*
* @author super_liu
* @since 2021-08-20
*/
public interface IOtConvertMqService extends IService<OtConvertMq> {
}
@@ -0,0 +1,20 @@
package com.adc.da.convert.otConvertMq.service.impl;
import com.adc.da.convert.otConvertMq.dao.OtConvertMqDao;
import com.adc.da.convert.otConvertMq.entity.OtConvertMq;
import com.adc.da.convert.otConvertMq.service.IOtConvertMqService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 文档转换记录信息表 服务实现类
* </p>
*
* @author super_liu
* @since 2021-08-20
*/
@Service
public class OtConvertMqServiceImpl extends ServiceImpl<OtConvertMqDao, OtConvertMq> implements IOtConvertMqService {
}
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.convert.OtConvert.dao.OtConvertDao">
<mapper namespace="com.adc.da.convert.otConvert.dao.OtConvertDao">
</mapper>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.convert.otConvertMq.dao.OtConvertMqDao">
</mapper>
+5
View File
@@ -24,6 +24,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- scheduled所属资源为spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>com.adc</groupId>
<artifactId>adc-da-convert</artifactId>
@@ -12,11 +12,13 @@ import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerF
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableEurekaClient
@EnableFeignClients
@ServletComponentScan
@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
@EnableScheduling
@MapperScan(value = {"com.adc.da.file.store"})
public class AdcDaApplication {
@@ -152,3 +152,8 @@ elas.flag=true
# 文档转换TCP通讯地址
convert.host=127.0.0.1
#convert.host=0.0.0.0
# =============================================================================
# scheduled 配置
# =============================================================================
isNotScheduled=true
+5
View File
@@ -11,6 +11,11 @@
<artifactId>adc-da-slrs</artifactId>
<dependencies>
<!-- scheduled所属资源为spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>com.adc</groupId>
<artifactId>adc-da-base</artifactId>
@@ -1,5 +1,7 @@
package com.adc.da.mq.service;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand;
import com.adc.da.slrs.sarLawsInfo.entity.SarLawsInfo;
import net.sf.json.JSONObject;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
@@ -29,4 +31,27 @@ public class CreateStandMQService {
//发送消息队列
this.rabbitTemplate.convertAndSend("stand-exchange_SQ_GSAR", "stand-key_SQ_GSAR", standMap);
}
public void sendLawsMQ(SarLawsInfo sarLawsInfoEO, String addOrUpdate) throws Exception{
JSONObject json = JSONObject.fromObject(sarLawsInfoEO);
String sarLawsInfoStr = json.toString();
Map<String,Object> lawsMap = new HashMap<String,Object>();
lawsMap.put("sarLaws", sarLawsInfoStr);
lawsMap.put("addOrUpdate", addOrUpdate);
//发送消息队列
this.rabbitTemplate.convertAndSend("laws-exchange_SQ_GSAR", "laws-key_SQ_GSAR", lawsMap);
}
public void sendBussStandMQ(SarBussionessStand sarBussionessStandEO, String addOrUpdate) throws Exception{
JSONObject json = JSONObject.fromObject(sarBussionessStandEO);
String sarBussInfoStr = json.toString();
Map<String,Object> bussMap = new HashMap<String,Object>();
bussMap.put("sarBuss", sarBussInfoStr);
bussMap.put("addOrUpdate", addOrUpdate);
//发送消息队列
this.rabbitTemplate.convertAndSend("buss-exchange_SQ_GSAR", "buss-key_SQ_GSAR", bussMap);
}
}
@@ -0,0 +1,291 @@
package com.adc.da.mq.service;
import com.adc.da.search.entity.StandLawsEO;
import com.adc.da.slrs.otSvpps.service.IOtSvppsService;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand;
import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService;
import com.adc.da.slrs.sysInfo.service.SysInfoEOService;
import com.adc.da.sys.dao.DicTypeEODao;
import com.adc.da.utils.util.InitStandAttrUtil;
import com.rabbitmq.client.Channel;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.json.JSONTokener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Component
public class SendBussMQService {
@Autowired
private ISarStandardsInfoService sarStandardsInfoService;
@Autowired
private SysInfoEOService sysInfoEOService;
@Autowired
private DicTypeEODao dicTypeEODao;
@Autowired
private IOtSvppsService otSvppsEOService;
private static final Logger logger = LoggerFactory.getLogger(SendBussMQService.class);
@RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "createBussMQ_SQ_GSAR", durable = "true"),
exchange = @Exchange(value = "buss-exchange_SQ_GSAR", ignoreDeclarationExceptions = "true"),
key = "buss-key_SQ_GSAR"))
public void createMQ(Map<String,Object> bussMap, Message message, Channel channel) throws Exception{
try{
try{
Thread.sleep(5000);
insertOrUpdateBussInfo(bussMap);
}catch(InterruptedException e){
logger.error(e.toString());
Thread.currentThread().interrupt();
}
} catch (Exception e) {
logger.error("搜索中心企业标准消息队列进入转换前失败!");
logger.error(e.getMessage(),e);
} finally {
Long tag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG);
channel.basicAck(tag,false);
logger.debug("消息确认成功!!!!!!!!!");
}
}
public void insertOrUpdateBussInfo(Map<String,Object> bussMap) throws Exception {
String addOrUpdate = bussMap.get("addOrUpdate").toString();
String FZRQFSRQ = null;
if ("updateFromAct".equals(addOrUpdate)){
addOrUpdate = "update";
FZRQFSRQ = "1";
}
String sarBuss = bussMap.get("sarBuss").toString();
JSONObject jsonobject = JSONObject.fromObject(sarBuss);
SarBussionessStand infoEO = (SarBussionessStand) JSONObject.toBean(jsonobject, SarBussionessStand.class);
String jsonobject1 = infoEO.getSarStandAttrEOStr();
Map<String,Object> map1 = new HashMap<>();
if (StringUtils.isEmpty(jsonobject1)){
map1.put("null","null");
}else {
map1 = JSONObject.fromObject(jsonobject1);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//修改索引信息表
// 往索引表中插入数据
String baseSearchContent = "";
String getCodeName = "";
Map<String,Object> saveMap = new HashMap<>();
String a = null;
try{
a = sdf.format(infoEO.getIssueTime());
saveMap.put("issue_time"," "+a);
}catch (Exception e){
saveMap.put("issue_time"," ");
}
//发布日期 高级查询
Date issue_time_data = null;
if (StringUtils.isNotBlank(a)) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
issue_time_data = format.parse(saveMap.get("issue_time")+" 00:00:00");
} catch (ParseException ignored) {
}
}
if (issue_time_data != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(issue_time_data);
int month = calendar.get(Calendar.MONTH)+1;
String times = calendar.get(Calendar.YEAR) + String.format("%02d", month) + String.format("%02d",calendar.get(Calendar.DAY_OF_MONTH));
saveMap.put("issue_time_data",Long.valueOf(times));
}else{
saveMap.put("issue_time_data",-1000000000000000000L);
}
try{
saveMap.put("put_time"," "+ sdf.format(infoEO.getPutTime()));
}catch (Exception e){
saveMap.put("put_time"," ");
}
//实施日期 高级查询
Date put_time_data = null;
if (StringUtils.isNotBlank(a)) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
put_time_data = format.parse(saveMap.get("put_time")+" 00:00:00");
} catch (ParseException ignored) {
}
}
if (put_time_data != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(put_time_data);
int month = calendar.get(Calendar.MONTH)+1;
String times = calendar.get(Calendar.YEAR) + String.format("%02d", month) + String.format("%02d",calendar.get(Calendar.DAY_OF_MONTH));
saveMap.put("put_time_data",Long.valueOf(times));
}else{
saveMap.put("put_time_data",-1000000000000000000L);
}
// saveMap.put("put_time",sdf.format(infoEO.getPutTime()));
saveMap.put("id",infoEO.getId());
saveMap.put("standSort",infoEO.getStandSort());
saveMap.put("stand_sort",infoEO.getStandSort());
if(StringUtils.isNotEmpty(infoEO.getStandSort())){
String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getStandSort());
saveMap.put("standSortShow",codeName);
getCodeName = codeName;
}
saveMap.put("standYear",infoEO.getStandYear());
saveMap.put("stand_year",infoEO.getStandYear());
saveMap.put("standNumber",infoEO.getStandCode());
saveMap.put("stand_code",infoEO.getStandCode());
saveMap = dealNumberMsg(saveMap,infoEO,getCodeName);
saveMap.put("nameshow",infoEO.getStandName());
saveMap.put("stand_name",infoEO.getStandName());
saveMap.put("standEnName",infoEO.getStandEnName());
saveMap.put("stand_en_name",infoEO.getStandEnName());
saveMap.put("replaceStandNum",infoEO.getReplaceStandNum());
saveMap.put("replace_stand_num",infoEO.getReplaceStandNum());
saveMap.put("replacedStandNum",infoEO.getReplacedStandNum());
saveMap.put("replaced_stand_num",infoEO.getReplacedStandNum());
saveMap.put("statecode",infoEO.getStandStatus());
saveMap.put("stand_status",infoEO.getStandStatus());
if (StringUtils.isNotEmpty(infoEO.getStandStatus())) {
String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getStandStatus());
saveMap.put("standstateshow",codeName);
}
//新加字段
saveMap.put("country",infoEO.getApplyCountry());
if(StringUtils.isNotEmpty(infoEO.getApplyCountry())){
String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getApplyCountry());
saveMap.put("countryShow",codeName);
}
// 自定义属性字段
String sarStandAttrEOStr = infoEO.getSarStandAttrEOStr();
Map<String,Object> attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr);
Map<String,Object> infoMap = infoEO.getAttrInfoMap();
if (attrInfoMap != null && !attrInfoMap.isEmpty()) {
attrInfoMap = sysInfoEOService.changeSelectInfo(attrInfoMap, "stand",baseSearchContent);
saveMap.putAll(attrInfoMap);
}
saveMap.put("type","bussstand");
saveMap.put("validFlag","0");
saveMap.put("content",infoEO.getFileIds());
String fieldInfo = InitStandAttrUtil.queryField;
List<String> fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
// 动态存储属性字段
for (String field : fieldInfoList) {
saveMap.put(field,attrInfoMap.getOrDefault(field,""));
String fieldValue = "";
if(infoMap.get(field) != null && StringUtils.isNotBlank(infoMap.get(field).toString())){
Object json= new JSONTokener(infoMap.get(field).toString()).nextValue();
if(!json.toString().equals("null")){
fieldValue = infoMap.get(field).toString();
}
}
saveMap.put(field+"Name",fieldValue);
}
//当建立代替时,产生的没有文件的问题
if (StringUtils.isBlank(String.valueOf(saveMap.get("content")))) {
String context = filterStringIsNotBlank(String.valueOf(saveMap.get("FBGBUSS")),true)
+ filterStringIsNotBlank(String.valueOf(saveMap.get("BZSMBUSS")),true)
+ filterStringIsNotBlank(String.valueOf(saveMap.get("LSBBBUSS")),true)
+ filterStringIsNotBlank(String.valueOf(saveMap.get("QTWJBUSS")),true)
+ filterStringIsNotBlank(String.valueOf(saveMap.get("GLWJBUSS")),true);
context = context.replace(",,", ",");
saveMap.put("content", context);
}
if("add".equals(addOrUpdate)){
sarStandardsInfoService.insertIntoIndexForMap(saveMap);
} else {
sarStandardsInfoService.updateIntoIndexForMap(saveMap);
}
}
private String filterStringIsNotBlank(String str,boolean boo){
String f = ",";
return (str == null || str.equals("") || str.equals("null")) ? "" : (boo ? str+f : str);
}
private String dateFormatToStr(String dateStr){
if(dateStr == null || dateStr.equals("")){
return "";
}
String dateToStr = "";
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateToStr = dateFormat.format(dateFormat.parse(dateStr.trim().substring(0,10)));
}catch (Exception e){
e.getMessage();
}
return dateToStr;
}
public Map<String,Object> dealNumberMsg (Map<String,Object> saveMap,SarBussionessStand infoEO,String getCodeName) {
/*if(StringUtils.isNotEmpty(infoEO.getStandYear())){
String num = getCodeName + " " + infoEO.getStandCode() + "-" + infoEO.getStandYear();
saveMap.put("numbershow",num);
int index = infoEO.getStandCode().indexOf(".");
int index1 = infoEO.getStandCode().indexOf(":");
String numberExpNull = "";
if(index > -1){
numberExpNull = getCodeName + infoEO.getStandCode() + "-" + num.replaceAll(" ","")
+ "-" + getCodeName + infoEO.getStandCode().substring(0,index) + "-" + infoEO.getStandCode().substring(0,index);
}else if(index1 > -1){
numberExpNull = getCodeName + infoEO.getStandCode() + "-" + num.replaceAll(" ","")
+ "-" + getCodeName + infoEO.getStandCode().substring(0,index1) + "-" + infoEO.getStandCode().substring(0,index1);
}else{
numberExpNull = getCodeName + infoEO.getStandCode() + "-" + num.replaceAll(" ","");
}
} else {
String number = getCodeName + " " + infoEO.getStandCode();
saveMap.put("numbershow",number);
String numberExpNull = "";
int index = infoEO.getStandCode().indexOf(".");
if(index > -1){
numberExpNull = getCodeName + infoEO.getStandCode() + "-" + number.replaceAll(" ","")
+ "-" + getCodeName + infoEO.getStandCode().substring(0,index) + "-" + infoEO.getStandCode().substring(0,index);
}else{
numberExpNull = getCodeName + infoEO.getStandCode() + "-" + number.replaceAll(" ","");
}
saveMap.put("numberExpNull",numberExpNull);
}*/
String number = infoEO.getStandCode();
saveMap.put("numbershow",number);
String numberExpNull = "";
int index = infoEO.getStandCode().indexOf(".");
if(index > -1){
numberExpNull = infoEO.getStandCode() + "-" + number.replaceAll(" ","")
+ "-" + infoEO.getStandCode().substring(0,index) + "-" + infoEO.getStandCode().substring(0,index);
}else{
numberExpNull = infoEO.getStandCode() + "-" + number.replaceAll(" ","");
}
saveMap.put("numberExpNull",numberExpNull);
return saveMap;
}
}
@@ -0,0 +1,136 @@
package com.adc.da.scheduled;
import com.adc.da.scheduled.dao.SarStandardInfoDao;
import com.adc.da.scheduled.dao.SarStandardItemDao;
import com.adc.da.scheduled.dao.SarStandardWarningDao;
import com.adc.da.scheduled.entity.DataDTO;
import com.adc.da.scheduled.entity.WarningEO;
import com.adc.da.util.UUIDUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.util.LinkedList;
import java.util.List;
@EnableScheduling
@Component
@Slf4j
public class ScheduledJob {
/**
* 根据配置文件设置是否开启定时器
*/
@Value("${isNotScheduled}")
private boolean isNotScheduled; //是否开启定时器
//
// @Scheduled(cron="*/5 * * * * ?")
// @Async
// public void StandScheduledJob(){
// System.out.println("hello");
//// if(isNotScheduled){
//// System.out.println(Thread.currentThread().getName() + " cron=0 0 1 1 * ? --- " + new Date()+"---START-01");
//// System.out.println(Thread.currentThread().getName() + " cron=0 0 1 1 * ? --- " + new Date()+"---End-01");
//// try{
//// Thread.sleep(2000);
//// }catch(Exception e){
//// }
//// }
// }
@Autowired
private SarStandardWarningDao sarStandardWarningDao;
@Autowired
private SarStandardItemDao sarStandardItemDao;
@Autowired
private SarStandardInfoDao sarStandardInfoDao;
@Scheduled(cron = "0 0 0 * * ?") //每天的凌晨0点执行
// @Scheduled(cron="*/5 * * * * ?")
@Async
public void schedulingTasks() {
/**
* 1.查询标准属性字段表(sar_stand_attr_info) XCXSSEQ ZCCSSRQ ZRGCS
* 联接标准信息表sar_standards_info表的STAND_NAME
* 2.查询分解单(条款表)
* 3.查询预警表
* 4.去掉预警表中已存在的的数据
* 5.插入预警表
*/
/**
mark:标识预警的种类
3:新车标准预警
4:在产车标准预警
1:新车条款预警
2:在产车条款预警
*/
System.out.println("开始执行预警!!!");
//预警期限
DataDTO dataDTO = new DataDTO();
dataDTO.setStartDate(LocalDate.now().plusDays(1)) //系统日期的下一天
.setEndDate(LocalDate.now().plusMonths(3).plusDays(1));//系统日期3个月后
LinkedList<WarningEO> warningList = new LinkedList<>();
//分解单(条款) 新车型 mark=1
List<WarningEO> itemForXCXSSRQ = sarStandardItemDao.select(dataDTO, "XCXSSRQ");
for (WarningEO warningEO : itemForXCXSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1")
.setMark("1")
.setPutTime(warningEO.getXCXSSRQ());
}
warningList.addAll(itemForXCXSSRQ);
//分解单(条款) 在产车型 mark=2
List<WarningEO> itemForZCCSSRQ = sarStandardItemDao.select(dataDTO, "ZCCSSRQ");
for (WarningEO warningEO : itemForZCCSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1")
.setMark("2")
.setPutTime(warningEO.getZCCSSRQ());
}
warningList.addAll(itemForZCCSSRQ);
//标准 新车型 预警 mark=3
List<WarningEO> standInfoXCXSSRQ = sarStandardInfoDao.select(dataDTO, "XCXSSRQ");
for (WarningEO warningEO : standInfoXCXSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1")
.setMark("3")
.setPutTime(warningEO.getXCXSSRQ());
}
warningList.addAll(standInfoXCXSSRQ);
//标准 在产车型 mark=4
List<WarningEO> standInfoZCCSSRQ = sarStandardInfoDao.select(dataDTO, "ZCCSSRQ");
for (WarningEO warningEO : standInfoZCCSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1")
.setMark("4")
.setPutTime(warningEO.getZCCSSRQ());
}
warningList.addAll(standInfoZCCSSRQ);
//持久化至预警表 忽略标准id和标志位都一样的数据
if (warningList.size()!=0){
int count = sarStandardWarningDao.ignoreInsert(warningList);
System.out.println("已预警 " + count + " 条标准或条款!!");
}
}
}
@@ -0,0 +1,17 @@
package com.adc.da.scheduled.dao;
import com.adc.da.scheduled.entity.DataDTO;
import com.adc.da.scheduled.entity.WarningEO;
import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface SarStandardInfoDao{
public List<WarningEO> select(DataDTO date, String str);
}
@@ -0,0 +1,17 @@
package com.adc.da.scheduled.dao;
import com.adc.da.scheduled.entity.DataDTO;
import com.adc.da.scheduled.entity.WarningEO;
import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface SarStandardItemDao extends BaseMapper{
public List<WarningEO> select(DataDTO date, String str);
}
@@ -0,0 +1,15 @@
package com.adc.da.scheduled.dao;
import com.adc.da.scheduled.entity.WarningEO;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.LinkedList;
@Repository
public interface SarStandardWarningDao extends IService<WarningEO> {
public int ignoreInsert(@Param(value = "warningEOS") LinkedList<WarningEO> warningEOS);
}
@@ -0,0 +1,18 @@
package com.adc.da.scheduled.entity;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDate;
@Data
@Accessors(chain = true)
public class DataDTO {
private LocalDate startDate;
private LocalDate endDate;
private String str;
}
@@ -0,0 +1,22 @@
package com.adc.da.scheduled.entity;
import com.adc.da.base.entity.BaseEntity;
import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
import java.util.Date;
@Data
@Accessors(chain = true)
public class WarningEO extends EarlyWarningEO {
private static final long serialVersionUID = 1L;
private Date XCXSSRQ;
private Date ZCCSSRQ;
}
@@ -67,7 +67,7 @@ public class SarBussStandFile extends BaseEntity {
@ApiModelProperty(value = "是否有效")
@TableField("VALID_FLAG")
private String validFlag;
private Integer validFlag;
@ApiModelProperty(value = "创建时间")
@TableField("CREATION_TIME")
@@ -86,4 +86,13 @@ public class SarBussStandFile extends BaseEntity {
@TableField(exist = false)
private List<String> idList = new ArrayList<>();
@TableField(exist = false)
private String useModule;
@TableField(exist = false)
private String resId;
@TableField(exist = false)
private Integer pageCount;
@TableField(exist = false)
private String fileOldName;
}
@@ -10,10 +10,10 @@ import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.sys.entity.DicTypeEO;
import com.adc.da.sys.service.IDicTypeEOService;
import com.adc.da.sys.util.LoginUserUtil;
import com.adc.da.http.PageInfo;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.util.LoginUserUtil;
import com.adc.da.util.utils.StringUtils;
import com.adc.da.utils.util.SarAdvanceSearchUtil;
import com.alibaba.fastjson.JSONObject;
@@ -168,33 +168,15 @@ public class SarBussionessStandController extends BaseController<SarBussionessSt
page.setAdvanceSearchStr(null);
}
}
page.setUserId(LoginUserUtil.getUserId());
if(page.getUserId() == null || page.getUserId().equals("")){
page.setUserId(LoginUserUtil.getUserId());
}
if(StringUtils.isNotBlank(page.getPaixu())){
String sql = page.getPaixu()+" "+page.getShunxu();
page.setSql(sql);
}else{
page.setOrderBy("SAR_BUSSIONESS_STAND.MODIFY_TIME DESC");
}
if(page.getMenuId() != null ){
QueryWrapper<TsResource> qw = new QueryWrapper<>();
qw.eq("ID",page.getMenuId());
qw.isNull("PARENT_ID");
List<TsResource> children = iTsResourceService.list(qw);
if(!children.isEmpty() || page.getMenuId().equals("nomenu")){
List<SarBussionessStand> rows = sarBussionessStandEOService.getSarBussionStandPage(page);
return Result.success(getPageInfo(page.getPager(), rows));
}
List<String> getMenuIdList = tsUserService.getResourceId(new TsResource());
if (getMenuIdList != null && !getMenuIdList.isEmpty()) {
page.setMenuRoleList(getMenuIdList);
} else {
page.setMenuRoleList(null);
}
List<String> ids = iTsResourceService.getChildMenuList(page.getMenuId());
if (ids != null && !ids.isEmpty()) {
page.setMenuAllChildrenIdList(ids);
}
}
List<SarBussionessStand> rows = sarBussionessStandEOService.getSarBussionStandPage(page);
return Result.success(getPageInfo(page.getPager(), rows));
// if (StringUtils.isNotBlank(page.getAdvanceSearchVOStr())) {
@@ -1,10 +1,14 @@
package com.adc.da.slrs.sarBussionessStand.dao;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand;
import com.adc.da.slrs.sarStandardsInfo.entity.RecommendVO;
import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage;
import com.adc.da.sys.entity.UserEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
/**
@@ -30,4 +34,66 @@ public interface SarBussionessStandDao extends BaseMapper<SarBussionessStand> {
List<SarBussionessStand> getBussionessStandInfoPage(SarBussionessStandEOPage page);
List<SarBussionessStand> getBussionessStandInfoPageByRole(SarBussionessStandEOPage page);
//企标复审使用
List<SarBussionessStand> getBussionessStandInfoQbfs(SarBussionessStandEOPage page);
int getBussionessStandInfoCountByRole(SarBussionessStandEOPage page);
List<SarBussionessStand> getSarBussionessStand(SarBussionessStandEOPage page);
//liwenxuan:标准法规更新数量及清单:企业标准
Integer selectBussionessStandardsCount(Date visitTime);
//liwenxuan:标准法规更新数量及清单:企业标准All
Integer selectBussionessStandardsCountAll();
List<SarBussionessStand> selectSarBussionesDownloadFileInfo(String id);
List<SarBussionessStand> selectStandardsByStandnumber(SarBussionessStand sarStandardsInfoEO);
List<SarBussionessStand> selectStandByStandNumber(@Param("standCode") String standCode);
/**
* 搜索中心查询相关推荐
*
* @param:
* @auther: gaoyan
* @date: 2018/11/10 9:22
*/
List<RecommendVO> selectRecommendStand(SarBussionessStandEOPage pagenew);
List<RecommendVO> selectCloseStand(SarBussionessStandEOPage pagenew);
List<SarBussionessStand> queryByPutTimeList(SarBussionessStand sarBussionessStandEO);
int updateByStandNum(SarBussionessStand s);
/**
* 根据唯一的标准code,修改标准的被代替标准号
* @param:
* @auther: gaoyan
* @date: 2018/11/10 9:22
*/
int updateRelacedNumByNumber(SarBussionessStandEOPage pagenew);
int updateRelaceNumByNumber(SarBussionessStandEOPage pagenew);
List<SarBussionessStand> selectBussStandByIdAndRole(SarBussionessStandEOPage pagenew);
void updateReplacedNumById(SarBussionessStand sarBussionessStandEO);
Integer selectStandColumn(@Param("columnName") String columnName);
List<SarBussionessStand> standRemindInfo(@Param("standCode") String standCode, @Param("standName") String standName);
int selectIsExit(@Param("id") String id);
List<String> selectPerson(String qbid);
List<UserEO> selectPersonAll(String qbid);
int updateByPrimaryKeySelectiveTimeNotNull(SarBussionessStand sarBussionessStandEO);
}
@@ -180,6 +180,9 @@ public class SarBussionessStand extends BaseEntity {
@TableField(exist = false)
private Map<String, Object> attrInfoMap = new LinkedHashMap<>(); //属性表字段与值
@TableField(exist = false)
private Map<String, Object> attrInfoCaseMap = new LinkedHashMap<>(); //属性表字段与值小写前端带入渲染
@TableField(exist = false)
private String sarStandAttrEOStr; //新增修改时属性表信息
@@ -6,8 +6,14 @@ import com.adc.da.common.ConvertMqEO;
import com.adc.da.common.SarTypeEnum;
import com.adc.da.common.SelectionTypeEnum;
import com.adc.da.common.UseModuleEnum;
import com.adc.da.http.Result;
import com.adc.da.mq.dao.OtConvertEODao;
import com.adc.da.mq.service.CreateMQService;
import com.adc.da.mq.service.CreateStandMQService;
import com.adc.da.person.entity.PersonShareEO;
import com.adc.da.person.entity.TsPersonCollect;
import com.adc.da.person.page.PersonCollectEOPage;
import com.adc.da.person.page.PersonShareEOPage;
import com.adc.da.person.service.IPersonCollectEOService;
import com.adc.da.slrs.sarBussStandAttrInfo.dao.SarBussStandAttrInfoDao;
import com.adc.da.slrs.sarBussStandFile.dao.SarBussStandFileDao;
@@ -22,26 +28,35 @@ import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao;
import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService;
import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao;
import com.adc.da.slrs.sarStandFile.entity.SarStandFile;
import com.adc.da.slrs.sarStandardsInfo.dao.SarStandardsInfoDao;
import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage;
import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo;
import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfoEOPage;
import com.adc.da.slrs.sarUpdLog.service.ISarUpdLogService;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.slrs.sysInfo.service.SysInfoEOService;
import com.adc.da.sys.constant.ValueStateEnum;
import com.adc.da.sys.dao.DicTypeEODao;
import com.adc.da.sys.entity.DicTypeEO;
import com.adc.da.sys.util.LoginUserUtil;
import com.adc.da.util.UUIDUtils;
import com.adc.da.utils.util.FieldConvertUtil;
import com.adc.da.utils.util.InitStandAttrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.json.JSONTokener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.sql.Clob;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -55,6 +70,17 @@ import java.util.*;
@Service
public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStandDao, SarBussionessStand> implements ISarBussionessStandService {
private static final Logger logger = LoggerFactory.getLogger(SarBussionessStandServiceImpl.class);
@Value("${elas.flag}")
private boolean elasflag; //ES是否启用
@Value("${file.path}")
private String filePath;//文件存储路径
@Autowired
private SarBussionessStandDao sarBussionessStandEODao;
@Autowired
private ITsUserService tsUserService;
@@ -67,6 +93,9 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
@Autowired
private ITsResourceService iTsResourceService;
@Autowired
private SarStandAttrInfoDao sarStandAttrInfoEODao;
@Autowired
private SysInfoEOService sysInfoEOService;
@@ -91,6 +120,12 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
@Autowired
private SarStandardsInfoDao sarStandardsInfoEODao;
@Autowired
private CreateStandMQService createStandMQService;
@Autowired
private ISarUpdLogService sarUpdLogEOService;
@Autowired
private SarBussStandAttrInfoDao sarBussStandAttrInfoEODao;
@@ -126,18 +161,147 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
}
createStandAttrInfo(sarBussionessStandEO);
// 根据代替标准号 ,修改代替标准号标准中的,被代替标准号
// updateReplaceConnect(sarBussionessStandEO);
// //修改收藏分享编号名称
// updateCollectAndShare(sarBussionessStandEO);
// // 记录修改日志
// saveUpdateLog(sarBussionessStandEO,beforeStandEO);
// if (elasflag) {
// createStandMQService.sendBussStandMQ(sarBussionessStandEO, "update");
// }
updateReplaceConnect(sarBussionessStandEO);
//修改收藏分享编号名称
updateCollectAndShare(sarBussionessStandEO);
// 记录修改日志
saveUpdateLog(sarBussionessStandEO,beforeStandEO);
if (elasflag) {
createStandMQService.sendBussStandMQ(sarBussionessStandEO, "update");
}
}
return sarBussionessStandEO;
}
public void saveUpdateLog(SarBussionessStand sarStandardsInfoEO,SarBussionessStand beforeSarStandardsInfo) throws Exception{
Map<String,Object> newMap = new HashMap<>();
Map<String,Object> oldMap = beforeSarStandardsInfo.getAttrInfoMap();
String attrStr = sarStandardsInfoEO.getSarStandAttrEOStr();
if (StringUtils.isNotBlank(attrStr)) {
newMap = JSONObject.fromObject(attrStr);
}
newMap = changeMap(sarStandardsInfoEO,newMap);
oldMap = changeMap(beforeSarStandardsInfo,oldMap);
String sortName = sysInfoEOService.getDicNamesByCodes(sarStandardsInfoEO.getStandSort());
String number = sortName + " " + sarStandardsInfoEO.getStandCode();
if (StringUtils.isNotBlank(sarStandardsInfoEO.getStandYear())) {
number += "-" + sarStandardsInfoEO.getStandYear();
}
String content = number + "" + sarStandardsInfoEO.getStandName() + "";
sarUpdLogEOService.createUpdateLog(SarTypeEnum.BUSINESS.getValue(),sarStandardsInfoEO.getId(),oldMap,newMap,content);
}
public Map<String,Object> changeMap (SarBussionessStand sarStandardsInfoEO,Map<String,Object> map) {
map.put("country",sarStandardsInfoEO.getApplyCountry());
map.put("standSort",sarStandardsInfoEO.getStandSort());
map.put("standNumber",sarStandardsInfoEO.getStandCode());
map.put("standYear",sarStandardsInfoEO.getStandYear());
map.put("standName",sarStandardsInfoEO.getStandName());
map.put("standEnName",sarStandardsInfoEO.getStandEnName());
map.put("standNature",sarStandardsInfoEO.getStandNature());
map.put("standState",sarStandardsInfoEO.getStandStatus());
if (sarStandardsInfoEO.getIssueTime() != null) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String issueStr = format.format(sarStandardsInfoEO.getIssueTime());
map.put("issueTime",issueStr);
}
if (sarStandardsInfoEO.getPutTime() != null) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String issueStr = format.format(sarStandardsInfoEO.getPutTime());
map.put("putTime",issueStr);
}
map.put("replaceStandNum",sarStandardsInfoEO.getReplaceStandNum());
map.put("replacedStandNum",sarStandardsInfoEO.getReplacedStandNum());
return map;
}
public void updateCollectAndShare(SarBussionessStand sarBussionessStandEO) throws Exception {
//修改收藏表中
String number = sarBussionessStandEO.getStandCode()+ "";
PersonCollectEOPage personCollectEOPage = new PersonCollectEOPage();
personCollectEOPage.setValidFlag("0");
personCollectEOPage.setCollectResId(sarBussionessStandEO.getId());
List<TsPersonCollect> listCollect = personCollectEOService.queryByList(personCollectEOPage);
if (listCollect != null && listCollect.size() > 0) {
for (TsPersonCollect getCollect : listCollect) {
TsPersonCollect collectEO = new TsPersonCollect();
collectEO.setId(getCollect.getId());
collectEO.setCollectTitle(sarBussionessStandEO.getStandName() + " " + " 编号:" + number);
personCollectEOService.updateByPrimaryKeySelective(collectEO);
}
}
}
public void updateReplaceConnect(SarBussionessStand sarBussionessStandEO) throws Exception{
if(StringUtils.isNotEmpty(sarBussionessStandEO.getReplaceStandNum())){
SarBussionessStandEOPage sarStandardsInfoEOPage = new SarBussionessStandEOPage();
//当前代替标准号的标准类别为类别name,需修改为code
String[] replaceList = sarBussionessStandEO.getReplaceStandNum().trim().split(",");
String replaceListNew[];
int countre = 0;
// List<String> newReplaceList = new ArrayList<>();
if (replaceList!=null && replaceList.length>0) {
for(String replaceNum : replaceList){
if(replaceNum.indexOf(" ")!=-1){
String dicName = replaceNum.substring(0,replaceNum.lastIndexOf(" "));
DicTypeEO dicTypeEO = new DicTypeEO();
dicTypeEO.setDicTypeName(dicName);
dicTypeEO.setDicTypeCode("BUSSSTANDCLASS");
List<DicTypeEO> getDicCode = dicTypeEODao.getDicTypeByDicTypeName(dicTypeEO);
if(getDicCode!= null && getDicCode.size()>0){
replaceNum = replaceNum.replaceFirst(dicName,getDicCode.get(0).getDicTypeCode());
replaceList[countre] = replaceNum;
countre++;
}
}
}
}
sarStandardsInfoEOPage.setReplaceStandNumList(replaceList);
// 2021/03/30 刘慧文修改 标准类别已不存在
if(StringUtils.isNotEmpty(sarBussionessStandEO.getStandYear())){
sarStandardsInfoEOPage.setReplacedStandNum(sarBussionessStandEO.getStandCode()+"-"+sarBussionessStandEO.getStandYear());
} else {
sarStandardsInfoEOPage.setReplacedStandNum(sarBussionessStandEO.getStandCode());
}
int updateResult = sarBussionessStandEODao.updateRelacedNumByNumber(sarStandardsInfoEOPage);
//编写预警信息
// writeWarnings(sarBussionessStandEO);
}
if (StringUtils.isNotEmpty(sarBussionessStandEO.getReplacedStandNum())) {
SarBussionessStandEOPage sarStandardsInfoEOPage = new SarBussionessStandEOPage();
//当前代替标准号的标准类别为类别name,需修改为code
String[] replaceList = sarBussionessStandEO.getReplacedStandNum().trim().split(",");
int countre = 0;
// List<String> newReplaceList = new ArrayList<>();
if (replaceList!=null && replaceList.length>0) {
for(String replaceNum : replaceList){
if(replaceNum.indexOf(" ")!=-1){
String dicName = replaceNum.substring(0,replaceNum.lastIndexOf(" "));
DicTypeEO dicTypeEO = new DicTypeEO();
dicTypeEO.setDicTypeName(dicName);
dicTypeEO.setDicTypeCode("BUSSSTANDCLASS");
List<DicTypeEO> getDicCode = dicTypeEODao.getDicTypeByDicTypeName(dicTypeEO);
if(getDicCode!= null && getDicCode.size()>0){
replaceNum = replaceNum.replaceFirst(dicName,getDicCode.get(0).getDicTypeCode());
replaceList[countre] = replaceNum;
countre++;
}
}
}
}
sarStandardsInfoEOPage.setReplacedStandNumList(replaceList);
// 2021/03/30 刘慧文修改 标准类别已不存在
if(StringUtils.isNotEmpty(sarBussionessStandEO.getStandYear())){
sarStandardsInfoEOPage.setReplaceStandNum(sarBussionessStandEO.getStandCode()+"-"+sarBussionessStandEO.getStandYear());
} else {
sarStandardsInfoEOPage.setReplaceStandNum(sarBussionessStandEO.getStandCode());
}
int updateResult = sarBussionessStandEODao.updateRelaceNumByNumber(sarStandardsInfoEOPage);
}
}
/***
* @Description: 新增属性表数据
* @Author: yangxuenan
@@ -266,7 +430,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
sarStandFileEO.setCreationUser(LoginUserUtil.getUserId());
sarStandFileEO.setCreationTime(new Date());
sarStandFileEO.setModifyTime(new Date());
sarStandFileEO.setValidFlag("0");
sarStandFileEO.setValidFlag(0);
sarStandFileEO.setStandId(standId); //标准ID
sarStandFileEO.setUseModel(UseModuleEnum.SOURCE_FILE.getValue()); //文件使用模式
sarStandFileEO.setId(com.adc.da.sys.util.UUIDUtils.randomUUID20());
@@ -282,7 +446,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
newFileEO.setCreationUser(LoginUserUtil.getUserId());
newFileEO.setCreationTime(new Date());
newFileEO.setModifyTime(new Date());
newFileEO.setValidFlag("0");
newFileEO.setValidFlag(0);
newFileEO.setStandId(standId); //标准ID
newFileEO.setId(com.adc.da.sys.util.UUIDUtils.randomUUID20());
newFileEO.setAttId(fileInfo.getId()); //文件ID
@@ -344,13 +508,13 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
for (Map.Entry<String, Object> entry : getAttrMap.entrySet()) {
String name = entry.getKey();
String value = "";
if (entry.getValue() != null && InitStandAttrUtil.fileFieldList != null && InitStandAttrUtil.fileFieldList.size() > 0 && InitStandAttrUtil.fileFieldList.contains(name)) {
if (entry.getValue() != null && InitStandAttrUtil.fileFieldListBuss != null && InitStandAttrUtil.fileFieldListBuss.size() > 0 && InitStandAttrUtil.fileFieldListBuss.contains(name)) {
value = entry.getValue().toString();
if (org.apache.commons.lang3.StringUtils.isNotBlank(value)) {
if (StringUtils.isNotBlank(value)) {
List<AttFileEO> fileObj = attFileEOService.getMultiFileInfos(value);
entry.setValue(fileObj);
}
}else if (entry.getValue() != null && InitStandAttrUtil.selectionFieldList != null && InitStandAttrUtil.selectionFieldList.size() > 0 && InitStandAttrUtil.selectionFieldList.contains(name)) {
}else if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListBuss != null && InitStandAttrUtil.selectionFieldListBuss.size() > 0 && InitStandAttrUtil.selectionFieldListBuss.contains(name)) {
value = entry.getValue().toString();
List<String> valArr = Arrays.asList(value.split(","));
value = dicTypeEODao.getDicNamesByCodes(valArr);
@@ -407,6 +571,26 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
@Override
public List<SarBussionessStand> getSarBussionStandPage(SarBussionessStandEOPage page) throws Exception {
//查询当前登录人角色拥有权限的菜单
if(page.getMenuId() != null && page.getUserId() != null && StringUtils.isNotBlank(page.getUserId())){
QueryWrapper<TsResource> qw = new QueryWrapper<>();
qw.eq("ID",page.getMenuId());
qw.isNull("PARENT_ID");
List<TsResource> children = iTsResourceService.list(qw);
if(children.isEmpty() && !page.getMenuId().equals("nomenu")){
List<String> getMenuIdList = tsUserService.getResourceUserId(page.getUserId());
if (getMenuIdList != null && !getMenuIdList.isEmpty()) {
page.setMenuRoleList(getMenuIdList);
} else {
page.setMenuRoleList(null);
}
List<String> ids = iTsResourceService.getChildMenuList(page.getMenuId());
if (ids != null && !ids.isEmpty()) {
page.setMenuAllChildrenIdList(ids);
}
}
}
Integer rowCount = this.baseMapper.getBussionessStandInfoCount(page);
page.getPager().setRowCount(rowCount);
List<SarBussionessStand> sarlist = this.baseMapper.getBussionessStandInfoPage(page);
@@ -421,7 +605,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
*/
public void attrInfo (List<SarBussionessStand> sarlist) throws Exception {
for(SarBussionessStand row : sarlist){
attrInfo1(row);
attrInfoDetails(row);
}
}
@@ -444,6 +628,85 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
}
}
public void attrInfoShowSearchDetails(SarBussionessStand row,String type) throws Exception {
if (row != null) {
attrInfoSearchDetails(row,type);
Map<String, Object> getAttrMap = row.getAttrInfoMap();
if (getAttrMap != null && getAttrMap.size() > 0) {
for (Map.Entry<String, Object> entry : getAttrMap.entrySet()) {
String name = entry.getKey();
String value = "";
List<String> valArr = new ArrayList<>();
if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListBuss != null && InitStandAttrUtil.selectionFieldListBuss.size() > 0 && InitStandAttrUtil.selectionFieldListBuss.contains(name)) {
if(StringUtils.isNotBlank(entry.getValue().toString())){
Object json= new JSONTokener(entry.getValue().toString()).nextValue();
if(json instanceof org.json.JSONArray){
valArr = com.alibaba.fastjson.JSONObject.parseArray(entry.getValue().toString(),String.class);
}else {
value = entry.getValue().toString();
valArr = Arrays.asList(value.split(","));
}
if(!valArr.isEmpty()){
value = dicTypeEODao.getDicNamesByCodes(valArr);
}
}
entry.setValue(value);
}
}
}
}
}
public void attrInfoSearchDetails(SarBussionessStand row,String type) throws Exception {
String fieldInfo = InitStandAttrUtil.queryField;
String collectId = personCollectEOService.queryCollectByUserAndId(row.getId());
row.setCollectId(collectId);
// 查询属性表数据
if (StringUtils.isNotBlank(fieldInfo)) {
Map<String, Object> getAttrMap = new TreeMap<>();
if(type.equals("add")){
String sarStandAttrEOStr = row.getSarStandAttrEOStr();
getAttrMap = JSONObject.fromObject(sarStandAttrEOStr);
}else {
getAttrMap = sarStandAttrInfoEODao.selectStandFieldAndData(fieldInfo, row.getId());
}
if (InitStandAttrUtil.clobFieldList != null && !InitStandAttrUtil.clobFieldList.isEmpty()) {
// 遍历修改所有clob类型的值
for (String clobField : InitStandAttrUtil.clobFieldList) {
Clob clobValue = (Clob) getAttrMap.get(clobField);
String fieldValue = FieldConvertUtil.ClobToString(clobValue);
getAttrMap.put(clobField, fieldValue);
}
}
if (getAttrMap != null && !getAttrMap.isEmpty()) {
row.setAttrInfoCaseMap(transformUpperCase(getAttrMap));
}
row.setAttrInfoMap(getAttrMap);
}
}
private Map<String, Object> transformUpperCase(Map<String, Object> orgMap) {
Map<String, Object> resultMap = new HashMap<>();
for (Map.Entry<String, Object> entry : orgMap.entrySet()) {
String newKey = entry.getKey().toLowerCase();
resultMap.put(newKey, orgMap.get(entry.getKey()));
if (entry.getValue() != null && InitStandAttrUtil.fileFieldListBuss != null && !InitStandAttrUtil.fileFieldListBuss.isEmpty() && InitStandAttrUtil.fileFieldListBuss.contains(entry.getKey())) {
String value = entry.getValue().toString();
if (StringUtils.isNotBlank(value)) {
List<AttFileEO> fileObj = attFileEOService.getMultiFileInfos(value);
if(!fileObj.isEmpty()){
resultMap.put(newKey + "Name", fileObj.get(0).getOldFileName());
}
}
}
}
return resultMap;
}
public void attrInfoDetails (SarBussionessStand row) throws Exception {
String fieldInfo = InitStandAttrUtil.queryFieldBuss;
String collectId = personCollectEOService.queryCollectByUserAndId(row.getId());
@@ -492,6 +755,10 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
getAttrMap.putAll(newMap);
}
if (getAttrMap != null && !getAttrMap.isEmpty()) {
row.setAttrInfoCaseMap(transformUpperCase(getAttrMap));
}
row.setAttrInfoMap(getAttrMap);
}
}
@@ -4,6 +4,7 @@ import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo;
import com.adc.da.sys.common.SelectionResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@@ -16,6 +17,7 @@ import java.util.Map;
* @author super_liu
* @since 2021-06-01
*/
@Repository
public interface SarStandAttrInfoDao extends BaseMapper<SarStandAttrInfo> {
void alterStandAttr(@Param("fieldInfo") String fieldInfo);
@@ -2,6 +2,7 @@ package com.adc.da.slrs.sarStandFile.dao;
import com.adc.da.slrs.sarStandFile.entity.SarStandFile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -13,6 +14,7 @@ import java.util.List;
* @author super_liu
* @since 2021-06-02
*/
@Repository
public interface SarStandFileDao extends BaseMapper<SarStandFile> {
List<SarStandFile> selectFileByStandId(String lawsId);
@@ -193,13 +193,9 @@ public class SarStandItemsServiceImpl extends ServiceImpl<SarStandItemsDao, SarS
public List<SarStandItems> querySarItemAndInterpretation(FindSarItemsPageReqDTO page){
//分页查询的总数
Integer count=dao.sarItemCount(page);
page.getPager().setRowCount(count);
List<SarStandItems> sarStandItems = dao.querySarItemAndInterpretation(page);
return sarStandItems;
}
@@ -1137,6 +1137,17 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
* @Return: com.adc.da.util.http.ResponseMessage<com.adc.da.lawss.entity.SarStandardsInfoEO>
*/
public int updateSarStandardsInfo(SarStandardsInfo sarStandardsInfoEO) throws Exception {
/**
* 加入对应"国家/地区"的清单列表
*/
//1.获取标准清单的"国家/地区"
//2.判断修改的标准的"国家/地区"与清单中的是否一致,一致则添加到清单中,不一致不作处理
String standId = sarStandardsInfoEO.getId();
// 查询修改前数据信息,为修改代替标准号使用
SarStandardsInfo beforeSarStandardsInfo = dao.selectById(standId);
@@ -185,9 +185,9 @@
<if test="standId != null" >
and stand_id = #{standId}
</if>
<if test="idlist != null">
<if test="idList != null">
and id not in
<foreach collection="idlist" index="index" item="item" open="(" separator="," close=")">
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
@@ -20,6 +20,7 @@
<result column="stand_nature" property="standNature" />
<result column="stand_sort" property="standSort" />
<result column="stand_year" property="standYear" />
<result column="text_status_buss" property="textStatusBuss" />
</resultMap>
<resultMap id="BaseResultMapExcel" type="com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand" >
@@ -35,12 +36,13 @@
<result column="standNatrueShow" property="standNatrueShow" />
<result column="standSortShow" property="standSortShow" />
<result column="stand_year" property="standYear" />
<result column="text_status_buss" property="textStatusBuss" />
</resultMap>
<!-- SAR_BUSSIONESS_STAND table all fields -->
<sql id="Base_Column_List" >
modify_time, creation_time, valid_flag, stand_status, replaced_stand_num,replace_stand_num,
put_time, issue_time,stand_en_name,stand_name, stand_code, id,apply_country, stand_nature, stand_sort
put_time, issue_time,stand_en_name,stand_name, stand_code, id,apply_country, stand_nature, stand_sort,text_status_buss
</sql>
<sql id="Base_Column_List_show" >
stand_year,dicapplyCountry.DIC_TYPE_NAME as applyCountryShow,dicstandSort.DIC_TYPE_NAME as standSortShow,
@@ -48,7 +50,7 @@
SAR_BUSSIONESS_STAND.creation_time, SAR_BUSSIONESS_STAND.valid_flag,
SAR_BUSSIONESS_STAND.apply_country, SAR_BUSSIONESS_STAND.stand_nature,SAR_BUSSIONESS_STAND.stand_sort,
stand_status, replaced_stand_num,replace_stand_num,put_time,issue_time,stand_en_name,
stand_name, stand_code,SAR_BUSSIONESS_STAND.id,dicstandStatus.DIC_TYPE_NAME as standStatusShow
stand_name, stand_code,SAR_BUSSIONESS_STAND.id,dicstandStatus.DIC_TYPE_NAME as standStatusShow,SAR_BUSSIONESS_STAND.text_status_buss
</sql>
<sql id="Group_Column_List_show" >
@@ -352,7 +354,7 @@
<!-- 分页查询条件 -->
<sql id="SarBussionInfo_Where_Clause">
left join TS_DICTYPE dicstandStatus ON ( dicstandStatus.dic_type_code = SAR_BUSSIONESS_STAND.STAND_STATUS AND dicstandStatus.dic_id IS NOT NULL and dicstandStatus.valid_flag = 0)
left join TS_DICTYPE dicstandStatus ON ( dicstandStatus.dic_type_code = SAR_BUSSIONESS_STAND.TEXT_STATUS_BUSS AND dicstandStatus.dic_id IS NOT NULL and dicstandStatus.valid_flag = 0)
left join TS_DICTYPE dicstandNature ON ( dicstandNature.dic_type_code = SAR_BUSSIONESS_STAND.STAND_NATURE AND dicstandNature.dic_id IS NOT NULL and dicstandNature.valid_flag = 0)
left join TS_DICTYPE dicstandSort ON ( dicstandSort.dic_type_code = SAR_BUSSIONESS_STAND.STAND_SORT AND dicstandSort.dic_id IS NOT NULL and dicstandSort.valid_flag = 0)
left join TS_DICTYPE dicapplyCountry ON ( dicapplyCountry.dic_type_code = SAR_BUSSIONESS_STAND.APPLY_COUNTRY AND dicapplyCountry.dic_id IS NOT NULL and dicapplyCountry.valid_flag = 0)
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.scheduled.dao.SarStandardInfoDao">
<!-- Result Map-->
<resultMap id="resultMap" type="com.adc.da.scheduled.entity.WarningEO" >
<id column="ID" property="id" />
<result column="STAND_NUMBER" property="standCode" />
<result column="STAND_NAME" property="standName" />
<result column="XCXSSRQ" property="XCXSSRQ"/>
<result column="ZCCSSRQ" property="ZCCSSRQ"/>
<result column="CLLX" property="applyType" />
<result column="STAND_TYPE" property="standType" />
<result column="ZRGCS" property="dutyEngineer" />
</resultMap>
<!-- 查询条件 -->
<select id="select" resultMap="resultMap" parameterType="com.adc.da.scheduled.entity.DataDTO">
SELECT
info.ID,
info.STAND_NUMBER,
info.STAND_NAME,
info.STAND_TYPE,
attrInfo.CLLX,
attrInfo.ZRGCS,
attrInfo.${str}
FROM
sar_standards_info AS info
JOIN sar_stand_attr_info AS attrInfo ON info.id = attrinfo.stand_id
WHERE
attrInfo.${str} BETWEEN #{date.startDate} and #{date.endDate}
</select>
</mapper>
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.scheduled.dao.SarStandardItemDao">
<!-- Result Map-->
<resultMap id="resultMap" type="com.adc.da.scheduled.entity.WarningEO">
<id column="ID" property="id"/>
<result column="STAND_NUMBER" property="standCode"/>
<result column="STAND_NAME" property="standName"/>
<result column="XCXSSRQ" property="XCXSSRQ"/>
<result column="ZCCSSRQ" property="ZCCSSRQ"/>
<result column="CLLX" property="applyType"/>
<result column="STAND_TYPE" property="standType"/>
<result column="ZRGCS" property="dutyEngineer"/>
</resultMap>
<!-- 查询条件 -->
<select id="select" resultMap="resultMap" parameterType="com.adc.da.scheduled.entity.DataDTO">
SELECT
STAND_ID,
ITEMS_NUM,
TERMS_CONDITIONS,
DUTY_ENGINEER,
APPLY_ARCTIC,
info.STAND_TYPE,
${str}
FROM
sar_stand_items AS items
JOIN sar_standards_info AS info ON items.STAND_ID=info.ID
WHERE
${str} BETWEEN #{date.startDate} and #{date.endDate}
</select>
</mapper>
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.scheduled.dao.SarStandardWarningDao">
<insert id="ignoreInsert" parameterType="java.util.LinkedList">
INSERT IGNORE INTO sar_stand_warning (ID, STAND_TYPE, STAND_CODE,STAND_NAME,PUT_TIME,APPLY_TYPE,DUTY_ENGINEER,ITEMS_ID,ITEMS_NAME,POLICY_ID,POLICY_NAME,MARK,POWER)
VALUES
<if test="warningEOS !=null and warningEOS.size()!=0">
<foreach collection="warningEOS" item="item" index="index" separator=",">
(
#{item.id}
,#{item.standType}
,#{item.standCode}
,#{item.standName}
,#{item.putTime}
,#{item.applyType}
,#{item.dutyEngineer}
,#{item.itemsId}
,#{item.itemsName}
,#{item.policyId}
,#{item.policyName}
,#{item.mark}
,#{item.power}
)
</foreach>
</if>
</insert>
</mapper>