diff --git a/securitycontrol-commons/securitycontrol-commons-core/src/main/java/com/securitycontrol/common/core/config/SpringThreadPoolConfig.java b/securitycontrol-commons/securitycontrol-commons-core/src/main/java/com/securitycontrol/common/core/config/SpringThreadPoolConfig.java new file mode 100644 index 0000000..a56b96d --- /dev/null +++ b/securitycontrol-commons/securitycontrol-commons-core/src/main/java/com/securitycontrol/common/core/config/SpringThreadPoolConfig.java @@ -0,0 +1,64 @@ +package com.securitycontrol.common.core.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @author cw chen + * @description TODO + * @date 2022-08-22 14:42 + */ +@EnableAsync +@Configuration +public class SpringThreadPoolConfig { + /** + * 核心线程数(默认线程数) + */ + private int corePoolSize = 10; + + /** + * 最大线程数 + */ + private int maxPoolSize = 10; + + /** + * 允许线程空闲时间(单位:默认为秒) + */ + private int keepAliveTime = 10; + + /** + * 缓冲队列数 + */ + private int queueCapacity = 200; + + /** + * 线程池名前缀 + */ + private String threadNamePrefix = "custom-executor"; + + @Bean("testTaskExecutor") + public ThreadPoolTaskExecutor taskExecutor1() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + //设置核心线程数 + executor.setCorePoolSize(corePoolSize); + //设置最大线程数 + executor.setMaxPoolSize(maxPoolSize); + //线程池所使用的缓冲队列 + executor.setQueueCapacity(queueCapacity); + //等待任务在关机时完成--表明等待所有线程执行完 + executor.setWaitForTasksToCompleteOnShutdown(true); + // 等待时间 (默认为0,此时立即停止),并没等待xx秒后强制停止 + executor.setKeepAliveSeconds(keepAliveTime); + // 线程名称前缀 + executor.setThreadNamePrefix(threadNamePrefix); + // 线程池对拒绝任务的处理策略 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + // 初始化 + executor.initialize(); + return executor; + } + +} diff --git a/securitycontrol-commons/securitycontrol-commons-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/securitycontrol-commons/securitycontrol-commons-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 89890b7..278b21c 100644 --- a/securitycontrol-commons/securitycontrol-commons-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/securitycontrol-commons/securitycontrol-commons-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,2 @@ com.securitycontrol.common.core.utils.SpringUtils +com.securitycontrol.common.core.config.SpringThreadPoolConfig diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/background/dto/TodayTaskDto.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/background/dto/TodayTaskDto.java new file mode 100644 index 0000000..ea89fbd --- /dev/null +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/background/dto/TodayTaskDto.java @@ -0,0 +1,43 @@ +package com.securitycontrol.entity.background.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author:cwchen + * @date:2024-03-23-12:45 + * @version:1.0 + * @description:今日任务-dto + */ +@Data +public class TodayTaskDto { + + + + @ApiModelProperty("角色编码") + private String roleCode; + + @ApiModelProperty("日期") + private String workDay; + + @ApiModelProperty("开始时间") + private String startTime; + + @ApiModelProperty("结束时间") + private String endTime; + + @ApiModelProperty("关键字") + private String keyWord; + + @ApiModelProperty("建管单位编码") + private String orgCode; + + private List orgCodeList; + + @ApiModelProperty("风险等级") + private String riskLevel; + + private List riskLevelList; +} diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/background/vo/TodayTaskVo.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/background/vo/TodayTaskVo.java new file mode 100644 index 0000000..6744c11 --- /dev/null +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/background/vo/TodayTaskVo.java @@ -0,0 +1,65 @@ +package com.securitycontrol.entity.background.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author:cwchen + * @date:2024-03-23-12:45 + * @version:1.0 + * @description:今日任务-VO + */ +@Data +public class TodayTaskVo { + + @ApiModelProperty("站班会id") + private String classId; + + @ApiModelProperty("工作负责人") + private String workManager; + + @ApiModelProperty("球机编码") + private String macId; + + @ApiModelProperty("puid") + private String puid; + + @ApiModelProperty("工作内容") + private String workContent; + + @ApiModelProperty("风险等级") + private String riskLevel; + + @ApiModelProperty("建管单位") + private String org; + + @ApiModelProperty("标段工程名称") + private String bidName; + + @ApiModelProperty("单项工程编码") + private String signCode; + + @ApiModelProperty("标段工程编码") + private String bidCode; + + @ApiModelProperty("工程编码") + private String proCode; + + @ApiModelProperty("监理单位") + private String jldw; + + @ApiModelProperty("作业票编号") + private String ticketNo; + + @ApiModelProperty("施工单位") + private String sgdw; + + @ApiModelProperty("施工状态") + private String sgStatus; + + @ApiModelProperty("督查人ID") + private String checkUserId; + + @ApiModelProperty("督查人") + private String checkUserName; +} diff --git a/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/controller/TodayTaskController.java b/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/controller/TodayTaskController.java new file mode 100644 index 0000000..20fd578 --- /dev/null +++ b/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/controller/TodayTaskController.java @@ -0,0 +1,39 @@ +package com.securitycontrol.background.controller; + +import com.securitycontrol.background.service.ITodayTaskService; +import com.securitycontrol.common.core.web.controller.BaseController; +import com.securitycontrol.common.core.web.page.TableDataInfo; +import com.securitycontrol.common.log.annotation.Log; +import com.securitycontrol.common.log.enums.OperationType; +import com.securitycontrol.entity.background.dto.TodayTaskDto; +import com.securitycontrol.entity.background.vo.TodayTaskVo; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author:cwchen + * @date:2024-03-23-12:40 + * @version:1.0 + * @description:当日任务 + */ +@RestController +@RequestMapping("/back/todayTask/") +public class TodayTaskController extends BaseController { + + @Resource(name = "ITodayTaskService") + private ITodayTaskService service; + + @ApiOperation(value = "获取当日任务列表") + @GetMapping("getToDayTaskLists") + @Log(title = "风险值班管理", menu = "风险值班管理->当日任务", grade = OperationType.QUERY_BUSINESS, details = "查询班组", type = "业务日志") + public TableDataInfo getToDayTaskLists(TodayTaskDto dto) { + startPage(); + List list = service.getToDayTaskLists(dto); + return getDataTable(list); + } +} diff --git a/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/mapper/ITodayTaskMapper.java b/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/mapper/ITodayTaskMapper.java new file mode 100644 index 0000000..7d649f6 --- /dev/null +++ b/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/mapper/ITodayTaskMapper.java @@ -0,0 +1,39 @@ +package com.securitycontrol.background.mapper; + +import com.securitycontrol.entity.background.dto.TodayTaskDto; +import com.securitycontrol.entity.background.vo.TodayTaskVo; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author:cwchen + * @date:2024-03-23-12:49 + * @version:1.0 + * @description:当日任务-数据库访问层 + */ +@Repository(value = "ITodayTaskMapper") +public interface ITodayTaskMapper { + /** + * 获取当日任务列表 + * + * @param dto + * @return List + * @description + * @author cwchen + * @date 2024/3/23 13:36 + */ + List getToDayTaskLists(TodayTaskDto dto); + + /** + * 查询督查人 + * + * @param checkUserId + * @return String + * @description + * @author cwchen + * @date 2024/3/23 14:38 + */ + String getCheckUser(String checkUserId); + +} diff --git a/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/service/ITodayTaskService.java b/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/service/ITodayTaskService.java new file mode 100644 index 0000000..755bcd1 --- /dev/null +++ b/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/service/ITodayTaskService.java @@ -0,0 +1,24 @@ +package com.securitycontrol.background.service; + +import com.securitycontrol.entity.background.dto.TodayTaskDto; +import com.securitycontrol.entity.background.vo.TodayTaskVo; + +import java.util.List; + +/** + * @author:cwchen + * @date:2024-03-23-12:47 + * @version:1.0 + * @description:当日任务 + */ +public interface ITodayTaskService { + /** + * 获取当日任务列表 + * @param dto + * @return List + * @description + * @author cwchen + * @date 2024/3/23 13:21 + */ + List getToDayTaskLists(TodayTaskDto dto); +} diff --git a/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/service/impl/TodayTaskServiceImpl.java b/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/service/impl/TodayTaskServiceImpl.java new file mode 100644 index 0000000..95da796 --- /dev/null +++ b/securitycontrol-model/securitycontrol-background/src/main/java/com/securitycontrol/background/service/impl/TodayTaskServiceImpl.java @@ -0,0 +1,95 @@ +package com.securitycontrol.background.service.impl; + +import com.securitycontrol.background.mapper.ITodayTaskMapper; +import com.securitycontrol.background.service.ITodayTaskService; +import com.securitycontrol.common.core.utils.aes.DateTimeHelper; +import com.securitycontrol.entity.background.dto.TodayTaskDto; +import com.securitycontrol.entity.background.vo.TodayTaskVo; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.Callable; +import java.util.concurrent.Future; + +/** + * @author:cwchen + * @date:2024-03-23-12:47 + * @version:1.0 + * @description:当日任务-业务层 + */ +@Service(value = "ITodayTaskService") +@Slf4j +public class TodayTaskServiceImpl implements ITodayTaskService { + + @Resource(name = "ITodayTaskMapper") + private ITodayTaskMapper mapper; + + @Resource(name = "testTaskExecutor") + private ThreadPoolTaskExecutor testTaskExecutor; + + @Override + public List getToDayTaskLists(TodayTaskDto dto) { + // 多线程执行操作,存放的数据集合 + List futureList = new ArrayList<>(); + List newList = new ArrayList<>(); + try { + dto = handleParams(dto); + List list = mapper.getToDayTaskLists(dto); + for (TodayTaskVo todayTaskVo : list) { + Future future = testTaskExecutor.submit(new Callable() { + @Override + public TodayTaskVo call() throws Exception { + // 查询督查人 + String checkUserName = mapper.getCheckUser(todayTaskVo.getCheckUserId()); + todayTaskVo.setCheckUserName(checkUserName); + return todayTaskVo; + } + }); + futureList.add(future); + } + for (Future future : futureList) { + TodayTaskVo todayTaskVo = future.get(); + newList.add(todayTaskVo); + } + } catch (Exception e) { + log.error("获取当日任务列表", e); + } + return newList; + } + + /** + * 处理参数 + * @param dto + * @return TodayTaskDto + * @description + * @author cwchen + * @date 2024/3/23 14:33 + */ + public TodayTaskDto handleParams(TodayTaskDto dto) { + if (StringUtils.isBlank(dto.getWorkDay())) { + dto.setStartTime(DateTimeHelper.getNowDate()); + dto.setEndTime(DateTimeHelper.getNowDate()); + } else { + String[] dateArr = dto.getWorkDay().split(" - "); + dto.setStartTime(dateArr[0]); + dto.setEndTime(dateArr[1]); + } + if (StringUtils.isNotBlank(dto.getOrgCode())) { + String[] buildCodeArr = dto.getOrgCode().split(","); + List buildCodeList = Arrays.asList(buildCodeArr); + dto.setOrgCodeList(buildCodeList); + } + if (StringUtils.isNotBlank(dto.getRiskLevel())) { + String[] riskLevelArr = dto.getRiskLevel().split(","); + List riskLevelList = Arrays.asList(riskLevelArr); + dto.setRiskLevelList(riskLevelList); + } + return dto; + } +} diff --git a/securitycontrol-model/securitycontrol-background/src/main/resources/mapper/TodayTaskMapper.xml b/securitycontrol-model/securitycontrol-background/src/main/resources/mapper/TodayTaskMapper.xml new file mode 100644 index 0000000..1a93a0f --- /dev/null +++ b/securitycontrol-model/securitycontrol-background/src/main/resources/mapper/TodayTaskMapper.xml @@ -0,0 +1,57 @@ + + + + + + + + + + \ No newline at end of file