package com.doumee.core.constants; import com.doumee.dao.business.model.Orders; import lombok.AllArgsConstructor; import lombok.Getter; import java.math.BigDecimal; import java.util.*; /** * 框架级常量 * @author dm * @since 2025/03/31 16:44 */ public class Constants { public static final String HWY_OBS ="HWY_OBS" ; public static final String HWY_OBS_ACCESSID ="HWY_OBS_ACCESSID" ; public static final String HWY_OBS_ACCESSKEY ="HWY_OBS_ACCESSKEY" ; public static final String HWY_OBS_ENDPOINT ="HWY_OBS_ENDPOINT" ; public static final String HWY_OBS_BUCKET ="HWY_OBS_BUCKET" ; public static final String RESOURCE_PATH ="RESOURCE_PATH" ; public static final String QYWX_CORPID = "QYWX_CORPID"; public static final String QYWX_SECRET = "QYWX_SECRET"; public static final String QYWX_TOKEN = "QYWX_TOKEN"; public static final String QYWX_AGENTID = "QYWX_AGENTID"; public static final String QYWX_JS_API_TICKET = "QYWX_JS_API_TICKET"; public static final String JUMP_OUT_URL = "JUMP_OUT_URL"; public static final String SYSTEM ="SYSTEM" ; public static final String IMG_DIR = "IMG_DIR"; public static final String FILE_DIR ="FILE_DIR" ; public static final String FOOT_IMGURL ="FOOT_IMGURL" ; public static final String LINK_PHONE ="LINK_PHONE" ; public static final String LINK_MOBILE ="LINK_MOBILE" ; public static final String SERVER_TIME ="SERVER_TIME" ; public static final String ADDRESS ="ADDRESS" ; public static final String SOLVE_SCHEME ="SOLVE_SCHEME" ; public static final String WISDOM_SYSTEM ="WISDOM_SYSTEM" ; public static final String FOOT_WORDS ="FOOT_WORDS" ; public static final String WX_CONFIG ="WX_CONFIG" ; public static final String APPID ="APPID" ; public static final String SECRET ="SECRET" ; public static final String ACCESS_TOKEN ="ACCESS_TOKEN" ; public static final String SERVER_INTRODUCE ="SERVER_INTRODUCE" ; public static final String FEE_STANDARDS ="FEE_STANDARDS" ; public static final String ABOUT_US ="ABOUT_US" ; public static final String SERVER_PHONE ="SERVER_PHONE" ; public static final String USER_AGREEMENT ="USER_AGREEMENT" ; public static final String PRIVACY_AGREEMENT ="PRIVACY_AGREEMENT" ; public static final String RELEASE_CANCEL_TIMES ="RELEASE_CANCEL_TIMES" ; public static final String RECEIVE_CANCEL_TIMES ="RECEIVE_CANCEL_TIMES" ; public static final String RELEASE_CANCEL_TIME ="RELEASE_CANCEL_TIME" ; public static final String RECEIVE_CANCEL_TIME ="RECEIVE_CANCEL_TIME" ; public static final String AUTO_DISPATCH ="AUTO_DISPATCH" ; public static final String AUTO_DISPATCH_DISTANCE ="AUTO_DISPATCH_DISTANCE" ; public static final String AUTO_CONFIRM ="AUTO_CONFIRM" ; public static final String AUTO_CANCEL_WAIT_PAY ="AUTO_CANCEL_WAIT_PAY" ; public static final String QYWX = "QYWX"; public static final Integer ONE = 1; public static final Integer TWO = 2; public static final Integer ZERO = 0; public static final Integer THREE = 3; public static final Integer FOUR = 4; public static final Integer SIX = 6; public static final Integer FIVE = 5; public static final String INENTITY_FILES = "INENTITY_FILES"; public static final String MEMBER_FILES = "MEMBER_FILES"; public static final String CATEGORY_FILES = "CATEGORY_FILES"; public static final String ORDERS_FILES = "ORDERS_FILES"; public static boolean WORKORDER_SHE_EMAIL_SENDING = false; public static boolean DEALING_COMPANY_SYNC = false ; public static boolean DEALING_MEMBER_SYNC = false ; public static final String WORKORDER_FILE_PATH ="WORKORDER_FILE_PATH" ; public static final String WORKORDER_LOG_FILE_PATH ="WORKORDER_LOG_FILE_PATH" ; public static final String REDIS_TOKEN_KEY = "token_"; public static final String SUCCESS = "SUCCESS"; public static final String FAIL = "FAIL"; public static final String CANCELLED = "CANCELLED"; public interface uploadType{ String blob = "blob"; String ftp = "ftp"; } /** * 缓存Key */ interface CacheKey { } public interface RedisKeys { public static final String ORDER_CODE = "ORDER_CODE"; } /** * 操作类型,用于做接口验证分组 */ public interface OperaType { /** * 创建 */ interface Create {} /** * 修改 */ interface Update {} /** * 修改状态 */ interface UpdateStatus {} } 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(); } public static double getFormatMoney(Long d) { BigDecimal r = new BigDecimal(formatLongNum(d)); r = r.divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_UP); return r.doubleValue(); } public static long formatLongNum(Long d) { if (d == null) { d = 0L; } return d.longValue(); } public static BigDecimal formatBigDecimal(BigDecimal d) { if (d == null) { new BigDecimal(0); } return d; } /** * Job常量 */ public interface Job { // jobId在JOB实例中的存储参数键 String JOB_DATA_MAP_JOB_ID = "JOB_ID"; /** * JOB状态 */ @Getter @AllArgsConstructor enum JobStatus { PAUSE( -1, "暂停"), READY( 0, "已准备"), RUNNING( 1, "运行中"), ; private int code; private String remark; } /** * 分片状态 */ @Getter @AllArgsConstructor enum SnippetStatus { READY((int) 0, "已准备"), RUNNING((int) 1, "运行中"), SUCCESS((int) 2, "执行成功"), FAILED((int) -2, "执行失败"), ; private int code; private String remark; } /** * 分片状态 */ @Getter @AllArgsConstructor enum LogStatus { FAILED((int) 0, "执行失败"), SUCCESS((int) 1, "执行成功"), IGNORE((int) 2, "跳过"), NONE((int) -1, "执行中"), ; private int code; private String remark; } /** * 触发类型 */ @Getter @AllArgsConstructor enum TriggerType { SYSTEM("SYSTEM", "系统"), MANUAL("MANUAL", "手动"), ; private String code; private String remark; } } /** * 跟踪日志异常等级 */ @Getter @AllArgsConstructor public enum ExceptionLevel { DANGER((int)10, "高"), WARN((int)5, "中"), LOW((int)0, "低"), ; private int level; private String remark; } /** * MyBatis自动注入忽略 */ public interface Ignore { /** * 忽略时间,当不需要更新createTime/updateTime时,可使用该常量进行填充。 */ Date IGNORE_TIME = new IgnoreDate(); /** * 忽略用户,当不需要更新createUser/updateUser时,可使用该常量进行填充。 */ Integer IGNORE_USER = -1; /** * 忽略时间类 */ class IgnoreDate extends Date {} } /** * 文件附件类型 */ public interface multiFileType{ //0问题上报 1跌绊滑上报 2跌绊滑处理 3分配物业主管 4分配处理人 5DCA风险上报 6DCA风险处理 7DCA问题工单图片 // int sheUpload = 0; // int dbhUpload = 1; // int dbhDeal = 2; // int dbhAllocation = 3; // int dbhDealUser = 4; // int dcaUpload = 5; // int dcaDeal = 6; // int dcaWorkOrder= 7; //0工单上报 1工单处理 2工单转交 int upload = 0; int deal = 1; int passOn = 2; } public enum WorkOrderStatus{ waitConfirm( 0, "待分配WTS","{title}上报","","待分配WTS" ), waitAllocation(1, "待分配任务","待分配任务","","待分配任务"), waitDeal(2, "待处理","待处理","","待工程师处理"), sheClose(3, "已解决","SHE已关闭","","SHE已关闭"), wtsClose(4, "已解决","WTS已关闭","","WTS已关闭"), close(5, "已解决","已解决","","工程师关闭"), urge (6, "催促","","","") ; private int status; private String statusInfo; private String statusName; private String logTitle; private String noticeContent; // 构造方法 WorkOrderStatus(int status, String statusInfo,String logTitle,String noticeContent,String statusName ) { this.status = status; this.statusInfo = statusInfo; this.logTitle = logTitle; this.noticeContent = noticeContent; this.statusName = statusName; } public static String getName(int index) { for (WorkOrderStatus c : WorkOrderStatus.values()) { if (c.getKey() == index) { return c.statusInfo; } } return null; } public static String getStatusName(int index) { for (WorkOrderStatus c : WorkOrderStatus.values()) { if (c.getKey() == index) { return c.statusName; } } return null; } public int getKey() { return status; } public void setKey(int key) { this.status = status; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public String getStatusName() { return statusName; } public void setStatusName(String statusName) { this.statusName = statusName; } public String getStatusInfo() { return statusInfo; } public void setStatusInfo(String statusInfo) { this.statusInfo = statusInfo; } public String getLogTitle() { return logTitle; } public void setLogTitle(String logTitle) { this.logTitle = logTitle; } public String getNoticeContent() { return noticeContent; } public void setNoticeContent(String noticeContent) { this.noticeContent = noticeContent; } } /** * 用户收支业务类型 * 变动类型:0=用工单收入;1=货运单收入;2=供餐单收入;3=提现申请; */ @Getter public enum RevenueType { YGD_INCOME( 0, "用工单收入","用工单" ,0), HYD_INCOME( 1, "货运单收入","货运单" ,0), GCD_INCOME(2, "供餐单收入","供餐单" ,0), WITHDRAW_APPLY(3, "提现申请","提现申请" ,0), REFUND( 4, "提现申请退回","提现申请退回" ,0) ; private int key; private String name; private String info; private int navIndex; RevenueType(int key, String name, String info,int navIndex) { this.info = info; this.key = key; this.name = name; this.navIndex = navIndex; } public static RevenueType getObj(int index) { for (RevenueType c : RevenueType.values()) { if (c.getKey() == index) { return c; } } return null; } public static String getName(int index) { for (RevenueType c : RevenueType.values()) { if (c.getKey() == index) { return c.getName(); } } return null; } public static String getInfo(int index) { for (RevenueType c : RevenueType.values()) { if (c.getKey() == index) { return c.getInfo(); } } return null; } public static String getObjName(int index) { for (RevenueType c : RevenueType.values()) { if (c.getKey() == index) { return c.getName(); } } return null; } } public enum OrdersLog { UPLOAD(0, "发单方-发布订单","{userName}发布{param}",0), RECEIVE(1, "接单方-已抢单","{userName}已抢单",1), UPD_ORDER(2, "发单方-修改订单","{userName}修改了用工时间",0), UPD_DISAGREE(3, "接单方-不同意修改,订单取消","{userName}不同意修改,订单取消",1), UPD_AGREE(4, "接单方-同意修改","{userName}同意修改",1), AUTO(5, "系统-自动派单","无人接单已自动派单给{userName}",1), CANCEL(6, "接单方-取消接单","{userName}已手动取消接单",1), BEGIN(7, "发单方-开始作业","{userName}已开始作业",0), DONE(8, "发单方-完成作业","{userName}已确认完成作业",0), PAY(9, "发单方-完成支付","{userName}已支付费用",0), COMMENT(10, "发单方-评价完成","{userName}完成评价",0), SYSTEM_CANCEL(11, "系统-订单取消","系统取消",2), RELEASE_CANCEL(12, "发单方-订单取消","{userName}已手动取消订单",0), AUTO_COMMENT(13, "系统-自动评价","超出7日未评价,系统已自动评价",2), AUTO_AGREE(14, "系统-自动同意","接单方超时未处理,已自动同意",2), FEE_CONFIRM(15, "接单方-确认费用","{userName}已确认费用",1), ; // 成员变量 private String name; private String info; private int key; private int userType; // 构造方法 OrdersLog(int key, String name,String info,int userType) { this.name = name; this.info = info; this.key = key; this.userType = userType; } // 普通方法 public static String getName(int index) { for (OrdersLog c : OrdersLog.values()) { if (c.getKey() == index) { return c.name; } } return null; } public static String getInfo(int index) { for (OrdersLog c : OrdersLog.values()) { if (c.getKey() == index) { return c.info; } } 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 int getUserType() { return userType; } public void setUserType(int key) { this.userType = userType; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } } public enum workType { czg(0, "采摘工"), fjg(1, "分拣工"), bzg(2, "包装工"), ; // 成员变量 private int key; private String name; // 构造方法 workType(int key, String name) { this.name = name; this.key = key; } // 普通方法 public static String getName(int index) { for (workType c : workType.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 ordersStatus { waitPay(0, "待支付","待支付"), wait(1, "待接单","待接单"), accept(2, "已接单","已接单"), doing(3, "进行中","进行中"), done(4, "已完成","已完成"), feeconfirm(5, "待支付","待发单方支付"),//金额已确认 cancel(99, "已取消","已取消"), ; // 成员变量 private int key; private String name; //接单方文案 private String info; //发单方文案 // 构造方法 ordersStatus(int key, String name,String info) { this.name = name; this.key = key; this.info = info; } // 普通方法 public static String getName(int index) { for (ordersStatus c : ordersStatus.values()) { if (c.getKey() == index) { return c.name; } } return null; } public static String getInfo(int index) { for (ordersStatus c : ordersStatus.values()) { if (c.getKey() == index) { return c.info; } } 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 getInfo() { return info; } public void setInfo(String info) { this.info = info; } } public enum orderType { ygd(0, "用工单"), hyd(1, "货运单"), scd(2, "送餐单"), ; // 成员变量 private int key; private String name; // 构造方法 orderType(int key, String name) { this.name = name; this.key = key; } // 普通方法 public static String getName(int index) { for (orderType c : orderType.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 smsContent { accept(0, "SMS_491325122","您的{order}订单已被接单!时间:{time1}-{time2},可进入小程序联系接单方。"), receiveCancel(1, "SMS_491055243","您的{order}订单,时间:{time1}-{time2},已被接单方取消,订单已重新进入接单大厅。"), platformCancel(2, "SMS_491375152","您的{order}订单,时间:{time1}-{time2},已由平台取消。如有疑问请联系客服。"), agreeUpd(3, "SMS_491190259","接单方已同意您将{order}的订单时间修改为{time1}至{time2}。"), disAgreeUpd(4, "SMS_491085252","接单方已拒绝您将{order}的订单时间修改为{time1}-{time2}。系统已重新将订单放入接单大厅。"), orderUpd(5, "SMS_491010267","请注意!您承接的{order}订单,客户将订单时间修改为{time1}-{time2}。请前往确认是否接受,超时不处理将视为同意。"), releaseCancel(6, "SMS_491150253","您承接的{order}订单,时间:{time1}-{time2},已被发单方取消。您可前往接单大厅重新接单。"), platformCancel2(7, "SMS_491420143","您承接的{order}订单,时间:{time1}-{time2},已由平台取消。如有疑问请联系客服。"), dispatch(8, "SMS_491180276","已为您智能匹配订单。订单类型:{order},时间:{time1}-{time2},距离:{distance},预计费用{money}。请前往确认。"), pay(9, "SMS_491180278","您承接的{order}订单款项已到账!到账金额:{money}。可在小程序账户余额进行查看。"), authentication(10, "SMS_491055290","您申请的{authentication}的{order}认证{status}。请在小程序查看详情。"), ; // 成员变量 private int key; private String code; private String name; // 构造方法 smsContent(int key,String code, String name) { this.name = name; this.code = code; this.key = key; } // 普通方法 public static Constants.smsContent getSmsContent(int index) { for (smsContent c : smsContent.values()) { if (c.getKey() == index) { return c; } } return null; } // get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } } public static String getOrderInfo(Orders orders){ String orderTypeInfo = "用工单"; if(!Constants.equalsInteger(orders.getType(),Constants.ZERO)){ orderTypeInfo = Constants.equalsInteger(orders.getType(),Constants.ONE)?"用车单":"送餐单"; }else{ if(Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)){ orderTypeInfo = orderTypeInfo + "-采摘工"; }else{ orderTypeInfo = orderTypeInfo + (Constants.equalsInteger(orders.getWorkType(),Constants.ONE)?"-分拣工":"-包装工"); } } return orderTypeInfo; } }