diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 8304ea9d..0ade319e 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -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"); //标准法规清单车型导出 diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java index 7afd8604..ef43932f 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java @@ -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"; } } diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java index ef7681cd..1c450a90 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java @@ -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(" "); diff --git a/adc-da-search/src/main/java/com/adc/da/search/util/InitStandAttrSearchUtil.java b/adc-da-search/src/main/java/com/adc/da/search/util/InitStandAttrSearchUtil.java index 3caafc2e..c0ee1a8d 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/util/InitStandAttrSearchUtil.java +++ b/adc-da-search/src/main/java/com/adc/da/search/util/InitStandAttrSearchUtil.java @@ -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); diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java index 14f076a5..dfcf4f39 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java @@ -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); //联接标准的日期子表 和分解单表 查询符合预警期限的标准和分解项 diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJobRunner.java b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJobRunner.java new file mode 100644 index 00000000..b707764b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJobRunner.java @@ -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(); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateStandSyncFz.java b/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateStandSyncFz.java index 535df843..34370397 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateStandSyncFz.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateStandSyncFz.java @@ -110,45 +110,28 @@ public class UpdateStateStandSyncFz implements Runnable { List invalidStandToGBList = new ArrayList<>(); List bdtStandToGBList = new ArrayList<>(); - + List bdtStandToNotGBList = new ArrayList<>(); // 当前标准的标准类别是否是GB类 GB集合逻辑 getStateStandScheduledList.forEach(info -> { if(StringUtils.isNotBlank(info.getBDTBZH())){ List 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 queryGBList = sarStandardsInfoDao.selectList(wrapperGB); - - if(!queryGBList.isEmpty()){ - int queryGbCount = queryGBList.size(); - - //被代替标准号中所有有效标准的状态都是现行有效状态 - List fzList = queryGBList.stream().filter(info1 -> - "vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus()) - || "chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList()); - - List fzList2 = queryGBList.stream().filter(info1 -> - !"vsaga7nwub".equals(info1.getTextStatus()) && !"qke0ckro2p".equals(info1.getTextStatus()) - && !"chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList()); - -// //被代替标准号中所有有效标准的状态都是被代替状态 -// List bdtStateList = queryGBList.stream().filter(info1 -> -// "qke0ckro2p".equals(info1.getTextStatus())).collect(Collectors.toList()); -// -// //被代替标准号中所有有效标准的状态都是废止状态 -// List fzList = queryGBList.stream().filter(info1 -> -// "chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList()); - - // 满足其上存入更新废止逻辑 如果只有一个被代替标准 优先更新废止状态 - if(!fzList.isEmpty() && fzList2.isEmpty()){ + //被代替标准号中所有有效标准的状态都是现行有效状态 + List 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 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 bdtStandToNotGBList = getStateStandScheduledList.stream().filter(info -> { - if(StringUtils.isNotBlank(info.getBDTBZH())){ - List bdtList = Arrays.stream(info.getBDTBZH().split(",")).map( - s -> s.replace(" ","").trim()).collect(Collectors.toList()); - - //发布、即将实施、现行有效、被代替 - List 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 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); } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/search/conf/SchedulerConf.java b/adc-da-slrs/src/main/java/com/adc/da/search/conf/SchedulerConf.java index 6b161dcf..7e4b0cae 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/search/conf/SchedulerConf.java +++ b/adc-da-slrs/src/main/java/com/adc/da/search/conf/SchedulerConf.java @@ -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 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 addr = getIpAddress(); + //查询 + List 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 getIpAddress() { + try { + List ips = new ArrayList<>(); + Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces(); + while (allNetInterfaces.hasMoreElements()) { + NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); + Enumeration 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()); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java index 31d7d7b2..3920a3bc 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java @@ -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 { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandMenu/dao/SarBussStandMenuDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandMenu/dao/SarBussStandMenuDao.java index c1337157..a5d69489 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandMenu/dao/SarBussStandMenuDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussStandMenu/dao/SarBussStandMenuDao.java @@ -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 { int insertSelective (SarBussStandMenu sarStandMenuEO); + int updateMenuidByMenuid (@Param("oldMenuid") String oldMenuid ,@Param("newMenuid") String newMenuid); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java index fc441c2d..0815fd38 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java @@ -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 selectMenuByRole(TsResource sarMenu) { List list = dao.selectMenuByRole(sarMenu); if (list == null) { @@ -389,6 +393,8 @@ public class TsResourceServiceImpl extends ServiceImpl } } + + @ApiOperation(value = "导出全部意见-标准意见征求流程-意见处理节点") + @PostMapping("/tuallStandYJCL") + public void getAllStandYJCL(HttpServletResponse response, @RequestBody Map params){ + try { + JSONArray jsonArray = JSON.parseArray(params.get("json")); + List data = sarPublicIdeaAllImpl.getPublicAllIdeaYJCL(jsonArray); + + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String textName="流程意见详情"; + + Map 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 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> headList=new ArrayList>(); + 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(); + } + } + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/ISarPublicIdeaAllService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/ISarPublicIdeaAllService.java index dfdb027e..f46b571f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/ISarPublicIdeaAllService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/ISarPublicIdeaAllService.java @@ -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; /** *

