package com.doumee.core.utils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.lang3.StringUtils;
|
|
import java.io.File;
|
import java.math.BigDecimal;
|
import java.net.URLDecoder;
|
import java.util.*;
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
|
public class Constants {
|
|
|
public static final int ZERO = 0 ;
|
public static final int ONE = 1 ;
|
public static final int TWO = 2 ;
|
public static final int THREE = 3 ;
|
public static final int SEVEN = 7 ;
|
|
public static final String ACCESS_ID="ACCESS_ID";
|
public static final String BUCKETNAME = "BUCKETNAME";
|
public static final String OSS = "OSS";
|
public static final String ACCESS_KEY = "ACCESS_KEY";
|
public static final String ENDPOINT = "ENDPOINT";
|
public static final String RESOURCE_PATH = "RESOURCE_PATH";
|
|
|
public static final String SYSTEM ="SYSTEM";
|
public static final String GOODS_IMG_DIR ="GOODS_IMG_DIR";
|
public static final String CREDIT_CODE_REGEX = "[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}";
|
|
|
|
public static final String ROOT_PATH="ROOT_PATH";//本地文件上传地址配置
|
public static final String FILE_DIR="FILE_DIR";//本地文件访问地址配置
|
public static final String HOME_IMAGE="HOME_IMAGE";//H5 首页图
|
|
public static final String PROJECTS = "PROJECTS";
|
/**
|
* 企业数据来源 0平台注册 1后台导入
|
*/
|
public interface ORIGIN{
|
public static final int platformRegister = 0;
|
public static final int backstageImport = 1;
|
}
|
|
public static BigDecimal formatBigdecimal(BigDecimal d) {
|
if (d == null) {
|
d = new BigDecimal(0.0);
|
}
|
//保留两位小数且四舍五入
|
// d = d.setScale(2, BigDecimal.ROUND_HALF_UP);
|
return d;
|
}
|
public static BigDecimal formatBigdecimal4Float(BigDecimal d) {
|
if (d == null) {
|
d = new BigDecimal(0.0);
|
}
|
//保留两位小数且四舍五入
|
d = d.setScale(4, BigDecimal.ROUND_HALF_UP);
|
return d;
|
}
|
|
public static boolean equalsObject(Object a, Object b) {
|
if (a == null && b == null) {
|
return true;
|
}
|
if (a != null){
|
return a.equals(b);
|
}
|
return false;
|
}
|
|
|
public static boolean equalsInteger(Integer a, Integer b) {
|
if (formatIntegerNum(a) == formatIntegerNum(b)) {
|
return true;
|
}
|
return false;
|
}
|
|
public static int formatIntegerNum(Integer d) {
|
if (d == null) {
|
d = 0;
|
}
|
return d.intValue();
|
}
|
/**
|
* 状态 0已保存、1待审核、2审核通过、3退回修改、4审核驳回、5待服务机构确认、6服务机构拒绝、7已分配服务机构、8诊断中
|
* (成功上传第一份服务资料)、9服务完成、10已分配评分专家、11已完成(专家上传评分) 12退回修改中 13 已完成退回修改
|
*/
|
public enum DeclareStatus {
|
|
EDITING(0, "已保存", "已保存"),
|
CHECK_WAIT(1, "待审核", "待审核"),
|
CHECK_PASS(2, "审核通过", "审核通过"),
|
CHECK_EDIT(3, "退回修改", "退回修改"),
|
CHECK_BACK(4, "审核驳回", "审核驳回"),
|
WAIT_SO_COMFIRM(5, "待服务机构确认", "待服务机构确认"),
|
SO_BACK(6, "服务机构拒绝", "服务机构拒绝"),
|
SELECTED_SO(7, "已分配服务机构", "已分配服务机构"),
|
SERVING(8, "诊断中", "诊断中"),
|
SERVICE_DONE(9, "服务完成", "服务完成"),
|
SELECT_EXPERT(10, "已分配评分专家", "已分配评分专家"),
|
DONE(11, "已完成", "已完成"),
|
BACK_SERVER_ING(12, "退回修改", "诊断服务退回修改"),
|
BACK_SERVER_DONE(13, "退回修改完成", "诊断服务退回已修改"),
|
;
|
// 成员变量
|
private String name;
|
private int key;
|
private String noteinfo;// 描述
|
|
// 构造方法
|
DeclareStatus(int key, String name, String noteinfo) {
|
this.name = name;
|
this.key = key;
|
this.noteinfo = noteinfo;
|
}
|
|
// 普通方法
|
public static String getName(int index) {
|
for (DeclareStatus c : DeclareStatus.values()) {
|
if (c.getKey() == index) {
|
return c.name;
|
}
|
}
|
return null;
|
}
|
|
// 普通方法
|
public static String getNoteinfo(int index) {
|
for (DeclareStatus c : DeclareStatus.values()) {
|
if (c.getKey() == index) {
|
return c.noteinfo;
|
}
|
}
|
return "-";
|
}
|
|
// 普通方法
|
public static String getInfo(int index) {
|
for (DeclareStatus c : DeclareStatus.values()) {
|
if (c.getKey() == index) {
|
return c.noteinfo;
|
}
|
}
|
return null;
|
}
|
|
// get set 方法
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public int getKey() {
|
return key;
|
}
|
|
public void setKey(int key) {
|
this.key = key;
|
}
|
|
public String getNoteinfo() {
|
return noteinfo;
|
}
|
|
}
|
|
public enum DeclareCheckType{
|
EDITING(0, "已保存", "已保存"),
|
CHECK_WAIT(1, "待审核", "待审核"),
|
CHECK_PASS(2, "审核通过", "审核通过"),
|
CHECK_EDIT(3, "退回修改", "退回修改"),
|
CHECK_BACK(4, "审核驳回", "审核驳回"),
|
WAIT_SO_COMFIRM(5, "待服务机构确认", "待服务机构确认"),
|
SO_BACK(6, "服务机构拒绝", "服务机构拒绝"),
|
SELECTED_SO(7, "已分配服务机构", "已分配服务机构"),
|
SERVING(8, "诊断中", "诊断中"),
|
SERVICE_DONE(9, "服务完成", "服务完成"),
|
SELECT_EXPERT(10, "已分配评分专家", "已分配评分专家"),
|
DONE(11, "已完成", "已完成"),
|
;
|
// 成员变量
|
private String name;
|
private int key;
|
private String noteinfo;// 描述
|
|
// 构造方法
|
DeclareCheckType(int key, String name, String noteinfo) {
|
this.name = name;
|
this.key = key;
|
this.noteinfo = noteinfo;
|
}
|
|
// 普通方法
|
public static String getName(int index) {
|
for (ProjectRecord c : ProjectRecord.values()) {
|
if (c.getKey() == index) {
|
return c.name;
|
}
|
}
|
return null;
|
}
|
|
// 普通方法
|
public static String getInfo(int index) {
|
for (ProjectRecord c : ProjectRecord.values()) {
|
if (c.getKey() == index) {
|
return c.noteinfo;
|
}
|
}
|
return null;
|
}
|
|
// get set 方法
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public int getKey() {
|
return key;
|
}
|
|
public void setKey(int key) {
|
this.key = key;
|
}
|
|
public String getNoteinfo() {
|
return noteinfo;
|
}
|
}
|
|
public enum DeclareHistoryType{
|
|
EDITING(0,"保存","保存"),
|
CHECK_WAIT_COUNTY(1,"待县区审核",""),
|
CHECK_PASS_COUNTY(2,"县区审核通过",""),
|
CHECK_EDIT_COUNTY(3,"县区退回修改",""),
|
CHECK_BACK_COUNTY(4,"县区审核驳回",""),
|
TWO_WAY_WAIT_SO_COMFIRM(5,"双选待服务机构确认",""),
|
WO_WAY_WAIT_SO_BACK(6,"双选服务机构拒绝",""),
|
SELECTED_SO(7,"已分配服务机构",""),
|
SO_SERVICE(8,"服务机构诊断",""),
|
SO_SERVICE_DONE(9,"服务机构服务完成",""),
|
SELECT_EXPERT(10,"分配评分专家",""),
|
EXPERT_SCORE(11,"专家完成评分","")
|
;
|
|
private int key;
|
private String name;
|
|
private String noteInfo;
|
|
DeclareHistoryType(int key, String name, String noteInfo) {
|
this.key = key;
|
this.name = name;
|
this.noteInfo = noteInfo;
|
}
|
|
public int getKey() {
|
return key;
|
}
|
|
public void setKey(int key) {
|
this.key = key;
|
}
|
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public String getNoteInfo() {
|
return noteInfo;
|
}
|
|
public void setNoteInfo(String noteInfo) {
|
this.noteInfo = noteInfo;
|
}
|
}
|
/**
|
* 关联对象类型 0企业营业执照 1工商变更登记 2项目申报企业资料 3企业评分表 4诊断报告 5诊断服务资料 6专家评分报告 7服务机构上传服务资料 8企业资质 9企业中标通知书 10项目图片
|
*/
|
public enum MultiFile{
|
BUSINESS_LICENSE(0, "企业营业执照", "企业营业执照"),
|
BUSINESS_CHANGE(1, "工商变更登记", "工商变更登记"),
|
BUSINESS_DECLARE(2, "项目申报企业资料", "项目申报企业资料"),
|
BUSINESS_SCORE(3, "企业评分表", "企业评分表"),
|
BUSINESS_DIAGNOSIS(4, "诊断报告", "诊断报告"),
|
BUSINESS_DIA_SERVICE(5, "诊断服务资料", "诊断服务资料"),
|
BUSINESS_EXPERT(6, "专家评分报告", "专家评分报告"),
|
BUSINESS_UP_SERVICE(7, "服务机构上传服务资料", "服务机构上传服务资料"),
|
BUSINESS_ZZ(8, "企业资质", "企业资质"),
|
BUSINESS_NOTICE(9, "企业中标通知书", "企业中标通知书"),
|
BUSINESS_PROURL(10, "项目图片", "项目图片"),
|
|
COMPANY_CHANGE_LICENSE(11,"变更企业营业执照","变更企业营业执照"),
|
|
COMPANY_CHANGE_CHANGE(12,"变更工商变更登记","变更工商变更登记"),
|
BUSINESS_HC(13, "综合服务单位核查资料", "综合服务单位核查资料"),
|
|
BUSINESS_UP_EXTRA(14, "服务机构上传服务补充资料", "服务机构上传服务补充资料"),
|
|
|
;
|
// 成员变量
|
private String name;
|
private int key;
|
private String noteinfo;// 描述
|
|
// 构造方法
|
MultiFile(int key, String name, String noteinfo) {
|
this.name = name;
|
this.key = key;
|
this.noteinfo = noteinfo;
|
}
|
|
// 普通方法
|
public static String getName(int index) {
|
for (ProjectRecord c : ProjectRecord.values()) {
|
if (c.getKey() == index) {
|
return c.name;
|
}
|
}
|
return null;
|
}
|
|
// 普通方法
|
public static String getInfo(int index) {
|
for (ProjectRecord c : ProjectRecord.values()) {
|
if (c.getKey() == index) {
|
return c.noteinfo;
|
}
|
}
|
return null;
|
}
|
|
// get set 方法
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public int getKey() {
|
return key;
|
}
|
|
public void setKey(int key) {
|
this.key = key;
|
}
|
|
public String getNoteinfo() {
|
return noteinfo;
|
}
|
|
private volatile static Set<Integer> multifileCompanyType;
|
|
private volatile static Set<Integer> multifileProjectType;
|
|
public static Set<Integer> multifileCompanyType(){
|
// 0企业营业执照 1工商变更登记 7企业资质 8企业中标通知书 11 变更企业营业执照 12 变更工商变更登记
|
|
if (CollectionUtils.isEmpty(multifileCompanyType)){
|
synchronized (MultiFile.class){
|
if (CollectionUtils.isEmpty(multifileCompanyType)){
|
multifileCompanyType = new HashSet<>();
|
multifileCompanyType.add(0);
|
multifileCompanyType.add(1);
|
multifileCompanyType.add(8);
|
multifileCompanyType.add(9);
|
multifileCompanyType.add(11);
|
multifileCompanyType.add(12);
|
}
|
}
|
}
|
return multifileCompanyType;
|
}
|
|
public static Set<Integer> multifileProjectType(){
|
|
//2项目申报企业资料 3企业评分表 4诊断报告 5诊断服务资料 6专家评分报告 7服务机构上传服务资料
|
if (CollectionUtils.isEmpty(multifileProjectType)){
|
synchronized (MultiFile.class){
|
if(CollectionUtils.isEmpty(multifileProjectType)){
|
multifileProjectType = new HashSet<>();
|
multifileProjectType.add(2);
|
multifileProjectType.add(3);
|
multifileProjectType.add(4);
|
multifileProjectType.add(5);
|
multifileProjectType.add(6);
|
multifileProjectType.add(7);
|
multifileProjectType.add(10);
|
multifileProjectType.add(13);
|
}
|
}
|
}
|
return multifileProjectType;
|
}
|
|
public static Integer multifileType(String name){
|
|
boolean pic = Arrays.asList(".jpg", "png", "jpeg").stream().anyMatch(s -> name.contains(s));
|
if (pic){
|
return Constants.ZERO;
|
}
|
boolean ivc = Arrays.asList(".avi", "mp4").stream().anyMatch(s -> name.contains(s));
|
if (ivc){
|
return Constants.ONE;
|
}
|
return Constants.TWO;
|
|
}
|
|
|
}
|
|
public static void main(String[] args) {
|
File[] files = null;
|
String path ="D:\\dist\\imgs\\21";
|
if(StringUtils.isNotBlank(path)){
|
File dir =new File(path);
|
if(dir!=null && dir.isDirectory()){
|
files = dir.listFiles();
|
if(files!=null && files.length>0){
|
for(File f : files){
|
System.out.println(f.getPath());
|
}
|
}
|
}
|
}
|
}
|
/**
|
* 用户类型 0系统用户 1企业用户 2服务机构管理员 3服务机构子账号 4综合服务单位管理员 5综合服务单位子账号 6专家 7县区用户 8市局用户
|
*/
|
public enum UserType {
|
|
SYSTEM(0, "系统用户", "管理员",Arrays.asList(0,1,2,3,4,5,6,7,8,9,10,11)),
|
COMPANY(1, "企业用户", "企业",Arrays.asList(-1)),
|
SO_ADMIN(2, "服务机构管理员", "服务机构",Arrays.asList(-1)),
|
SO_CHILD(3, "服务机构子账号", "服务机构",Arrays.asList(-1)),
|
SD_ADMIN(4, "综合服务单位管理员", "综合服务单位",Arrays.asList(0,1,2,3,4,5,6,7,8,9,10,11)),
|
SD_CHILD(5, "综合服务单位子账号", "综合服务单位",Arrays.asList(0,1,2,3,4,5,6,7,8,9,10,11)),
|
EXPERT(6, "专家", "专家", Arrays.asList(-1)),
|
AREA(7, "县区用户", "县区",Arrays.asList(0,1,2,3,4,5,6,7,8,9)),
|
SJ(8, "市局用户", "市局",Arrays.asList(0,1,2,3,4,5,6,7,8,9,10,11)),
|
SJ_CHILD(9, "市局子账号", "市局子账号",Arrays.asList(0,1,2,3,4,5,6,7,8,9,10,11)),
|
;
|
// 成员变量
|
private String name;
|
private int key;
|
private List<Integer> historyStatus;
|
private String noteinfo;// 描述
|
|
// 构造方法
|
UserType(int key, String name, String noteinfo,List<Integer> historyStatus) {
|
this.name = name;
|
this.key = key;
|
this.noteinfo = noteinfo;
|
this.historyStatus=historyStatus;
|
}
|
|
// 普通方法
|
public static String getName(int index) {
|
for (UserType c : UserType.values()) {
|
if (c.getKey() == index) {
|
return c.name;
|
}
|
}
|
return null;
|
}
|
|
// 普通方法
|
public static String getInfo(int index) {
|
for (UserType c : UserType.values()) {
|
if (c.getKey() == index) {
|
return c.noteinfo;
|
}
|
}
|
return null;
|
}
|
// 普通方法
|
public static List<Integer> getHistoryStatus(int index) {
|
for (UserType c : UserType.values()) {
|
if (c.getKey() == index) {
|
return c.historyStatus;
|
}
|
}
|
return null;
|
}
|
|
// get set 方法
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public int getKey() {
|
return key;
|
}
|
public List<Integer> getHistoryStatus() {
|
return historyStatus;
|
}
|
|
public void setKey(int key) {
|
this.key = key;
|
}
|
|
public String getNoteinfo() {
|
return noteinfo;
|
}
|
|
/**
|
* 不需要审批修改信息角色
|
* @return
|
*/
|
public static List<Integer> getNoCheckUserChange(){
|
return Arrays.asList(SO_ADMIN.key, AREA.key, SJ.key, EXPERT.key, SD_ADMIN.key,SYSTEM.key);
|
}
|
|
/**
|
* 获取子账号类型
|
* @return
|
*/
|
public static List<Integer> getSonUserType(){
|
return Arrays.asList(SO_CHILD.key, SD_CHILD.key);
|
}
|
|
/**
|
* 获取关联企业的用户类型
|
* @return
|
*/
|
public static List<Integer> getHasCompanyType(){
|
return Arrays.asList(COMPANY.key, SO_ADMIN.key, SD_ADMIN.key);
|
}
|
|
}
|
|
public enum ProjectRecord {
|
|
COM_EDITING(0, "企业保存数据", "由 ${param2} ${param3}保存成功,当前进度为 【${param4}】"),
|
COM_SUBMIT(1, "企业提交数据", "由 ${param2} ${param3}提交成功,当前进度为 【${param4}】"),
|
XQ_CHECK_PASS(2, "县区审核通过", "由 ${param2} ${param3}审核通过,审核备注为:${param5};当前进度为 【${param4}】"),
|
XQ_CHECK_EDIT(3, "县区审核退回修改", "由 ${param2} ${param3}审核退回修改,审核备注为:${param5};当前进度为 【${param4}】"),
|
XQ_CHECK_BACK(4, "县区审核驳回", "由 ${param2} ${param3}审核驳回,审核备注为:${param5};当前进度为 审核驳回,流程结束。"),
|
COM_SELECT_SO(5, "企业选择服务机构", "由 ${param2} ${param3}选择 ${param5},当前进度为 【${param4}】"),
|
SO_PASS(6, "服务机构确认服务", "由 ${param2} ${param3}确认服务,当前进度为 【${param4}】"),
|
SO_BACK(7, "服务机构拒绝服务", "由 ${param2} ${param3}拒绝服务,当前进度为 【${param4}】"),
|
SJ_SELECT_SO(8, "市局分配服务机构", "由 ${param2} ${param3}完成分配服务机构,当前进度为 【${param4}】"),
|
SD_SELECT_SO(9, "综合服务单位分配服务机构", "由 ${param2} ${param3}完成分配服务机构,当前进度为 【${param4}】"),
|
SJ_RESELECT_SO(10, "市局重新分配服务机构", "由 ${param2} ${param3}完成重新分配服务机构,当前进度为 【${param4}】"),
|
SD_RESELECT_SO(11, "综合服务单位重新分配服务机构", "由 ${param2} ${param3}完成重新分配服务机构,当前进度为 【${param4}】"),
|
SO_SERVICE_UPLOAD(12, "服务机构上传服务数据", "由 ${param2} ${param3}完成上传服务数据,当前进度为 【${param4}】"),
|
SO_DONE_SERVICE(13, "服务机构完成服务", "由 ${param2} ${param3}完成服务,当前进度为 【${param4}】"),
|
SJ_SELECT_EXPERT(14, "市局分配评分专家", "由 ${param2} ${param3}完成分配评分专家,当前进度为 【${param4}】"),
|
SD_SELECT_EXPERT(15, "综合服务单位分配评分专家", "由 ${param2} ${param3}完成分配评分专家,当前进度为 【${param4}】"),
|
SJ_RESELECT_EXPERT(16, "市局重新分配评分专家", "由 ${param2} ${param3}完成重新分配评分专家,当前进度为 【${param4}】"),
|
SD_RESELECT_EXPERT(17, "综合服务单位重新分配评分专家", "由 ${param2} ${param3}完成重新分配评分专家,当前进度为 【${param4}】"),
|
EXPERT_SCORE(18, "专家上传评分", "由 ${param2} ${param3}完成评分,当前进度为 【${param4}】"),
|
SD_SERVICE_UPLOAD(19, "综合服务单位上传诊断资料", "由 ${param2} ${param3}完成上传诊断资料,当前进度为 【${param4}】"),
|
SD_BACK_DONE(20, "综合服务单位退回修改", "由 ${param2} ${param3}退回修改,当前进度为 【${param4}】"),
|
|
SO_BACK_SUBMIT(21 , "服务机构修改完成服务", "由 ${param2} ${param3}完成服务,当前进度为 【${param4}】"),
|
|
;
|
// 成员变量
|
private String name;
|
private int key;
|
private String noteinfo;// 描述
|
|
// 构造方法
|
ProjectRecord(int key, String name, String noteinfo) {
|
this.name = name;
|
this.key = key;
|
this.noteinfo = noteinfo;
|
}
|
|
// 普通方法
|
public static String getName(int index) {
|
for (ProjectRecord c : ProjectRecord.values()) {
|
if (c.getKey() == index) {
|
return c.name;
|
}
|
}
|
return null;
|
}
|
|
// 普通方法
|
public static String getInfo(int index) {
|
for (ProjectRecord c : ProjectRecord.values()) {
|
if (c.getKey() == index) {
|
return c.noteinfo;
|
}
|
}
|
return null;
|
}
|
|
// get set 方法
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public int getKey() {
|
return key;
|
}
|
|
public void setKey(int key) {
|
this.key = key;
|
}
|
|
public String getNoteinfo() {
|
return noteinfo;
|
}
|
|
public void setNoteinfo(String noteinfo) {
|
this.noteinfo = noteinfo;
|
}
|
|
public static String getContentWithData(ProjectRecord template, Map<String, String> params){
|
String pattern = "\\$\\{(.+?)\\}";
|
Pattern p = Pattern.compile(pattern);
|
Matcher m = p.matcher(template.noteinfo);
|
StringBuffer sb = new StringBuffer();
|
while (m.find()){
|
String key = m.group(1);
|
String value = params.get(key);
|
m.appendReplacement(sb, value == null ? "" : value);
|
}
|
m.appendTail(sb);
|
return sb.toString();
|
}
|
|
}
|
|
/**
|
* 数据状态枚举
|
*
|
*/
|
public enum Status {
|
|
/** 用户启用禁用枚举值*/
|
ENABLE(0,"正常"),
|
DISABLE(1,"禁用");
|
|
private Integer value;
|
private String des;
|
|
|
Status(Integer value, String des) {
|
this.value = value;
|
this.des = des;
|
}
|
|
public Integer getValue() {
|
return value;
|
}
|
|
public void setValue(Integer value) {
|
this.value = value;
|
}
|
|
public String getDes() {
|
return des;
|
}
|
|
public void setDes(String des) {
|
this.des = des;
|
}
|
}
|
|
public enum CompanyType{
|
|
BUSINESS_COMPANYTYPE(0,"企业"),
|
|
SERVICE_COMPANYTYPE(1,"服务机构"),
|
|
ZF_SERVICE_COMPANY(2,"综合服务单位");
|
|
private Integer value;
|
private String des;
|
|
CompanyType(Integer value, String des) {
|
this.value = value;
|
this.des = des;
|
}
|
|
public Integer getValue() {
|
return value;
|
}
|
|
public void setValue(Integer value) {
|
this.value = value;
|
}
|
|
public String getDes() {
|
return des;
|
}
|
|
public void setDes(String des) {
|
this.des = des;
|
}
|
}
|
}
|