1、完善项目

2、完善合同
3、完善费用项
4、司机管理对接OCR
5、完善运输计划
6、完善临时额度
This commit is contained in:
2026-08-04 02:49:59 +08:00
387 changed files with 22482 additions and 110 deletions

View File

@@ -0,0 +1,81 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
@Data
@Schema(description = "APP版本管理")
@TableName("t_app_version")
@EqualsAndHashCode(callSuper = true)
public class AppVersion extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@NotEmpty
@Schema(description = "更新类型")
protected String updateType;
@TableField(condition = SqlCondition.LIKE)
@NotEmpty
@Schema(description = "版本号")
protected String version;
@TableField(condition = SqlCondition.LIKE)
@NotEmpty
@Schema(description = "子版本号")
protected String subVersion;
@NotEmpty
@Schema(description = "强制更新(是/否)")
protected String isForceUpdate;
@NotEmpty
@Schema(description = "安装方式")
protected String installMethod;
@NotNull
@Schema(description = "安装包(附件Id)")
protected Long installAttachmentId;
@TableField(condition = SqlCondition.LIKE)
@NotEmpty
@Schema(description = "更新说明")
protected String updateExplanation;
}

View File

@@ -0,0 +1,88 @@
package org.springblade.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Date;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.experimental.Accessors;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.io.Serial;
/**
* 数据同步记录表 实体类
*
* @author BladeX
* @since 2024-09-27
*/
@Accessors(chain = true)
@Data
@TableName("blade_data_sync_record")
@Schema(description = "DataSyncRecord对象")
public class DataSyncRecord implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "主键")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 系统编码
*/
@Schema(description = "系统编码")
private String systemCode;
/**
* 数据类型
*/
@Schema(description = "数据类型")
private String dataType;
/**
* 模式
*/
@Schema(description = "模式")
private String mode;
/**
* 结果
*/
@Schema(description = "结果")
private String result;
/**
* 同步时间
*/
@Schema(description = "同步时间")
private Date syncTime;
/**
* 租户ID
*/
@Schema(description = "租户ID")
@TableField(fill = FieldFill.INSERT)
private String tenantId;
/**
* 创建时间
*/
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
@Schema(description = "创建时间", hidden = true)
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 状态[0:未删除,1:删除]
*/
@TableLogic
@Schema(description = "是否已删除", hidden = true)
@TableField(fill = FieldFill.INSERT)
private Integer isDeleted;
}

View File

@@ -33,9 +33,11 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 实体类
@@ -45,7 +47,7 @@ import java.io.Serializable;
@Data
@TableName("blade_dept")
@Schema(description = "Dept对象")
public class Dept implements Serializable {
public class Dept extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@@ -127,4 +129,30 @@ public class Dept implements Serializable {
private Integer isDeleted;
/**
* 部门编码
*/
@Schema(description = "部门编码")
private String deptCode;
/**
* 父部门编码
*/
@Schema(description = "父部门编码")
private String parentCode;
/**
* 同步时间
*/
@Schema(description = "同步时间")
private Date syncTime;
/**
* 所属公司编码
*/
@Schema(description = "所属公司编码")
private String belongCompanyCode;
/**
* 是否是oa的部门
*/
@Schema(description = "是否是oa的部门")
private Integer isOa;
}

View File

@@ -0,0 +1,69 @@
package org.springblade.system.pojo.enums;
/**
* 数据同步枚举类
* @author bfhuange
* @date 2024/9/27
*/
public class DataSync {
/**
* 系统编码
*/
public enum SystemCode {
/**
* oa 系统
*/
OA,
/**
* mk 系统
*/
MK,
;
}
/**
* 数据类型
*/
public enum DataType {
/**
* 组织,包含公司和部门
*/
ORG,
/**
* 人员
*/
PERSON,
;
}
/**
* 模式
*/
public enum Mode {
/**
* 获取
*/
FETCH,
/**
* 推送
*/
PUSH,
;
}
/**
* 结果
*/
public enum Result {
/**
* 成功
*/
SUCCESS,
/**
* 失败
*/
FAIL,
;
}
}

View File

@@ -0,0 +1,32 @@
package org.springblade.system.pojo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 部门类型枚举
* @author bfhuange
* @date 2024/8/26
*/
@AllArgsConstructor
@Getter
public enum DeptCategory {
/**
* 公司
*/
COMPANY(1, "公司"),
/**
* 部门
*/
DEPT(2, "部门"),
;
/**
* 部门类型编码
*/
private final Integer code;
/**
* 部门类型名称
*/
private final String name;
}

View File

@@ -0,0 +1,43 @@
package org.springblade.system.pojo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.stream.Stream;
/**
* 用户性别枚举
* @author bfhuange
* @date 2024/8/27
*/
@Getter
@AllArgsConstructor
public enum UserSex {
/**
* 男
*/
MAN(1, ""),
/**
* 女
*/
WOMAN(2, ""),
;
/**
* 编码
*/
private final Integer code;
/**
* 名称
*/
private final String name;
public static Integer getCodeByName(String name) {
if (name == null || name.isEmpty()) {
return null;
}
return Stream.of(values())
.filter(e -> e.getName().equals(name))
.map(UserSex::getCode)
.findFirst().orElse(null);
}
}

View File

@@ -0,0 +1,52 @@
package org.springblade.system.pojo.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @author bfhuange
* @date 2024/8/27
*/
@Data
@Schema(description = "DeptListVO")
public class DeptListVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "主键id")
private Long id;
/**
* 部门编码
*/
@Schema(description = "部门编码")
private String deptCode;
/**
* 机构名
*/
@Schema(description = "机构名")
private String deptName;
/**
* 父主键
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "父主键")
private Long parentId;
/**
* 父部门编码
*/
@Schema(description = "父部门编码")
private String parentCode;
/**
* 部门类型
*/
@Schema(description = "部门类型")
private Integer deptCategory;
}