@@ -27,4 +29,5 @@ public interface ISarPublicIdeaAllService extends IService { String delete(DelStandDto delStandDto); String del(String id); String checkIsShow(DetAllStandDto detAllStandDto); + List getPublicAllIdeaYJCL(JSONArray info); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/Impl/SarPublicIdeaAllServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/Impl/SarPublicIdeaAllServiceImpl.java index 7f77d294..b837c7e3 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/Impl/SarPublicIdeaAllServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandIdea/service/Impl/SarPublicIdeaAllServiceImpl.java @@ -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 getPublicAllIdeaYJCL(JSONArray info) { + List 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; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/controller/SarStandItemsController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/controller/SarStandItemsController.java index a870eb5f..6b6847e4 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/controller/SarStandItemsController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/controller/SarStandItemsController.java @@ -145,5 +145,10 @@ public class SarStandItemsController extends BaseController { return Result.success(fileType); } - + @ApiOperation(value = "项目合规评估流程-项目-分解单条款内容查询") + @PostMapping("/findTermsConditions") + public ResponseMessage findTermsConditions( @RequestParam(name = "idList", required = false) List idList){ + List ItemDto = ServiceImpl.findTermsConditions(idList); + return Result.success("200",ItemDto); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/dao/SarStandItemsDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/dao/SarStandItemsDao.java index 4f66254b..7cec98f0 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/dao/SarStandItemsDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/dao/SarStandItemsDao.java @@ -82,4 +82,6 @@ public interface SarStandItemsDao extends BaseMapper { List getFileType(@Param("standId") String standId); List getFileTypeHG(@Param("standId") String standId); + + List findTermsConditions(@Param("idList") List idsList); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/service/impl/SarStandItemsServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/service/impl/SarStandItemsServiceImpl.java index 2cec40fa..2204a86d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/service/impl/SarStandItemsServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/service/impl/SarStandItemsServiceImpl.java @@ -291,7 +291,7 @@ public class SarStandItemsServiceImpl extends ServiceImpl 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 findTermsConditions(List idsList) { + List sarStandItemsDtos = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(idsList)) { + sarStandItemsDtos = sarStandItemsDao.findTermsConditions(idsList); + } + return sarStandItemsDtos; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/controller/EarlyWarningEOController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/controller/EarlyWarningEOController.java index 987beea9..f66ba43d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/controller/EarlyWarningEOController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/controller/EarlyWarningEOController.java @@ -150,7 +150,13 @@ public class EarlyWarningEOController extends BaseController { // List exportExcel = earlyWarningEOService.getExportExcel(excelVO); List 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") diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/EarlyWarningEO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/EarlyWarningEO.java index 65e8ae2e..152c60d9 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/EarlyWarningEO.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/EarlyWarningEO.java @@ -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; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/WarningExportVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/WarningExportVO.java index db2f7b95..e3041f7d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/WarningExportVO.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandWarning/entity/WarningExportVO.java @@ -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; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java index df295625..945da70f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java @@ -768,15 +768,15 @@ public class SarStandardsInfoController extends BaseController //@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 getList = sarStandardsInfoEOService.selectStandardsByStandnumber(page.getStandNumber(),page.getStandType()); SarBussionessStandEOPage sarBussionessStandEOPage = new SarBussionessStandEOPage(); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsTask/controller/TbTaskController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsTask/controller/TbTaskController.java index ac5138bc..cd31f36c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsTask/controller/TbTaskController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsTask/controller/TbTaskController.java @@ -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 { 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 diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsTask/entity/TbTask.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsTask/entity/TbTask.java index fcd393de..5da780f7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/tsTask/entity/TbTask.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/tsTask/entity/TbTask.java @@ -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; diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/SarStandItems/SarStandItemsMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/SarStandItems/SarStandItemsMapper.xml index a333b0fc..ae17f0f1 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/SarStandItems/SarStandItemsMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/SarStandItems/SarStandItemsMapper.xml @@ -811,4 +811,11 @@ + + diff --git a/doc/sql/20220930_定时任务添加IP地址.sql b/doc/sql/20220930_定时任务添加IP地址.sql new file mode 100644 index 00000000..182e0a22 --- /dev/null +++ b/doc/sql/20220930_定时任务添加IP地址.sql @@ -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`; \ No newline at end of file