Merge branch 'develop_master' into FOTON

This commit is contained in:
zyd
2022-10-01 18:21:41 +08:00
25 changed files with 311 additions and 130 deletions
@@ -75,6 +75,8 @@ public class WebMvcConfig implements WebMvcConfigurer {
//标准征求意见导出
addInterceptor.excludePathPatterns("/api/slrs/sar-public-idea-all/tuallStand");
// 标准征求意见流程意见导出
addInterceptor.excludePathPatterns("/api/slrs/sar-public-idea-all/tuallStandYJCL");
//标准法规清单导出
addInterceptor.excludePathPatterns("/api/sarLawsAttrDetailedList/sar-laws-attr-detailed-list/ExportLawsById");
//标准法规清单车型导出
@@ -1542,9 +1542,9 @@ public class SearchCenterServiceImpl implements SearchCenterService {
String textStatusColor = "";
if(StringUtils.isNotBlank(sourceAsMap.getOrDefault("textStatusFull","").toString())){
String textStatus = sourceAsMap.getOrDefault("textStatusFull","").toString();
if("废止".equals(textStatus) || "被代替".equals(textStatus) || "作废".equals(textStatus) ){
if("废止".equals(textStatus) || "作废".equals(textStatus) ){
textStatusColor = "redClass";
}else if("参考".equals(textStatus)){
}else if("参考".equals(textStatus) || "被代替".equals(textStatus)){
textStatusColor = "greenClass";
}
}
@@ -1719,9 +1719,9 @@ public class SearchCenterServiceImpl implements SearchCenterService {
if(StringUtils.isNotBlank(sourceAsMap.getOrDefault("textStatusFull","").toString())){
String textStatus = sourceAsMap.getOrDefault("textStatusFull","").toString();
if("废止".equals(textStatus) || "被代替".equals(textStatus) || "作废".equals(textStatus) ){
if("废止".equals(textStatus) || "作废".equals(textStatus) ){
textStatusColor = "redClass";
}else if("参考".equals(textStatus)){
}else if("参考".equals(textStatus) || "被代替".equals(textStatus)){
textStatusColor = "greenClass";
}
}
@@ -2059,9 +2059,9 @@ public class SearchCenterServiceImpl implements SearchCenterService {
String textStatusColor = "";
if(StringUtils.isNotBlank(sourceAsMap.getOrDefault("textStatusFull","").toString())){
String textStatus = sourceAsMap.getOrDefault("textStatusFull","").toString();
if("废止".equals(textStatus) || "被代替".equals(textStatus) || "作废".equals(textStatus) ){
if("废止".equals(textStatus) || "作废".equals(textStatus) ){
textStatusColor = "redClass";
}else if("参考".equals(textStatus)){
}else if("参考".equals(textStatus) || "被代替".equals(textStatus)){
textStatusColor = "greenClass";
}
}
@@ -276,8 +276,8 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService {
contentBuilder.append("关联模块--乘用车vpps中文名称:").append(attrInfoMap.get("CYCVPPSCNName")).append(" ");
contentBuilder.append("关联模块--卡车VPPS编码:").append(attrInfoMap.get("KCCVPPSBMName")).append(" ");
contentBuilder.append("关联模块--卡车vpps中文名称:").append(attrInfoMap.get("KCCVPPSCNName")).append(" ");
contentBuilder.append("模块结构单元变型号:").append(attrInfoMap.get("DYBXHName")).append(" ");
contentBuilder.append("模块结构单元名称:").append(attrInfoMap.get("DYMCName")).append(" ");
// contentBuilder.append("模块结构单元变型号:").append(attrInfoMap.get("DYBXHName")).append(" ");
// contentBuilder.append("模块结构单元名称:").append(attrInfoMap.get("DYMCName")).append(" ");
contentBuilder.append("代替标准号:").append(attrInfoMap.get("DTBJHName")).append(" ");
contentBuilder.append("引用标准:").append(attrInfoMap.get("YYBJName")).append(" ");
@@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
@@ -24,6 +25,7 @@ import java.util.Map;
*/
@Component
@Order(value = 1)
public class InitStandAttrSearchUtil implements ApplicationRunner {
private static final Logger logger = LoggerFactory.getLogger(InitStandAttrSearchUtil.class);
@@ -126,7 +126,8 @@ public class ScheduledJob {
logger.info("========================================================================================================");
logger.info("========================================================================================================");
//删除不在预警范围的标准
int remove = sarStandardWarningDao.autoCancelWarning();
// int remove = sarStandardWarningDao.autoCancelWarning();
int remove = sarStandardWarningDao.delete(null);
log.info("开始修整"+new Date()+"!");
try {
Thread.sleep(20000);
@@ -209,6 +210,11 @@ public class ScheduledJob {
//清空标准的日期子表
iWarningDateService.remove(null);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 保存进入标准的日期子表 保存标准的实施日期 新车型实施日期 在产车实施日期 多个
iWarningDateService.saveBatch(data);
//联接标准的日期子表 和分解单表 查询符合预警期限的标准和分解项
@@ -0,0 +1,27 @@
package com.adc.da.scheduled;
import com.adc.da.search.conf.SchedulerConf;
import com.adc.da.search.util.InitStandAttrSearchUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(value = 2)
public class ScheduledJobRunner implements ApplicationRunner {
private static final Logger logger = LoggerFactory.getLogger(ScheduledJobRunner.class);
@Autowired
private SchedulerConf schedulerConf;
@Override
public void run(ApplicationArguments args) throws Exception {
schedulerConf.startByIp();
}
}
@@ -110,45 +110,28 @@ public class UpdateStateStandSyncFz implements Runnable {
List<SarStandardsInfo> invalidStandToGBList = new ArrayList<>();
List<SarStandardsInfo> bdtStandToGBList = new ArrayList<>();
List<SarStandardsInfo> bdtStandToNotGBList = new ArrayList<>();
// 当前标准的标准类别是否是GB类 GB集合逻辑
getStateStandScheduledList.forEach(info -> {
if(StringUtils.isNotBlank(info.getBDTBZH())){
List<String> bdtList = Arrays.stream(info.getBDTBZH().split(",")).map(
s -> s.replace(" ","").trim()).collect(Collectors.toList());
// 查询等于GB的国内标准
int bdtStandNumCount = bdtList.size();
QueryWrapper wrapperGB = new QueryWrapper();
wrapperGB.eq("SAR_STANDARDS_INFO.VALID_FLAG","0");
wrapperGB.eq("SAR_STANDARDS_INFO.STAND_SORT","GB");
// wrapperGB.eq("SAR_STANDARDS_INFO.STAND_SORT","GB");
wrapperGB.in("trim(replace(concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-'," +
"SAR_STANDARDS_INFO.STAND_YEAR),' ',''))",bdtList);
List<SarStandardsInfo> queryGBList = sarStandardsInfoDao.selectList(wrapperGB);
if(!queryGBList.isEmpty()){
int queryGbCount = queryGBList.size();
//被代替标准号中所有有效标准的状态都是现行有效状态
List<SarStandardsInfo> fzList = queryGBList.stream().filter(info1 ->
"vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())
|| "chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList());
List<SarStandardsInfo> fzList2 = queryGBList.stream().filter(info1 ->
!"vsaga7nwub".equals(info1.getTextStatus()) && !"qke0ckro2p".equals(info1.getTextStatus())
&& !"chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList());
// //被代替标准号中所有有效标准的状态都是被代替状态
// List<SarStandardsInfo> bdtStateList = queryGBList.stream().filter(info1 ->
// "qke0ckro2p".equals(info1.getTextStatus())).collect(Collectors.toList());
//
// //被代替标准号中所有有效标准的状态都是废止状态
// List<SarStandardsInfo> fzList = queryGBList.stream().filter(info1 ->
// "chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList());
// 满足其上存入更新废止逻辑 如果只有一个被代替标准 优先更新废止状态
if(!fzList.isEmpty() && fzList2.isEmpty()){
//被代替标准号中所有有效标准的状态都是现行有效状态
List<SarStandardsInfo> fzList = queryGBList.stream().filter(info1 ->
"vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())
|| "chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList());
// 检查当前标准是否为GB类
if(StringUtils.equals(info.getStandSort(),"GB")){
if(fzList.size() == bdtStandNumCount){//当所有标准都是现行有效状态时
invalidStandToGBList.add(info);
}else {
// 被代替标准号中的有效标准的标准状态中有一个是发布、即将实施、现行有效、被代替状态的
}else{//其中被代替标准号中存在
List<SarStandardsInfo> singleList = queryGBList.stream().filter(info1 -> {
if("hc99551723c".equals(info1.getTextStatus()) || "hb0iy9z23c".equals(info1.getTextStatus())
|| "vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())){
@@ -156,50 +139,19 @@ public class UpdateStateStandSyncFz implements Runnable {
}
return false;
}).collect(Collectors.toList());
// 满足其上存入更新被代替逻辑
if(!singleList.isEmpty()){
bdtStandToGBList.add(info);
}
}
}else{//非GB类
if(fzList.size()>0){
bdtStandToNotGBList.add(info);
}
}
}
});
// 当前标准的标准类别是否是GB类 NOT GB集合逻辑
List<SarStandardsInfo> bdtStandToNotGBList = getStateStandScheduledList.stream().filter(info -> {
if(StringUtils.isNotBlank(info.getBDTBZH())){
List<String> bdtList = Arrays.stream(info.getBDTBZH().split(",")).map(
s -> s.replace(" ","").trim()).collect(Collectors.toList());
//发布、即将实施、现行有效、被代替
List<String> bdtStateList = new ArrayList<>();
// 发布
bdtStateList.add("hc99551723c");
// 作废
bdtStateList.add("hb0iy9z23c");
// 即将实施
bdtStateList.add("vsaga7nwub");
// 被代替
bdtStateList.add("qke0ckro2p");
// 查询不等于GB的国内标准 且 有效的被代替标准
QueryWrapper wrapperNotGB = new QueryWrapper();
wrapperNotGB.eq("VALID_FLAG","0");
wrapperNotGB.ne("STAND_SORT","GB");
wrapperNotGB.in("TEXT_STATUS",bdtStateList);
wrapperNotGB.in("trim(replace(concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-'," +
"SAR_STANDARDS_INFO.STAND_YEAR),' ',''))",bdtList);
List<SarStandardsInfo> queryNotGBList = sarStandardsInfoDao.selectList(wrapperNotGB);
// 被代替标准号中的有效标准的标准状态中有一个是发布、即将实施、现行有效、被代替状态的
// 满足其上过滤更新被代替数据
return !queryNotGBList.isEmpty();
}
return false;
}).collect(Collectors.toList());
if(!invalidStandToGBList.isEmpty()){
logger.info("=============被代替标准号中所有有效标准的状态都是现行有效、被代替、废止状态 执行============");
// 文本状态更为废止状态
@@ -217,14 +169,11 @@ public class UpdateStateStandSyncFz implements Runnable {
// 文本状态更为被代替
execStandDate(bdtStandToNotGBList,"qke0ckro2p");
}
}
logger.info("每天0点1分执行 国内标准文本状态被代替逻辑 标准自动变更废止:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---End-01");
}catch(Exception e){
logger.info(e.getMessage());
logger.error(e.getMessage(),e);
}
}
@@ -15,14 +15,15 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledFuture;
/**
* 动态定时器
* 动态定时器
*/
@Slf4j
@Component
@@ -47,7 +48,7 @@ public class SchedulerConf {
* 初始化线程池任务调度
*/
@Autowired
public SchedulerConf(){
public SchedulerConf() {
this.threadPoolTaskScheduler.setPoolSize(50);
this.threadPoolTaskScheduler.setThreadNamePrefix("task-thread-");
this.threadPoolTaskScheduler.setWaitForTasksToCompleteOnShutdown(true);
@@ -57,17 +58,17 @@ public class SchedulerConf {
/**
* 获取所有数据库里的定时任务
*/
private void getAllTbTask(){
private void getAllTbTask() {
//查询所有,并put到tasks
SchedulerConf.tasks.clear();
List<TbTask> list = iTbTaskService.list();
list.forEach((task)-> SchedulerConf.tasks.put(task.getId(),task));
list.forEach((task) -> SchedulerConf.tasks.put(task.getId(), task));
}
/**
* 根据定时任务id,启动定时任务
*/
public void start(String taskId){
public void start(String taskId) {
try {
//重新获取最新执行任务周期
this.getAllTbTask();
@@ -76,7 +77,7 @@ public class SchedulerConf {
//获取并实例化Runnable任务类
Class<?> clazz = Class.forName(tbTask.getTaskClass());
Runnable runnable = (Runnable)clazz.newInstance();
Runnable runnable = (Runnable) clazz.newInstance();
//Cron表达式
CronTrigger cron = new CronTrigger(tbTask.getTaskExp());
@@ -84,11 +85,11 @@ public class SchedulerConf {
//执行,并put到runTasks
SchedulerConf.runTasks.put(taskId, Objects.requireNonNull(this.threadPoolTaskScheduler.schedule(runnable, cron)));
this.updateTaskStatus(taskId,1);
this.updateTaskStatus(taskId, 1);
log.info("{},任务启动!",taskId);
log.info("{},任务启动!", taskId);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
log.error("{},任务启动失败...",taskId);
log.error("{},任务启动失败...", taskId);
e.printStackTrace();
}
@@ -97,20 +98,73 @@ public class SchedulerConf {
/**
* 根据定时任务id,停止定时任务
*/
public void stop(String taskId){
public void stop(String taskId) {
SchedulerConf.runTasks.get(taskId).cancel(true);
SchedulerConf.runTasks.remove(taskId);
this.updateTaskStatus(taskId,0);
this.updateTaskStatus(taskId, 0);
log.info("{},任务停止...",taskId);
log.info("{},任务停止...", taskId);
}
/**
* 根据ip开启定时任务
*/
public void startByIp() throws Exception {
// InetAddress addr = InetAddress.getLocalHost();
// log.info("Local HostAddress: "+addr.getHostAddress());
// String hostname = addr.getHostName();
// log.info("Local host name: "+hostname);
List<String> addr = getIpAddress();
//查询
List<TbTask> tbTaskList = tbTaskDao.selectList(null);
for (TbTask tbTask : tbTaskList) {
if (addr == null){
log.error("本机地址未获取到!!");
break;
}
String ips = tbTask.getIp();
String[] ipArray = ips.split(",");
for (String realIp : ipArray) {
if (addr.contains(realIp)) {
log.info("本机ip地址:" + addr);
this.start(tbTask.getId());
log.info("执行了:" + tbTask.getTaskDesc());
}
}
}
}
private static List<String> getIpAddress() {
try {
List<String> ips = new ArrayList<>();
Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
while (allNetInterfaces.hasMoreElements()) {
NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
Enumeration<InetAddress> addresses = netInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress ip = (InetAddress) addresses.nextElement();
if (ip != null
&& ip instanceof Inet4Address
&& !ip.isLoopbackAddress() //loopback地址即本机地址,IPv4的loopback范围是127.0.0.0 ~ 127.255.255.255
&& ip.getHostAddress().indexOf(":") == -1) {
log.info("本机的IP = " + ip.getHostAddress());
ips.add(ip.getHostAddress());
}
}
}
return ips;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 更新数据库动态定时任务状态
*/
private void updateTaskStatus(String taskId,int status){
private void updateTaskStatus(String taskId, int status) {
TbTask task = iTbTaskService.getById(taskId);
task.setTaskStatus(status);
task.setUpdateTime(new Date());
@@ -1,28 +1,8 @@
package com.adc.da.slrs.DataSync;
import com.adc.da.slrs.DataSync.service.IDataSyncService;
import com.adc.da.slrs.sarInstitution.entity.TsInstitution;
import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService;
import com.adc.da.slrs.sarInstitution.service.impl.TsInstitutionServiceImpl;
import com.adc.da.slrs.sarPosition.entity.TsPosition;
import com.adc.da.slrs.sarPosition.service.ITsPositionService;
import com.adc.da.slrs.sarPosition.service.impl.TsPositionServiceImpl;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.slrs.sarUser.service.impl.TsUserServiceImpl;
import com.adc.da.sync.service.SyncUserService;
import com.adc.da.sys.dao.OrgEODao;
import com.adc.da.sys.entity.OrgEO;
import com.adc.da.sys.entity.UserOrgEO;
import com.adc.da.sys.service.IOrgEOService;
import com.adc.da.sys.service.impl.OrgEOServiceImpl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -32,7 +12,7 @@ import java.sql.Timestamp;
import java.util.*;
@RestController
@Api(description = "|SarStandPutTime|")
@Api(description = "|数据同步及处理逻辑代码|")
@RequestMapping("/${restPath}/DataSync")
public class DataSyncController {
@@ -2,8 +2,10 @@ package com.adc.da.slrs.sarBussStandMenu.dao;
import com.adc.da.slrs.sarBussStandMenu.entity.SarBussStandMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import javax.validation.constraints.Past;
import java.util.List;
/**
@@ -33,4 +35,6 @@ public interface SarBussStandMenuDao extends BaseMapper<SarBussStandMenu> {
int insertSelective (SarBussStandMenu sarStandMenuEO);
int updateMenuidByMenuid (@Param("oldMenuid") String oldMenuid ,@Param("newMenuid") String newMenuid);
}
@@ -4,6 +4,7 @@ import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.login.util.UserUtils;
import com.adc.da.slrs.sarBussStandMenu.dao.SarBussStandMenuDao;
import com.adc.da.slrs.sarResource.dao.TsResourceDao;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService;
@@ -45,6 +46,9 @@ public class TsResourceServiceImpl extends ServiceImpl<TsResourceDao, TsResource
@Autowired
private TsRoleDao tsRoleDao;
@Autowired
private SarBussStandMenuDao sarBussStandMenuDao;
public List<TsResource> selectMenuByRole(TsResource sarMenu) {
List<TsResource> list = dao.selectMenuByRole(sarMenu);
if (list == null) {
@@ -389,6 +393,8 @@ public class TsResourceServiceImpl extends ServiceImpl<TsResourceDao, TsResource
return Result.error("该菜单有子节点,无法删除");
}
dao.deleteById(ResourceId);
//将该id下的信息放到最外层节点上
// sarBussStandMenuDao.updateMenuidByMenuid(ResourceId,"3");
return Result.success();
}
@@ -9,6 +9,7 @@ import com.adc.da.slrs.sarStandIdea.service.Impl.SarPublicIdeaAllServiceImpl;
import com.adc.da.utils.removeHtml.RemoveHtml;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.collect.Lists;
@@ -211,4 +212,69 @@ public class SarPublicIdeaAllController extends BaseController<SarPublicIdeaAll>
}
}
@ApiOperation(value = "导出全部意见-标准意见征求流程-意见处理节点")
@PostMapping("/tuallStandYJCL")
public void getAllStandYJCL(HttpServletResponse response, @RequestBody Map<String, String> params){
try {
JSONArray jsonArray = JSON.parseArray(params.get("json"));
List<SarPublicIdeaAll> data = sarPublicIdeaAllImpl.getPublicAllIdeaYJCL(jsonArray);
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String textName="流程意见详情";
Map<String,String> map=new HashMap<>();
map.put("1","上报");
map.put("2","处理后上报");
map.put("3","不上报");
String fileName = URLEncoder.encode(textName, "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
List<GetExcelDto> standExcel=new ArrayList<>();
int i=0;
for (SarPublicIdeaAll sarPublicIdeaAll:data){
i++;
GetExcelDto getExcelDto = GetExcelDto.builder()
.partCode(sarPublicIdeaAll.getPartCode())
.oldText(RemoveHtml.getResultsFromHtml(sarPublicIdeaAll.getOldText()))
.newText(RemoveHtml.getResultsFromHtml(sarPublicIdeaAll.getNewText()))
.reason(sarPublicIdeaAll.getReason())
.userName(sarPublicIdeaAll.getUserName())
.deptName(sarPublicIdeaAll.getDeptName())
.state(map.get(sarPublicIdeaAll.getState()))
.cause(sarPublicIdeaAll.getCause())
.sourceType(sarPublicIdeaAll.getSourceType())
.partName(sarPublicIdeaAll.getChapterName())
.num(String.valueOf(i))
.build();
standExcel.add(getExcelDto);
}
List<List<String>> headList=new ArrayList<List<String>>();
headList.add(Lists.newArrayList("序号"));
headList.add(Lists.newArrayList("章节编号"));
headList.add(Lists.newArrayList("章节名称"));
headList.add(Lists.newArrayList("修改意见内容(包括理由或依据)","修改前"));
headList.add(Lists.newArrayList("修改意见内容(包括理由或依据)","修改后"));
headList.add(Lists.newArrayList("修改意见内容(包括理由或依据)","修改理由"));
headList.add(Lists.newArrayList("提出部门"));
headList.add(Lists.newArrayList("提出人"));
headList.add(Lists.newArrayList("处理意见"));
headList.add(Lists.newArrayList("原因"));
headList.add(Lists.newArrayList("来源"));
EasyExcel.write(response.getOutputStream(), GetExcelDto.class).head(headList).autoCloseStream(Boolean.FALSE).sheet("sheet1")
.doWrite(standExcel);
} catch (Exception e) {
response.reset();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
try {
response.getWriter().println(JSON.toJSONString(Result.error()));
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
}
}
@@ -5,10 +5,12 @@ import com.adc.da.slrs.sarStandIdea.entity.DelStandDto;
import com.adc.da.slrs.sarStandIdea.entity.DetAllStandDto;
import com.adc.da.slrs.sarStandIdea.entity.SarPublicIdeaAll;
import com.adc.da.slrs.sarStandIdea.entity.SarPublicIdeaAllSUD;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* <p>
@@ -27,4 +29,5 @@ public interface ISarPublicIdeaAllService extends IService<SarPublicIdeaAll> {
String delete(DelStandDto delStandDto);
String del(String id);
String checkIsShow(DetAllStandDto detAllStandDto);
List<SarPublicIdeaAll> getPublicAllIdeaYJCL(JSONArray info);
}
@@ -8,6 +8,9 @@ import com.adc.da.slrs.sarStandIdea.service.ISarPublicIdeaAllService;
import com.adc.da.sys.entity.LoginInfoEO;
import com.adc.da.util.LoginUserUtil;
import com.adc.da.util.UUIDUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -162,4 +165,26 @@ public class SarPublicIdeaAllServiceImpl extends ServiceImpl<SarPublicIdeaAllDao
sarPublicIdeaAllDao.deleteById(id);
return "删除成功";
}
public List<SarPublicIdeaAll> getPublicAllIdeaYJCL(JSONArray info) {
List<SarPublicIdeaAll> publicList = new ArrayList<>();
for (Object object : info) {
JSONObject jsonObject = (JSONObject) object;
SarPublicIdeaAll sarPublicIdeaAll = new SarPublicIdeaAll();
sarPublicIdeaAll.setPartCode(jsonObject.getString("chapterNumber"));
sarPublicIdeaAll.setOldText(jsonObject.getString("oldText"));
sarPublicIdeaAll.setNewText(jsonObject.getString("newText"));
sarPublicIdeaAll.setReason(jsonObject.getString("reason")); // 修改理由
sarPublicIdeaAll.setUserName(jsonObject.getString("responUserName"));
sarPublicIdeaAll.setDeptName(jsonObject.getString("department"));
sarPublicIdeaAll.setState(jsonObject.getString("state")); // 处理意见
sarPublicIdeaAll.setCause(jsonObject.getString("cause")); // 原因
sarPublicIdeaAll.setSourceType(jsonObject.getString("sourceType"));
sarPublicIdeaAll.setChapterName(jsonObject.getString("chapterName"));
publicList.add(sarPublicIdeaAll);
}
return publicList;
}
}
@@ -145,5 +145,10 @@ public class SarStandItemsController extends BaseController<SarStandItems> {
return Result.success(fileType);
}
@ApiOperation(value = "项目合规评估流程-项目-分解单条款内容查询")
@PostMapping("/findTermsConditions")
public ResponseMessage findTermsConditions( @RequestParam(name = "idList", required = false) List<String> idList){
List<SarStandItemsDto> ItemDto = ServiceImpl.findTermsConditions(idList);
return Result.success("200",ItemDto);
}
}
@@ -82,4 +82,6 @@ public interface SarStandItemsDao extends BaseMapper<SarStandItems> {
List<String> getFileType(@Param("standId") String standId);
List<String> getFileTypeHG(@Param("standId") String standId);
List<SarStandItemsDto> findTermsConditions(@Param("idList") List<String> idsList);
}
@@ -291,7 +291,7 @@ public class SarStandItemsServiceImpl extends ServiceImpl<SarStandItemsDao, SarS
for (SarStandItems sarStandItems1 : sarStandItems){
String srcx = sarStandItems1.getApplyArctic();
List<String> srcxList = new ArrayList<>();
if (!srcx.contains("[")){
if (null != srcx && !srcx.contains("[")){
String[] srcxArray = srcx.split(",");
for (String srcxString : srcxArray){
String ss = dicTypeMap.get(srcxString);
@@ -304,6 +304,13 @@ public class SarStandItemsServiceImpl extends ServiceImpl<SarStandItemsDao, SarS
sarStandItems1.setApplyArctic(String.join(",",srcxList));
}
}
for (SarStandItems sarStandItems1 : sarStandItems){
String srcx = sarStandItems1.getApplyArctic();
if (null != srcx && srcx.contains("[")){
//这么修改是因为存储的就有问题,数据库存储数据就有问题
sarStandItems1.setApplyArctic(srcx.replace("[","").replace("]","").replace("\"",""));
}
}
return sarStandItems;
}
@@ -336,4 +343,12 @@ public class SarStandItemsServiceImpl extends ServiceImpl<SarStandItemsDao, SarS
return collect;
}
public List<SarStandItemsDto> findTermsConditions(List<String> idsList) {
List<SarStandItemsDto> sarStandItemsDtos = new ArrayList<>();
if (CollectionUtils.isNotEmpty(idsList)) {
sarStandItemsDtos = sarStandItemsDao.findTermsConditions(idsList);
}
return sarStandItemsDtos;
}
}
@@ -150,7 +150,13 @@ public class EarlyWarningEOController extends BaseController<EarlyWarningEO> {
// List<StandWarningEO> exportExcel = earlyWarningEOService.getExportExcel(excelVO);
List<WarningExportVO> exportExcel = earlyWarningEOService.getExportExcel(excelVO);
for (WarningExportVO warningExportVO : exportExcel){
String condition = warningExportVO.getTermsConditions();
if (condition != null && condition.length() > 32001){
condition = condition.substring(0,32000);
warningExportVO.setTermsConditions(condition);
}
}
// 这里需要设置不关闭流
EasyExcel.write(response.getOutputStream(), WarningExportVO.class).autoCloseStream(Boolean.FALSE).sheet("sheet1")
@@ -60,7 +60,7 @@ public class EarlyWarningEO extends BaseEntity {
@TableField(exist = false)
private String standName;
@ExcelProperty(value = "发布日期",index = 5)
@ExcelProperty(value = "发布日期",index = 6)
@ColumnWidth(20)
@ApiModelProperty("发布日期")
@TableField(exist = false)
@@ -98,6 +98,12 @@ public class EarlyWarningEO extends BaseEntity {
@TableField(exist = false)
private String itemsName;
@ExcelProperty(value = "条款内容",index = 5)
@ColumnWidth(60)
@ApiModelProperty("条款内容")
@TableField(exist = false)
private String termsConditions;
@ExcelIgnore
@TableField("POLICY_ID")
private String policyId;
@@ -11,18 +11,18 @@ public class WarningExportVO extends EarlyWarningEO {
@ExcelProperty(value = "实施日期",index = 6)
@ExcelProperty(value = "实施日期",index = 7)
@ColumnWidth(20)
@ApiModelProperty("实施日期")
private String SSRQ;
@ExcelProperty(value = "新车型实施日期",index = 7)
@ExcelProperty(value = "新车型实施日期",index = 8)
@ColumnWidth(20)
@ApiModelProperty("新车型实施日期")
private String XCXSSRQ;
@ExcelProperty(value = "在产车实施日期",index = 8)
@ExcelProperty(value = "在产车实施日期",index = 9)
@ColumnWidth(20)
@ApiModelProperty("在产车实施日期")
private String ZCCSSRQ;
@@ -31,7 +31,7 @@ public class WarningExportVO extends EarlyWarningEO {
@ApiModelProperty("标准类别显示")
private String standTypeShow;
@ExcelProperty(value = "适用车型",index = 9)
@ExcelProperty(value = "适用车型",index = 10)
@ColumnWidth(20)
@ApiModelProperty("适用车型展示")
private String applyTypeShow;
@@ -768,15 +768,15 @@ public class SarStandardsInfoController extends BaseController<SarStandardsInfo>
//@RequiresPermissions("lawss:sarStandardsInfo:list")
public ResponseMessage queryInfoByStandNum(SarStandardsInfoEOPage page) throws Exception {
if (org.apache.commons.lang.StringUtils.isNotBlank(page.getStandNumber())){
String sort = "";
if (page.getStandNumber().length()>3) {
sort = page.getStandNumber().substring(0, 3);
}
if ("ECE".equals(sort)) {
int length = page.getStandNumber().length();
String number = page.getStandNumber().substring(3,length);
page.setStandNumber("UN(ECE)" + number);
}
// String sort = "";
// if (page.getStandNumber().length()>3) {
// sort = page.getStandNumber().substring(0, 3);
// }
// if ("ECE".equals(sort)) {
// int length = page.getStandNumber().length();
// String number = page.getStandNumber().substring(3,length);
// page.setStandNumber("UN(ECE)" + number);
// }
}
List<SarStandardsInfo> getList = sarStandardsInfoEOService.selectStandardsByStandnumber(page.getStandNumber(),page.getStandType());
SarBussionessStandEOPage sarBussionessStandEOPage = new SarBussionessStandEOPage();
@@ -12,6 +12,7 @@ import io.swagger.annotations.Api;
import com.adc.da.base.web.BaseController;
import java.lang.reflect.Field;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.List;
@@ -54,6 +55,16 @@ public class TbTaskController extends BaseController<TbTask> {
return "操作成功";
}
/**
* 根据ip开启定时任务
* http://localhost:10085/tbTask
*/
@GetMapping("startByIp/{taskId}")
public String startByIp() throws Exception{
schedulerConf.startByIp();
return "操作成功";
}
/**
* 更新一个动态定时任务
* http://localhost:10085/tbTask/save?taskId=2&taskExp=0/2 * * * * ?&taskClass=cn.huanzi.qch.springboottimer.task.MyRunnable3
@@ -45,6 +45,9 @@ public class TbTask extends BaseEntity {
@ApiModelProperty(value = "定时任务状态,0停用 1启用")
private Integer taskStatus;
@ApiModelProperty(value = "ip地址")
private String ip;
@ApiModelProperty(value = "定时任务的Runnable任务类完整路径")
private String taskClass;
@@ -811,4 +811,11 @@
<!--SELECT FILE_type from sar_file_split_info WHERE STAND_ID = #{standId} AND VALID_FLAG = '0' GROUP BY FILE_TYPE-->
</select>
<select id="findTermsConditions" resultType="com.adc.da.slrs.sarStandItems.entity.SarStandItemsDto">
SELECT ID, TERMS_CONDITIONS from sar_stand_items WHERE ID in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>
@@ -0,0 +1,2 @@
ALTER TABLE tb_task
ADD COLUMN ip varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'ip地址' AFTER `create_time`;