View File

@@ -25,6 +25,7 @@
*/
package org.springblade.system.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -44,4 +45,12 @@ public class FeeItemVO extends FeeItem {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "组织")
private String createDeptName;
@TableField(exist = false)
@Schema(description = "更新人")
private String updateUserName;
}

View File

@@ -0,0 +1,37 @@
package org.springblade.system.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 用户部门id
* @author bfhuange
* @date 2024/9/12
*/
@Data
@Schema(description = "UserDeptIdsVO对象")
public class UserDeptIdsVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
@Schema(description = "用户id")
private Long userId;
/**
* 部门id多个用逗号拼接
*/
@Schema(description = "部门id多个用逗号拼接")
private String deptIds;
/**
* 部门编码,多个用逗号拼接
*/
@Schema(description = "部门编码,多个用逗号拼接")
private String deptCodes;
}

View File

@@ -0,0 +1,83 @@
package org.springblade.system.util;
import org.springblade.system.pojo.entity.DataSyncRecord;
import org.springblade.system.pojo.enums.DataSync;
/**
* 数据同步记录工具类
* @author bfhuange
* @date 2024/9/27
*/
public class DataSyncRecordUtils {
private DataSyncRecordUtils() {}
/**
* 创建获取oa组织的数据同步记录
* @return
*/
public static DataSyncRecord createOAOrgFetch() {
return DataSyncRecordUtils.createOAFetch()
// 数据类型是组织
.setDataType(DataSync.DataType.ORG.name());
}
/**
* 创建获取oa人员的数据同步记录
* @return
*/
public static DataSyncRecord createOAPersonFetch() {
return DataSyncRecordUtils.createOAFetch()
// 数据类型是人员
.setDataType(DataSync.DataType.PERSON.name());
}
/**
* 创建推送mk组织的数据同步记录
* @return
*/
public static DataSyncRecord createMKOrgPush() {
return DataSyncRecordUtils.createMKPush()
// 数据类型是组织
.setDataType(DataSync.DataType.ORG.name());
}
/**
* 创建推送mk人员的数据同步记录
* @return
*/
public static DataSyncRecord createMKPersonPush() {
return DataSyncRecordUtils.createMKPush()
// 数据类型是人员
.setDataType(DataSync.DataType.PERSON.name());
}
/**
* 创建oa 获取数据记录
*
* @return
*/
private static DataSyncRecord createOAFetch() {
return new DataSyncRecord()
// oa 系统
.setSystemCode(DataSync.SystemCode.OA.name())
// 获取数据
.setMode(DataSync.Mode.FETCH.name())
// 默认结果是成功
.setResult(DataSync.Result.SUCCESS.name());
}
/**
* 创建mk 推送数据记录
*
* @return
*/
private static DataSyncRecord createMKPush() {
return new DataSyncRecord()
// mk 系统
.setSystemCode(DataSync.SystemCode.MK.name())
// 推送数据
.setMode(DataSync.Mode.PUSH.name())
// 默认结果是成功
.setResult(DataSync.Result.SUCCESS.name());
}
}