111
k94314517
2024-01-22 c8ad6f13c0e9cbff9a0763bc50c86576449f6e03
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1,5 +1,8 @@
package com.doumee.core.utils;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.dao.business.model.Solutions;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -7,6 +10,7 @@
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.util.*;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -63,6 +67,9 @@
    public static final String SIGN_URL = "SIGN_URL";
    public static final String SIGN_APPKEY = "SIGN_APPKEY";
    public static final String SIGN_APPSECRET = "SIGN_APPSECRET";
    public static final String COMPANY_FILE ="COMPANY_FILE" ;
    public static final String SMS_COMNAME = "SMS_COMNAME";
    public static final String TAXES_FILE = "TAXES_FILE";
    /**
     * 企业数据来源 0平台注册 1后台导入
@@ -71,7 +78,17 @@
        public static final  int platformRegister  = 0;
        public static final  int backstageImport  = 1;
    }
    public static String getRandom6Num( ) {
        Random random = new Random();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 6; i++) {
            int digit = random.nextInt(10);
            sb.append(digit);
        }
        return sb.toString();
    }
    public static BigDecimal formatBigdecimal(BigDecimal d) {
        if (d == null) {
            d = new BigDecimal(0.0);
@@ -324,27 +341,22 @@
         int basedata = 2;
    }
    /**
     * 关联对象类型 0企业营业执照 1工商变更登记  2项目申报企业资料 3企业评分表 4诊断报告 5诊断服务资料 6专家评分报告 7服务机构上传服务资料 8企业资质 9企业中标通知书 10项目图片
     * 关联对象类型
     关联对象类型 0企业营业执照 1理赔报案事故视频或图片 2理赔员工关系证明材料 3理赔门诊资料 4理赔住院资料 5理赔伤残资料 6理赔赔付结案材料 7企业身份证号 8保单申请表PDF 9签署后保单申请表PDF 10企业签章 11最终报单
     */
    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, "服务机构上传服务补充资料", "服务机构上传服务补充资料"),
        COM_BUSINESS_LICENSE(0, "企业营业执照", "企业营业执照"),
        LP_SGXC_FILE(1, "理赔报案事故视频或图片", "理赔报案事故视频或图片"),
        LP_YGGX_FILE(2, "理赔员工关系证明材料 ", "理赔员工关系证明材料 "),
        LP_MZCL_FILE(3, "理赔门诊资料 ", "理赔门诊资料"),
        LP_ZYCL_FILE(4, "理赔住院资料", "理赔住院资料"),
        LP_SCZL_FILE(5, "理赔伤残资料", "理赔伤残资料"),
        LP_JACL_FILE(6, "理赔赔付结案材料", "理赔赔付结案材料"),
        COM_IDCARD_IMG(7, "企业身份证号", "企业身份证号"),
        BD_APPLY_PDF(8, "保单申请表PDF ", "保单申请表PDF "),
        BD_SIGNED_PDF(9, "签署后保单申请表PDF", "签署后保单申请表PDF"),
        COM_SING_IMG(10, "企业印章", "企业印章"),
        BD_DONE_PDF(10, "最终报单", "最终报单"),
        ;
