tempCode
package com.cmbchina.monitor.service.imp;
import com.alibaba.fastjson.JSON;
import com.cmbchina.monitor.entity.kanban.detail.CardDetailDTO;
import org.apache.xmlbeans.impl.jam.provider.ResourcePath;
import org.springframework.util.StringUtils;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import static com.cmbchina.monitor.service.imp.KanBanCheckServiceImpl.recordCardIssue;
/**
* @Author IT006915
* @Date 2023/11/28 16:01
*/
public class KanbanCheckRulesImpl {
public static Map<String, List<String>> METHOD_CHECK_CONFIG = new HashMap<>();
public static void main(String[] args) {
setMethodCheckConfig();
CardDetailDTO cardDetailDTO = JSON.parseObject("", CardDetailDTO.class);
checkWorkHours(cardDetailDTO);
}
// 检查卡片工时是否超过35
public static void checkWorkHours(CardDetailDTO cardDetailDTO) {
//判断当前卡片是否需要执行此检查方法
if (!isExecCheck(cardDetailDTO,"checkWorkHours")){
return;
}
System.out.println();
if (cardDetailDTO.getTotalWorkingHours() >= 30){
recordCardIssue(cardDetailDTO.getId(), "提醒", "卡片公共工时已达到30小时");
}
if (cardDetailDTO.getTotalWorkingHours() > 35){
recordCardIssue(cardDetailDTO.getId(), "错误", "卡片公共工时已超过到35小时");
}
}
/**
* 根据执行方法和卡片信息,判断卡片是否需要执行当前检查方法
* @param cardDetailDTO
* @param methodName
* @return
*/
public static boolean isExecCheck(CardDetailDTO cardDetailDTO, String methodName) {
if (METHOD_CHECK_CONFIG.isEmpty() || METHOD_CHECK_CONFIG.get(methodName) == null) {
return false;
}
if (METHOD_CHECK_CONFIG.get(methodName).contains(cardDetailDTO.getCardType().getName()) ||
METHOD_CHECK_CONFIG.get(methodName).contains(cardDetailDTO.getTitle())) {
return true;
}
return false;
}
public static void setMethodCheckConfig() {
Properties configProperties = getConfigProperties();
if (configProperties == null) {
return;
}
Object methodCheckJson = configProperties.get("kanban.method.check");
if (!StringUtils.isEmpty(methodCheckJson)) {
METHOD_CHECK_CONFIG = JSON.parseObject((String)methodCheckJson, Map.class);
}
}
public static Properties getConfigProperties() {
Properties properties = new Properties();
try {
URL resource = ResourcePath.class.getClassLoader().getResource("checkruler.properties");
FileInputStream fileInputStream = new FileInputStream(resource.getPath());
properties.load(new InputStreamReader(fileInputStream, "UTF-8"));
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
return properties.isEmpty() ? null : properties;
}
}
tempCode的更多相关文章
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- 关于全局ID,雪花(snowflake)算法的说明
上次简单的说一下:http://www.cnblogs.com/dunitian/p/6041745.html#uid C#版本的国外朋友已经封装了,大家可以去看看:https://github.co ...
- 水印第三版 ~ 变态水印(这次用Magick.NET来实现,附需求分析和源码)
技能 汇总:http://www.cnblogs.com/dunitian/p/4822808.html#skill 以前的水印,只是简单走起,用的是原生态的方法.现在各种变态水印,于是就不再用原生态 ...
- 中文分词之结巴分词~~~附使用场景+demo(net)
常用技能(更新ing):http://www.cnblogs.com/dunitian/p/4822808.html#skill 技能总纲(更新ing):http://www.cnblogs.com/ ...
- 当GitHub把我当成DDos攻击者拉进了黑名单中。。。
Github黑名单自救+快速稳定FQ 异常处理汇总-开发工具 http://www.cnblogs.com/dunitian/p/4522988.html 原因:项目冲突,没有先更新后提交,他自行更 ...
- Gitlab使用总结
Gitlab日常开发流程 1. 从某一功能分支新建一个自己的开发分支 二. 将master分支clone到本地 mkdir git-test cd git-test\ git clone http:/ ...
- VS2013 带命令行参数的调试问题 解决方案
int main(int argc,char* argv[]) argc是命令行总的参数个数,argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数 比如: ...
- int main(int argc,char* argv[])详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数, 比如: int main(int argc, ...
- 关于main函数传参数的问题
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int ...
- Sql Server 调用DLL
背景 在处理数据或者分析数据时,我们常常需要加入一定的逻辑,该些处理逻辑有些sql是可以支持,有些逻辑SQL则无能为力,在这种情况下,大多数人都会编写相关的程序来处理成自己想要的数据,但每次处理相同逻 ...
随机推荐
- [ELK] Docker 运行 Elastic Stack 支持 TLS 的两种简单方式
第一种就是 按照官方文档进行配置,指定证书位置开启. Run the Elastic Stack in Docker with TLS enabled. 第二种就是 9200 端口只暴露给本机,127 ...
- dotnet 已知问题 使用 Directory.EnumerateXXX 方法枚举 C 盘根路径可能错误的问题
在 dotnet 里面,可以使用 Directory.EnumerateXXX 系列方法进行枚举文件或文件夹.在准备枚举驱动器根路径的文件或文件夹时,可能获取到错误的路径.错误的步骤在于传入的是如 C ...
- Vue2源码解析-源码调试与核心流程梳理图解
现在VUE3已经有一段时间了,也慢慢普及起来了.不过因为一直还在使用VUE2的原因还是去了解和学了下它的源码,毕竟VUE2也不会突然就没了是吧,且VUE3中很多原理之类的也是类似的.然后就准备把VUE ...
- EFK+logstash构建日志收集平台
一.环境 k8s集群: 控制节点:192.168.199.131 主机名:master 配置:4核6G 工作节点:192.168.199.128 主机名:monitor 配置:4核4G 1.1 ...
- 对C语言符号的一些冷门知识运用的剖析和总结
符号 目录 符号 注释 奇怪的注释 C风格的注释无法嵌套 一些特殊的注释 注释的规则建议 反斜杠'\' 反斜杠有续行的作用,但要注意续行后不能添加空格 回车也能起到换行的作用,那续行符的意义在哪? 反 ...
- Linux备忘手册
资料来源:技术胖 jspang.com 下载linux学习路径:https://newimg.jspang.com/linux-image01.png Linux备忘手册: 百度网盘 链接:https ...
- USB3.0与Type-C接口的关系
USB全称为Universal Serial Bus,翻译过来就是通用串行总线,是连接计算机与外部设备的一种串口总线标准.USB的发展经历了一下阶段: USB1.0:1.5Mbps(192KB/s)低 ...
- 2022年官网下安装Tomcat最全版与官网查阅方法
目录 一.环境整合 构建工具(参考工具部署方式) 二.官网下载 三.解压安装 四.配置环境 五.启动运行 六.配置为服务 七.查看设置服务 一.环境整合 构建工具(参考工具部署方式) 软件名称 版本 ...
- 复杂模式的两个List与Map合并为一个Map的拼接;笛卡尔乘积处理数据问题
简介 (Introduction): 背景 数据从多个表中获取,每个表的数据条数不是唯一的,最后结果要拼接成一个Map<String,Object>的模式封装所有数据,每个数据是一条. 结 ...
- 【数字基座·智慧物联】AIRIOT新品发布会在京举办
2023年6月6日,由航天科技控股集团股份有限公司主办的"数字基座·智慧物联"AIRIOT新品发布会在北京成功举办,重磅发布了AIRIOT 4.0物联网平台的五大核心能力引擎,并邀 ...