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则无能为力,在这种情况下,大多数人都会编写相关的程序来处理成自己想要的数据,但每次处理相同逻 ...
随机推荐
- WPF 自定义控件入门 可重写的各个方法或属性的意义
本文属于 WPF 自定义控件入门系列博客.本文整理在 WPF 里面,自定义控件,非用户控件时,可以重写基类的许多方法和属性,这些方法和属性的作用和含义.方便让大家了解到自定义控件时,有哪些方法或属性可 ...
- dotnet 读 WPF 源代码笔记 为什么加上 BooleanBoxes 类
在 WPF 框架,为什么需要定义一个 BooleanBoxes 类.为什么在 D3DImage 的 Callback 方法里面,传入的是 object 对象,却能被转换为布尔.本文将告诉大家为什么需要 ...
- dotnet 6 数组拷贝性能对比
本文来对比多个不同的方法进行数组拷贝,和测试其性能 测试性能必须采用基准(标准)性能测试方法,否则测试结果不可信.在 dotnet 里面,可以采用 BenchmarkDotNet 进行性能测试.详细请 ...
- WPF 基础 2D 图形学知识 判断点是否在线段上
在知道一个使用两个点表示的线段,和另一个点,求另一个点是否在线段上 本文算法属于通用的算法,可以在 WPF 和 UWP 和 Xamarin 等上运行,基本上所有的 .NET 平台都能执行 如下图,如果 ...
- Data Lake_理解数据湖
Pentaho首席技术官James Dixon创造了"数据湖"一词.它把数据集市描述成一瓶水(清洗过的,包装过的和结构化易于使用的).而数据湖更像是在自然状态下的水,数据流从源系统 ...
- 【译】使用 GitHub Copilot 作为你的编码 GPS
GitHub Copilot 是一个改变游戏规则的人工智能助手,可以彻底改变您在 Visual Studio 中的编码流程.在我们的视频系列中,Bruno Capuano 探讨了这个智能编码伙伴如何 ...
- C#TMS系统学习(ShippingNotice页面)
C#TMS系统代码-业务页面ShippingNotice学习 学一个业务页面,ok,领导开完会就被裁掉了,很突然啊,他收拾东西的时候我还以为他要旅游提前请假了,还在寻思为什么回家连自己买的几箱饮料都要 ...
- JDK源码阅读-------自学笔记(十三)(java.text.DateFormat和SimpleDateFormat类)
时间相关类总图
- 撤销 git commit
目录 文章目录 目录 场景1:撤回 commit,不撤销 git add .,保留代码 场景2:撤回 commit,撤销 git add .,保留代码 场景3:撤销 commit,撤销 git add ...
- nginx重载流程nginx请求处理流程nginx单进程和多进程
nginx重载流程 首先nginx会向master进程发送HUP信号[reload命令] master进程校验配置语法是否正确 master进程打开新的监听端口 master进程用心配置启动新的wor ...