@@ -546,6 +558,261 @@
    }
    public  enum DispatchUnitLogType {
        UPLOAD(0, "提交申请"),
        AUDIT_PASS(1, "派遣单位通过"),
        AUDIT_UN_PASS(2, "派遣单位不通过"),
        EDIT_UNIT(3, "修改派遣单位信息"),
        ADD_WORK_TYPE(4, "提交添加工种"),
        WORK_TYPE_AUDIT_PASS(5, "添加工种审批通过"),
        WORK_TYPE_AUDIT_UN_PASS(6, "添加工种审批不通过"),
        ;
        // 成员变量
        private String name;
        private int key;
        // 构造方法
        DispatchUnitLogType(int key, String name) {
            this.name = name;
            this.key = key;
        }
        // 普通方法
        public static String getName(int index) {
            for (DispatchUnitLogType c : DispatchUnitLogType.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            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  enum ApplyLogType {
        UPLOAD(0, "提交投保申请"),
        PLATFORM_RETURN(1, "平台退回保单"),
        WAIT_SIGNATURE(2, "已上传代签申请表待企业签章"),
        SIGNATURE(3, "已签章待上传保险单"),
        FAIL_RETURN(4, "保单出具失败退回"),
        UPLOAD_INSURANCE(5, "已上传保单"),
        COMPANY_APPLY_RETURN(6, "企业申请退回"),
        COMPANY_APPLY_CLOSE(7, "企业关闭申请"),
        PLATFORM_AGREE(8, "平台同意企业退回申请"),
        PLATFORM_UN_AGREE(9, "平台拒绝企业退回申请"),
        ;
        // 成员变量
        private String name;
        private int key;
        // 构造方法
        ApplyLogType(int key, String name) {
            this.name = name;
            this.key = key;
        }
        // 普通方法
        public static String getName(int index) {
            for (ApplyLogType c : ApplyLogType.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            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  enum InsuranceApplyStatus {
        UPLOAD(0, "提交投保申请"),
        PLATFORM_RETURN(1, "平台退回保单"),
        WAIT_SIGNATURE(2, "已上传代签申请表待企业签章"),
        SIGNATURE(3, "已签章待上传保险单"),
        FAIL_RETURN(4, "保单出具失败退回"),
        UPLOAD_INSURANCE(5, "已上传保单"),
        COMPANY_APPLY_RETURN(6, "企业申请退回"),
        PLATFORM_AGREE(7, "平台同意退回"),
        CLOSE(8, "订单关闭"),
        ;
        // 成员变量
        private String name;
        private int key;
        // 构造方法
        InsuranceApplyStatus(int key, String name) {
            this.name = name;
            this.key = key;
        }
        // 普通方法
        public static String getName(int index) {
            for (ApplyLogType c : ApplyLogType.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            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 static BigDecimal countDetailFee(Solutions solutions,Date startDate, Date endDate){
        //查询保险实际周期
        Integer cycle = DateUtil.calculateBetween(endDate,startDate,solutions.getDataType());
        if(cycle==-1){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"日期信息错误!");
        }
        return solutions.getPrice().multiply(new BigDecimal(cycle));
    }
    public  enum ApplyChangeStatus {
        UPLOAD(0, "提交加减保/换厂申请"),
        SIGNATURE(1, "已签章"),
        APPROVE(2, "已上传审批"),
        RETURN_APPLY(3, "发起退回申请"),
        PLATFORM_AGREE(4, "平台同意(已退回)"),
        CLOSE(5, "已关闭"),
        ;
        // 成员变量
        private String name;
        private int key;
        // 构造方法
        ApplyChangeStatus(int key, String name) {
            this.name = name;
            this.key = key;
        }
        // 普通方法
        public static String getName(int index) {
            for (ApplyLogType c : ApplyLogType.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            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;
        }
    }
//3=退回申请;4=平台审批通过;0=审批驳回;5=平台审批驳回
    public  enum ApplyChangeLogStatus {
        UPLOAD(0, "发起申请"),
        RETURN_APPLY(3, "发起退回申请"),
        PLATFORM_AGREE(4, "平台审批通过"),
        PLATFORM_UN_AGREE(0, "审批驳回"),
        CLOSE(5, "关闭"),
        ;
        // 成员变量
        private String name;
        private int key;
        // 构造方法
        ApplyChangeLogStatus(int key, String name) {
            this.name = name;
            this.key = key;
        }
        // 普通方法
        public static String getName(int index) {
            for (ApplyLogType c : ApplyLogType.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            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  enum ProjectRecord {
        COM_EDITING(0, "企业保存数据", "由 ${param2} ${param3}保存成功,当前进度为 【${param4}】"),