wangliang 9 месяцев назад
Родитель
Сommit
785f5561fb

+ 3 - 9
sop-api/src/main/java/com/qmth/sop/server/ServerApplication.java

@@ -15,10 +15,10 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 import javax.annotation.Resource;
 
-@SpringBootApplication(scanBasePackages = "com.qmth.*", exclude = {SecurityAutoConfiguration.class})
-@MapperScan({"com.qmth.sop.business.mapper"})
+@SpringBootApplication(scanBasePackages = "com.qmth.*", exclude = { SecurityAutoConfiguration.class })
+@MapperScan({ "com.qmth.sop.business.mapper" })
 //主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,做过web开发的同学一定都有用过@Controller,@Service,@Repository注解,查看其源码你会发现,他们中有一个共同的注解@Component,没错@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中
-@EntityScan(basePackages = {"com.qmth.sop.business.entity"})
+@EntityScan(basePackages = { "com.qmth.sop.business.entity" })
 //用来扫描和发现指定包及其子包中的Entity定义
 @EnableTransactionManagement // spring开启事务支持
 @EnableAsync // 开启异步任务
@@ -39,12 +39,6 @@ public class ServerApplication {
         };
     }
 
-//    @Primary
-//    @Bean
-//    public TaskExecutor primaryTaskExecutor() {
-//        return new MyThreadPool();
-//    }
-
     @Bean
     public CustomizedSqlInjector customizedSqlInjector() {
         return new CustomizedSqlInjector();

+ 0 - 75
sop-business/src/main/java/com/qmth/sop/business/threadPool/MyThreadPool.java

@@ -1,75 +0,0 @@
-//package com.qmth.sop.business.threadPool;//package com.qmth.themis.business.threadPool;
-//
-//import com.qmth.sop.business.cache.CommonCacheService;
-//import com.qmth.sop.business.entity.SysConfig;
-//import com.qmth.sop.common.contant.SystemConstant;
-//import com.qmth.sop.common.enums.ExceptionResultEnum;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.context.annotation.Primary;
-//import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-//
-//import javax.annotation.Resource;
-//import java.util.Objects;
-//import java.util.Optional;
-//import java.util.concurrent.Executor;
-//import java.util.concurrent.ThreadPoolExecutor;
-//
-///**
-// * @Description: 线程池应用配置
-// * @Param:
-// * @return:
-// * @Author: wangliang
-// * @Date: 2019/3/21
-// */
-//@Configuration
-//public class MyThreadPool extends ThreadPoolTaskExecutor {
-//    private final static Logger log = LoggerFactory.getLogger(MyThreadPool.class);
-//    private MyThreadPool threadPoolTaskExecutor = null;
-//    static final int cpuNum = Runtime.getRuntime().availableProcessors();
-//
-//    @Resource
-//    CommonCacheService commonCacheService;
-//
-//    /**
-//     * 线程池
-//     *
-//     * @return
-//     */
-//    @Bean
-//    @Primary
-//    public Executor taskThreadPool() {
-//        SysConfig sysConfigCustomThreadPoolCoreSize = commonCacheService.addSysConfigCache(SystemConstant.CUSTOM_THREAD_POOL_CORE_SIZE);
-//        Optional.ofNullable(sysConfigCustomThreadPoolCoreSize).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置是否自定义线程池大小"));
-//        boolean customThreadPoolCoreSize = Boolean.valueOf(sysConfigCustomThreadPoolCoreSize.getConfigValue());
-//
-//        SysConfig sysConfigThreadPoolCoreSize = commonCacheService.addSysConfigCache(SystemConstant.THREAD_POOL_CORE_SIZE);
-//        Optional.ofNullable(sysConfigThreadPoolCoreSize).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置自定义线程池大小"));
-//        Integer threadPoolCoreSize = Integer.valueOf(sysConfigThreadPoolCoreSize.getConfigValue());
-//
-//        if (Objects.isNull(threadPoolTaskExecutor)) {
-//            log.info("cpuNum:{}", cpuNum);
-//            threadPoolTaskExecutor = new MyThreadPool();
-//            if (!customThreadPoolCoreSize && cpuNum > 0) {
-//                threadPoolTaskExecutor.setCorePoolSize(cpuNum);//核心线程数
-//                threadPoolTaskExecutor.setMaxPoolSize(cpuNum * 2);//最大线程数
-//            } else {
-//                threadPoolTaskExecutor.setCorePoolSize(threadPoolCoreSize);//核心线程数
-//                threadPoolTaskExecutor.setMaxPoolSize(threadPoolCoreSize * 2);//最大线程数
-//            }
-//            threadPoolTaskExecutor.setKeepAliveSeconds(SystemConstant.THREAD_POOL_KEEP_ALIVE_SECONDS);//线程空闲时间
-//            threadPoolTaskExecutor.setQueueCapacity(SystemConstant.THREAD_POOL_QUEUE_CAPACITY);//队列容量
-//            threadPoolTaskExecutor.setThreadNamePrefix(SystemConstant.THREAD_POOL_NAME);
-//            threadPoolTaskExecutor.setAllowCoreThreadTimeOut(true);//设置是否允许核心线程超时。若允许,核心线程超时后,会被销毁。默认为不允许(fasle)
-//            threadPoolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);//设置shutdown时是否等到所有任务完成再真正关闭
-//            threadPoolTaskExecutor.setAwaitTerminationSeconds(60);//当setWaitForTasksToCompleteOnShutdown(true)时,setAwaitTerminationSeconds 设置在 shutdown 之后最多等待多长时间后再真正关闭线程池
-//            // rejection-policy:当pool已经达到max size的时候,如何处理新任务
-//            // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
-//            threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
-//            threadPoolTaskExecutor.initialize();
-//        }
-//        return threadPoolTaskExecutor;
-//    }
-//}

+ 281 - 58
sop-common/src/main/java/com/qmth/sop/common/contant/SystemConstant.java

@@ -30,99 +30,167 @@ import java.util.stream.Collectors;
  */
 public class SystemConstant {
 
-
     private final static Logger log = LoggerFactory.getLogger(SystemConstant.class);
 
     /**
      * 系统常量
      */
     public static final String CHARSET_NAME = "UTF-8";
+
     //    public static final String CHARSET_GB2312 = "gb2312";
     public static final Charset CHARSET = Charset.forName(CHARSET_NAME);
+
     public static final String CHARSET_GBK = "gbk";
+
     public static final String SUCCESS = "success";
+
     public static final String EXCEL_ERROR = "error";
+
     public static final String RESULT_ERROR = "error";
+
     public static final String ALREADY_COUNT = "alreadyCount";
+
     public static final String ERROR_MSG = "errorMsg";
+
     public static final String UPDATE_TIME = "updateTime";
+
     public static final String SESSION = "session:";
+
     public static final String USER = "account";
+
     public static final String TASK = "task";
+
     public static final String QUERY = "query";
+
     public static final String PARAMS = "params";
+
     public static final String ORG = "org";
+
     public static final String ORG_ID = "orgId";
+
     public static final String MD5 = "MD5";
-//    public static final String SIGNATURE = "signature";
-//    public static final String GET = "get";
+
+    //    public static final String SIGNATURE = "signature";
+    //    public static final String GET = "get";
     public static final String GET_UNKNOWN = "?";
+
     public static final String GET_SYMBOL = "&";
+
     public static final String GET_EQUAL = "=";
-//    public static final String PATH_MATCH = "*";
-//    public static final String PATH_SUBSTR = "/#";
-//    public static final String METHOD = "post";
+
+    //    public static final String PATH_MATCH = "*";
+    //    public static final String PATH_SUBSTR = "/#";
+    //    public static final String METHOD = "post";
     public static final String ERROR = "/error";
+
     public static final String PT = "PT";
-//    public static final String USER_DIR = "user.dir";
+
+    //    public static final String USER_DIR = "user.dir";
     public static final String OS_NAME = "os.name";
+
     public static final String TMP_DIR = "java.io.tmpdir";
+
     public static final String FILE = "file";
+
     public static final String SIZE = "size";
+
     public static final String WINDOWS = "Windows";
+
     public static final String ORG_SPLIT = "/";
+
     public static final String HYPHEN = "-";
-//    public static final String SYS_ADMIN = "sysadmin";
+
+    //    public static final String SYS_ADMIN = "sysadmin";
     public static final String VERSION_VALUE = "1.0.0.1";
+
     public static final String PATH = "path";
+
     public static final String TYPE = "type";
+
     public static final String LOCAL = "local";
+
     public static final String OSS = "oss";
+
     public static final String UPLOAD_TYPE = "uploadType";
+
     public static final String TEMP = "temp";
+
     public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
+
     public static final String DEFAULT_DATE_CRM_DETAIL_SOP_PATTERN = "yyyy/MM/dd HH:mm";
+
     public static final String DEFAULT_DATE_YMD_PATTERN = "yyyy-MM-dd";
+
     public static final String DEFAULT_DATE_CODE_PATTERN = "yyyyMMdd";
+
     public static final String DEFAULT_DATE_ATTACHMENT_PATTERN = "/yyyy/MM/dd";
+
     public static final String DEFAULT_DATE_DAY_PATTERN = "MM月dd日";
+
     public static final String DEFAULT_DATE_YEAR_PATTERN = "YYYY年";
+
     public static final String DEFAULT_DATE_YMD_S_PATTERN = "yyyy年MM月dd日";
+
     public static final String DEFAULT_DATE_YMD_S_QUERY_PATTERN = "yyyy年-MM月dd日";
+
     public static final String JSON_PREFIX = ".json";
+
     public static final String XLSX_PREFIX = ".xlsx";
-//    public static final String XLS_PREFIX = "xls";
+
+    //    public static final String XLS_PREFIX = "xls";
     public static final String EXCEL_DATA = "excelData";
+
     public static final String EXCEL_DATA_ERROR = "excelDataError";
+
     public static final String EXCEL_ATTACHMENT = "excelAttachment";
+
     public static final int PAGE_SIZE_MIN = 10;
+
     public static final int PAGE_SIZE_MAX = 500;
+
     public static final int PAGE_SIZE_MAX_SELECT = 100000;
+
     public static final int IN_SIZE_MAX = 1000;
+
     public static final int PAGE_NUMBER_MIN = 1;
+
     public static final String STATIC = "static";
+
     public static final String CATALOG_LINK = "->";
+
     public static final int MAX_SEQUENCE_CIRCLE_COUNT = 20;
+
     public static final int SEQUENCE_THREAD_SLEEP = 500;
+
     public static final String ERROR_METHOD = "method";
+
     public static final String LIST_JOIN_SPLIT = ",";
+
     public static final String JOB_DATA = "jobData";
-//    public static final String AND = " and ";
-//    public static final String OR = " or ";
+
+    //    public static final String AND = " and ";
+    //    public static final String OR = " or ";
     //    public static final String APPROVE_MAP_VAR = "approve_map_var";
-//    public static final String APPROVE_AUTO = "auto";
+    //    public static final String APPROVE_AUTO = "auto";
     public static final String SYSTEM_AUTO_APPROVE = "系统自动审批";
+
     public static final String VALUE = "value";
+
     public static final String SOP = "SOP";
+
     public static final String RTZF_TENANT_ID = "tenantId";
+
     public static final String LIMIT1 = "limit 1";
+
     public static final int OFFICE_COMMON_GROUP = 1000;
 
     /**
      * 微信app
      */
     public static final String PURE_PHONE_NUMBER = "purePhoneNumber";
+
     public static final String AES_CBC_PKCS5 = "AES/CBC/PKCS5Padding";
+
     public static final String AES = "AES";
 
     /**
@@ -135,34 +203,53 @@ public class SystemConstant {
      */
     //SOP
     public static final String SOP_DYNAMIC_TABLE_FILE_NAME = "db/dynamic_create_sop_table.sql";
+
     public static final String SQL_PREFIX = ".sql";
+
     public static final String FLOW_DEPLOYMENT_ID_FIELD = "flow_deployment_id";
+
     public static final String VERSION = "version";
+
     public static final String CODE = "code";
+
     public static final String FLOW_ID = "flow_id";
-//    public static final String REGION_USER_ID = "region_user_id";
-//    public static final String ENGINEER_USER_ID = "engineer_user_id";
-//    public static final String ASSISTANT_ENGINEER_USER_ID = "assistant_engineer_user_id";
-//    public static final String ENGINEER_USERS_ID = "engineer_users_id";
+
+    //    public static final String REGION_USER_ID = "region_user_id";
+    //    public static final String ENGINEER_USER_ID = "engineer_user_id";
+    //    public static final String ASSISTANT_ENGINEER_USER_ID = "assistant_engineer_user_id";
+    //    public static final String ENGINEER_USERS_ID = "engineer_users_id";
     public static final String APPROVE_RADIO_REGION = "approve_radio_region";
+
     public static final String APPROVE_REMARK_REGION = "approve_remark_region";
+
     public static final String SIGN_REGION = "sign_region";
-//    public static final String THIRD_SERVICE_REGION_CB = "third_service_region_cb";
+    //    public static final String THIRD_SERVICE_REGION_CB = "third_service_region_cb";
+
+//    public static final String DEVICE_OUT_TIME = "device_out_time";//设备出库时间
 
-    public static final String DEVICE_OUT_TIME = "device_out_time";//设备出库时间
     public static final String DEVICE_OUT_TABLE = "device_out_table";//设备出库
-    public static final String DEVICE_IN_TIME = "device_in_time";//设备入库时间
-    public static final String DEVICE_IN_TABLE = "device_in_table";//设备入库
+
+//    public static final String DEVICE_IN_TIME = "device_in_time";//设备入库时间
+
+//    public static final String DEVICE_IN_TABLE = "device_in_table";//设备入库
 
     //质量问题反馈
     public static final String PROBLEM_POINT = "problem_point";
+
     public static final String PROBLEM_REMARK = "problem_remark";
+
     public static final String ATTACHMENT_INFO = "attachments_info";
+
     public static final String PROBLEM_TYPE = "problem_type";
+
     public static final String PROBLEM_REASON_RADIO = "problem_reason_radio";
+
     public static final String PROBLEM_DEGREE_RADIO = "problem_degree_radio";
+
     public static final String PROBLEM_USERS = "problem_users";
+
     public static final String APPROVE_CHECK_USERS = "approve_check_users";
+
     public static final String APPROVE_CHECK_THIRD_USERS = "approve_check_third_users";
 
     /**
@@ -170,209 +257,346 @@ public class SystemConstant {
      */
     public static final String REGULAR_EXPRESSION_OF_PHONE = "((\\d{3,4})|(\\(\\d{3,4}\\)-))?\\d{7,8}";
     // 有效邮箱校验表达式
-//    public static final String EMAIL_REGEX = "^[A-Za-z0-9]+([._%+-][A-Za-z0-9]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
+    //    public static final String EMAIL_REGEX = "^[A-Za-z0-9]+([._%+-][A-Za-z0-9]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
 
     /**
      * 系统配置
      */
     public static final String SYS_CODE_ENABLE = "sys.code.enable";
+
     //    public static final String SYS_MESSAGE_ENABLE = "sys.message.enable";
-//    public static final String SYS_MESSAGE_RESEND_COUNT = "sys.message.resendCount";
+    //    public static final String SYS_MESSAGE_RESEND_COUNT = "sys.message.resendCount";
     public static final String SYS_CONFIG_KEY_CHARSETS = "sys.txt.charset";
-//    public static final String ADMIN_LOGO_URL = "admin.logo.url";
+
+    //    public static final String ADMIN_LOGO_URL = "admin.logo.url";
     public static final String ATTACHMENT_TYPE = "attachment.type";
+
     public static final String ATTACHMENT_LENGTH = "attachment.length";
+
     public static final String ATTACHMENT_SIZE = "attachment.size";
-//    public static final String THREAD_POOL_CORE_SIZE = "thread.pool.core.size";
-//    public static final String CUSTOM_THREAD_POOL_CORE_SIZE = "custom.thread.pool.core.size";
+
+    //    public static final String THREAD_POOL_CORE_SIZE = "thread.pool.core.size";
+    //    public static final String CUSTOM_THREAD_POOL_CORE_SIZE = "custom.thread.pool.core.size";
     public static final String SESSION_ACTIVE = "session.active";
+
     public static final String SMS_NORMAL_CODE = "sms.normal.code";
+
     public static final String CODE_EXPIRED_TIME = "code.expired.time";
+
     public static final String CODE_SEND_INTERVAL = "code.send.interval";
+
     public static final String SMS_SIGN_NAME = "sms.sign.name";
+
     public static final String SMS_TPL_CODE = "sms.tpl.code";
+
     public static final String FLOW_CODE_LENGTH = "flow.code.length";
+
     public static final String FLOW_JOB_BEFORE_TIME = "flow.job.before.time";
+
     public static final String FLOW_JOB_AFTER_TIME = "flow.job.after.time";
+
     public static final String NOTICE_JOB_AFTER_TIME = "notice.job.after.time";
+
     public static final String REMIND_JOB_POLL_TIME = "remind.job.poll.time";
+
     public static final String REMIND_JOB_DB_LIMIT = "remind.job.db.limit";
+
     public static final String SMS_NOTICE_CODE = "sms.notice.code";
+
     public static final String SMS_SOP_BEFORE_REMIND_CODE = "sms.sop.before.remind.code";
+
     public static final String SMS_SOP_DONE_CODE = "sms.sop.done.code";
+
     public static final String SMS_FLOW_PROJECT_EXCHANGE_FINISH_CODE = "sms.flow.project.exchange.finish.code";
+
     public static final String SMS_FLOW_DING_EXCEPTION_FINISH_CODE = "sms.flow.ding.exception.finish.code";
+
     public static final String SMS_SOP_AFTER_REMIND_CODE = "sms.sop.after.remind.code";
+
     public static final String SMS_VIOLATION_REMIND_CODE = "sms.violation.remind.code";
+
     public static final String SMS_CUSTOM_INFO_MISSING_REMIND_CODE = "sms.custom.info.missing.remind.code";
+
     public static final String SOP_QUICK_COUNT = "sop.quick.count";
-//    public static final String WXAPP_APP_ID = "wxapp.appid";
-//    public static final String WXAPP_REQUEST_URL = "wxapp.request.url";
-//    public static final String WXAPP_PHONE_BIND_NEW_URL = "wxapp.phone.bind.new.url";
-//    public static final String FACE_VERIFY_BAIDU_LOCAL_APP_ID = "face.verify.baiduLocalAppId";
-//    public static final String FACE_VERIFY_BAIDU_LOCAL_URL_PREFIX = "face.verify.baiduLocalUrlPrefix";
+
+    //    public static final String WXAPP_APP_ID = "wxapp.appid";
+    //    public static final String WXAPP_REQUEST_URL = "wxapp.request.url";
+    //    public static final String WXAPP_PHONE_BIND_NEW_URL = "wxapp.phone.bind.new.url";
+    //    public static final String FACE_VERIFY_BAIDU_LOCAL_APP_ID = "face.verify.baiduLocalAppId";
+    //    public static final String FACE_VERIFY_BAIDU_LOCAL_URL_PREFIX = "face.verify.baiduLocalUrlPrefix";
     public static final String BAIDU_FACE_COMPARE_URL = "baidu.face.compare.url";
+
     public static final String BAIDU_FACE_COMPARE_SCORE = "baidu.face.compare.score";
-//    public static final String FXXK_APP_ID = "fxxk.app.id";
-//    public static final String FXXK_APP_SECRET = "fxxk.app.secret";
-//    public static final String FXXK_PERMANENT_CODE = "fxxk.permanent.code";
-//    public static final String FXXK_CURRENT_OPEN_USER_ID = "fxxk.curren.open.user.id";
-//    public static final String FXXK_API_NAME_CRM = "fxxk.api.name.crm";
-//    public static final String FXXK_API_NAME_CRM_DETAIL = "fxxk.api.name.crm.detail";
+
+    //    public static final String FXXK_APP_ID = "fxxk.app.id";
+    //    public static final String FXXK_APP_SECRET = "fxxk.app.secret";
+    //    public static final String FXXK_PERMANENT_CODE = "fxxk.permanent.code";
+    //    public static final String FXXK_CURRENT_OPEN_USER_ID = "fxxk.curren.open.user.id";
+    //    public static final String FXXK_API_NAME_CRM = "fxxk.api.name.crm";
+    //    public static final String FXXK_API_NAME_CRM_DETAIL = "fxxk.api.name.crm.detail";
     public static final String FXXK_APP_AUTH_URL = "fxxk.app.auth.url";
+
     public static final String FXXK_USER_BY_MOBILE_URL = "fxxk.user.by.mobile.url";
+
     public static final String FXXK_CUSTOM_QUERY_URL = "fxxk.custom.query.url";
+
     public static final String FXXK_USER_QUERY_URL = "fxxk.user.query.url";
+
     public static final String RTZF_OSS_LOGIN_URL = "rtzf.oss.login.url";
+
     public static final String REGION_COORDINATOR_DING_TIME = "region.coordinator.ding.time";
 
     /**
      * api前缀
      */
     public static final String PREFIX_URL_WIDGET = "/admin/widget";
+
     public static final String PREFIX_FLOW = "/admin/flow";
+
     public static final String PREFIX_URL_COMMON = "/admin/common";
+
     public static final String PREFIX_URL_WXAPP = "/admin/wxapp";
+
     public static final String PREFIX_URL_USER = "/admin/user";
+
     public static final String PREFIX_URL_USER_ARCHIVES = "/admin/user/archives";
+
     public static final String PREFIX_URL_USER_ARCHIVES_ALLOCATION = "/admin/user/archives/allocation";
+
     public static final String PREFIX_URL_USER_ARCHIVES_ALLOCATION_LOG = "/admin/user/archives/allocation/log";
+
     public static final String PREFIX_URL_TASK = "/admin/task";
+
     public static final String PREFIX_URL_SYS = "/admin/sys";
+
     public static final String PREFIX_URL_ORG = "/admin/org";
+
     public static final String PREFIX_URL_CUSTOM = "/sys/custom";
+
     public static final String PREFIX_URL_CUSTOM_RECEIVER = "/sys/custom/receiver";
+
     public static final String PREFIX_URL_LEVEL = "/sys/level";
+
     public static final String PREFIX_URL_DEVICE = "/sys/device";
+
     public static final String PREFIX_URL_DING_GROUP = "/sys/ding/group";
+
     public static final String PREFIX_URL_SUPPLIER = "/sys/supplier";
+
     public static final String PREFIX_URL_LOG = "/sys/log";
+
     public static final String PREFIX_URL_NOTICE = "/sys/notice";
+
     public static final String PREFIX_URL_MESSAGE = "/sys/message";
+
     public static final String PREFIX_URL_SERVICE_SERVICE_UNIT = "/service/service/unit";
+
     public static final String PREFIX_URL_SERVICE_SERVICE_SCOPE = "/service/service/scope";
+
     public static final String PREFIX_URL_SERVICE_SERVICE_REGION = "/service/service/region";
+
     public static final String PREFIX_URL_ROLE = "/admin/role";
+
     public static final String PREFIX_URL_DELAY_WARN = "/admin/tb/delay/warn";
+
     public static final String PREFIX_URL_DELAY_WARN_DETAIL = "/admin/tb/delay/warn/detail";
+
     public static final String PREFIX_URL_VIOLATION = "/admin/tb/violation";
+
     public static final String PREFIX_URL_VIOLATION_DETAIL = "/admin/tb/violation/detail";
+
     public static final String PREFIX_URL_DING = "/admin/tb/ding";
+
     public static final String PREFIX_URL_DING_SUBMIT = "/admin/tb/ding/submit";
+
     public static final String PREFIX_URL_DING_STATISTIC = "/admin/tb/ding/statistic";
+
     public static final String PREFIX_URL_QUALITY_PROBLEM_APPLY = "/admin/tb/quality/problem/apply";
+
     public static final String PREFIX_URL_CRM = "/admin/tb/crm";
+
     public static final String PREFIX_URL_CRM_DETAIL = "/admin/tb/crm/detail";
+
     public static final String PREFIX_URL_DING_EXCEPTION_APPLY = "/admin/ding/exception/apply";
+
     public static final String PREFIX_URL_PRODUCT = "/admin/tb/product";
+
     public static final String PREFIX_URL_MY_WORK_BENCH = "/admin/my/work_bench";
+
     public static final String PREFIX_URL_PROJECT_EXCHANGE = "/admin/project/exchange";
+
     public static final String PREFIX_URL_DEVICE_IN_OUT = "/admin/device/in/out";
+
     public static final String PREFIX_URL_SOP = "/admin/sop";
+
     public static final String PREFIX_URL_SOP_QUICK = "/admin/sop/quick";
+
     public static final String PREFIX_URL_FXXK = "/open/fxxk";
+
     public static final String PREFIX_URL_SSO = "/sso";
+
     public static final String PREFIX_URL_DEVICE_DELIVERY = "/admin/device/delivery";
+
     public static final String PREFIX_URL_DEVICE_MANAGE = "/admin/device/manage";
 
     /**
      * 缓存配置
      */
     public static final String USER_ACCOUNT_CACHE = "user:account:cache";
+
     public static final String SYS_CONFIG_CACHE = "sys:config:cache";
+
     public static final String USER_OAUTH_CACHE = "user:oauth:cache";
+
     public static final String ORG_CACHE = "org:cache";
+
     public static final String PRIVILEGE_URL_CACHE = "privilege:url:cache";
+
     public static final String ROLE_PRIVILEGE_CACHE = "role:privilege:cache";
+
     public static final String USER_ROLE_PRIVILEGE_CACHE = "user:role:privilege:cache";
+
     public static final String FORM_WIDGET_CACHE = "form:widget:cache";
+
     public static final String TABLE_PROP_CACHE = "table:prop:cache";
+
     public static final String ROLE_CACHE = "role:cache";
+
     public static final String USER_MENU_CACHE = "user:menu:cache";
+
     public static final String SCHOOL_CACHE = "school:cache";
+
     public static final String SCHOOL_CODE_CACHE = "school:code:cache";
 
     /**
      * 鉴权
      */
     public static final String HEADER_AUTHORIZATION = "Authorization";
+
     public static final String HEADER_TIME = "time";
+
     public static final String HEADER_PLATFORM = "platform";
+
     public static final String HEADER_DEVICE_ID = "deviceId";
+
     public static final String CURRENT_PRIVILEGE_ID = "privilegeId";
+
     public static final String TOKEN = "token";
+
     public static final String SIGN = "sign";
+
     public static final String LOG_ERROR = "请求出错:{}";
 
     public static final int DEFAULT_SESSION_EXPIRE = 1;//过期时间1天
+
     public static final long DEFAULT_EXPIRE_TIME = 24 * 60L * 60L;//过期时间24小时
-//    public static final long THIRD_USER_AUTH_EXPIRE_TIME = 2 * 60L;//过期时间2分钟
+    //    public static final long THIRD_USER_AUTH_EXPIRE_TIME = 2 * 60L;//过期时间2分钟
 
     /**
      * http设置
      */
     public static final int CONNECT_TIME_OUT = 1000 * 60 * 2;//请求超时
+
     public static final int SOCKET_CONNECT_TIME_OUT = 1000 * 60 * 30;//读取数据超时
 
     /**
      * 线程池配置
      */
-    public static final String THREAD_POOL_NAME = "taskThreadPool";
+    //    public static final String THREAD_POOL_NAME = "taskThreadPool";
     //    public static final int THREAD_POOL_CORE_POOL_SIZE = 5;
-//    public static final int THREAD_POOL_MAX_POOL_SIZE = 100;
-    public static final int THREAD_POOL_KEEP_ALIVE_SECONDS = 10;
-    public static final int THREAD_POOL_QUEUE_CAPACITY = 500;
+    //    public static final int THREAD_POOL_MAX_POOL_SIZE = 100;
+    //    public static final int THREAD_POOL_KEEP_ALIVE_SECONDS = 10;
+    //    public static final int THREAD_POOL_QUEUE_CAPACITY = 500;
 
     /**
      * 流程相关
      */
     public static LinkedMultiValueMap<String, String> FLOW_MAP = new LinkedMultiValueMap<>();
+
     public static final String BPMN_PREFIX = ".bpmn";
+
     public static final String END_EVENT = "endEvent";
+
     public static final String USER_TASK = "userTask";
+
     public static final String START_EVENT = "startEvent";
+
     public static final String NAME = "name";
+
     public static final String ID = "id";
+
     public static final String FORM_KEY = "formKey";
+
     public static final String FLOW_FORM_ID_SPACE = "|";
+
     public static final String FLOW_FORM_ID_UNDERLINE = "_";
+
     public static final String FORM_PROPERTIES = "formProperties";
+
     public static final String FLOW_DEPLOYMENT_ID = "flowDeploymentId";
+
     public static final String APPROVE = "approve";//流程审核变量
+
     public static final String DEFAULT_ASSIGNEE_LIST = "assigneeList";
+
     public static final String ASSIGNEE = "assignee";
+
     public static final String NR_OF_COMPLETED_INSTANCES = "nrOfCompletedInstances";
+
     public static final String NR_OF_INSTANCES = "nrOfInstances";
+
     public static final String ARRROVE_REJECT_MAP = "approveRejectMap";
+
     public static final String FLOW_CUSTOM = "tfCustomFlow";
+
     public static final String FLOW_APPROVE = "tfFlowApprove";
+
     public static final String FLOW_APPROVE_LOG = "tfFlowApproveLog";
+
     public static final String FLOW_ENTITY = "tfCustomFlowEntity";
+
     public static final String FLOW_SYS_USER = "sysUser";
+
     public static final String CRM_INFO = "crmInfo";
+
     public static final String SOP_ID = "sopId";
-//    public static final String SOURCE = "source";
+
+    //    public static final String SOURCE = "source";
     public static final String CRM_DETAIL = "crmDetail";
+
     public static final String PROCESS_VAR = "processVar";
 
     /**
      * 锁
      */
     public static final String LOCK_FLOW_TASK_PREFIX = "lock:flow:task:";//流程节点锁
+
     public static final String LOCK_FLOW_END_PREFIX = "lock:flow:end:";//流程结束锁
+
     public static final String LOCK_FLOW_EXCHANGE_PREFIX = "lock:flow:exchange:";//流程转办锁
+
     public static final String LOCK_FLOW_PROPERTIES_PREFIX = "lock:flow:properties:";//流程修改属性锁
+
     public static final String LOCK_SEQUENCE_PREFIX = "lock:sequence:";//序列锁
+
     public static final String LOCK_JOB_PREFIX = "lock:job:";//定时任务锁
+
     public static final String LOCK_CRM_DETAIL_SOP_IMPORT_PREFIX = "lock:crm:detail:sop:import";//派单明细sop锁
+
     public static final String LOCK_CRM_DETAIL_SOP_VAR_PREFIX = "lock:crm:detail:sop:var";//派单明细sop变量锁
+
     public static final String LOCK_CRM_DETAIL_SOP_CREATE_PREFIX = "lock:crm:detail:sop:create";//派单明细sop创建锁
+
     public static final String LOCK_CRM_DETAIL_SOP_PUBLISH_PREFIX = "lock:crm:detail:sop:publish";//派单明细sop发布锁
+
     public static final String LOCK_CRM_DETAIL_SOP_DELETE_PREFIX = "lock:crm:detail:sop:delete";//派单明细sop删除锁
 
     public static final Long LOCK_FLOW_TIME_OUT = 60L * 2 * 1000;
+
     public static final Long LOCK_SEQUENCE_TIME_OUT = 60L * 1 * 1000;
+
     public static final Long LOCK_JOB_TIME_OUT = 60L * 5 * 1000;
+
     public static final Long LOCK_CRM_DETAIL_SOP_TIME_OUT = 60L * 2 * 1000;
 
     static {
@@ -424,7 +648,8 @@ public class SystemConstant {
      */
     public static StringJoiner getDirName(UploadFileEnum uploadFileEnum, boolean fileSpearator) {
         StringJoiner stringJoiner = new StringJoiner("");
-        stringJoiner.add(MessageFormat.format("{0}{1}", uploadFileEnum.getTitle(), DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_ATTACHMENT_PATTERN)));
+        stringJoiner.add(MessageFormat.format("{0}{1}", uploadFileEnum.getTitle(),
+                DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_ATTACHMENT_PATTERN)));
         stringJoiner = fileSpearator ? stringJoiner.add(File.separator) : stringJoiner;
         return stringJoiner;
     }
@@ -480,17 +705,17 @@ public class SystemConstant {
         return newDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
     }
 
-//    /**
-//     * 时间相减
-//     *
-//     * @param duration
-//     * @return
-//     */
-//    public static Long processMiniuteMinus(Duration duration) {
-//        LocalDateTime nowTime = LocalDateTime.now();
-//        LocalDateTime newDateTime = nowTime.minus(duration);
-//        return newDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
-//    }
+    //    /**
+    //     * 时间相减
+    //     *
+    //     * @param duration
+    //     * @return
+    //     */
+    //    public static Long processMiniuteMinus(Duration duration) {
+    //        LocalDateTime nowTime = LocalDateTime.now();
+    //        LocalDateTime newDateTime = nowTime.minus(duration);
+    //        return newDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
+    //    }
 
     /**
      * 指定时间相加
@@ -584,13 +809,11 @@ public class SystemConstant {
      * @param <V> 值
      * @return 排序结果
      */
-    @SuppressWarnings({"unchecked", "rawtypes"})
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public static <K extends Comparable, V extends Comparable> Map<K, V> sortMapByValues(Map<K, V> map) {
         HashMap<K, V> finalMap = new LinkedHashMap<K, V>();
         //取出map键值对Entry<K,V>,然后按照值排序,最后组成一个新的列表集合
-        List<Map.Entry<K, V>> list = map.entrySet()
-                .stream()
-                .sorted((p1, p2) -> p2.getValue().compareTo(p1.getValue()))
+        List<Map.Entry<K, V>> list = map.entrySet().stream().sorted((p1, p2) -> p2.getValue().compareTo(p1.getValue()))
                 .collect(Collectors.toList());
         //遍历集合,将排好序的键值对Entry<K,V>放入新的map并返回
         //因为HashMap默认是按照键排序,所以新的map还是HashMap,那么就还原了。达不到排序的效果。

+ 5 - 13
sop-task/src/main/java/com/qmth/sop/task/TaskApplication.java

@@ -1,7 +1,5 @@
 package com.qmth.sop.task;
 
-//import com.qmth.sop.common.threadPool.MyThreadPool;
-
 import com.qmth.sop.task.listener.MyJobListener;
 import org.activiti.spring.boot.SecurityAutoConfiguration;
 import org.mybatis.spring.annotation.MapperScan;
@@ -14,10 +12,10 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
-@SpringBootApplication(scanBasePackages = "com.qmth.*", exclude = {SecurityAutoConfiguration.class})
-@MapperScan({"com.qmth.sop.business.mapper"})
+@SpringBootApplication(scanBasePackages = "com.qmth.*", exclude = { SecurityAutoConfiguration.class })
+@MapperScan({ "com.qmth.sop.business.mapper" })
 //主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,做过web开发的同学一定都有用过@Controller,@Service,@Repository注解,查看其源码你会发现,他们中有一个共同的注解@Component,没错@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中
-@EntityScan(basePackages = {"com.qmth.sop.business.entity"}) // 用来扫描和发现指定包及其子包中的Entity定义
+@EntityScan(basePackages = { "com.qmth.sop.business.entity" }) // 用来扫描和发现指定包及其子包中的Entity定义
 @EnableTransactionManagement // spring开启事务支持
 @EnableAsync // 开启异步任务
 @EnableCaching // 开启缓存注解
@@ -27,17 +25,11 @@ public class TaskApplication {
         SpringApplication.run(TaskApplication.class, args);
     }
 
-//    @Primary
-//    @Bean
-//    public TaskExecutor primaryTaskExecutor() {
-//        return new MyThreadPool();
-//    }
-
     @Bean
     public Scheduler scheduler(Scheduler scheduler) throws Exception {
         // 添加Scheduler 监听器
-//        KeyMatcher<JobKey> keyMatcher = KeyMatcher.keyEquals(JobKey.jobKey(QuartzTaskEnum.MQ_ACTIVITY_JOB_NAME.name(), QuartzTaskEnum.MQ_ACTIVITY_JOB_GROUP_NAME.name()));
-//        scheduler.getListenerManager().addJobListener(new MyJobListener(), keyMatcher);
+        //        KeyMatcher<JobKey> keyMatcher = KeyMatcher.keyEquals(JobKey.jobKey(QuartzTaskEnum.MQ_ACTIVITY_JOB_NAME.name(), QuartzTaskEnum.MQ_ACTIVITY_JOB_GROUP_NAME.name()));
+        //        scheduler.getListenerManager().addJobListener(new MyJobListener(), keyMatcher);
         scheduler.getListenerManager().addJobListener(new MyJobListener());
         return scheduler;
     }