diff --git a/blade-service-api/blade-file-api/src/main/java/org/springblade/file/pojo/dto/FileCertificateBatchRecognitionDTO.java b/blade-service-api/blade-file-api/src/main/java/org/springblade/file/pojo/dto/FileCertificateBatchRecognitionDTO.java index 21aec90..f982b0b 100644 --- a/blade-service-api/blade-file-api/src/main/java/org/springblade/file/pojo/dto/FileCertificateBatchRecognitionDTO.java +++ b/blade-service-api/blade-file-api/src/main/java/org/springblade/file/pojo/dto/FileCertificateBatchRecognitionDTO.java @@ -21,9 +21,9 @@ public class FileCertificateBatchRecognitionDTO implements Serializable { @Serial private static final long serialVersionUID = 1L; /** - * 所有图像 obs key列表 + * 所有图像完整 URL 列表 */ - @NotEmpty(message = "图像 obs key列表不能为空") + @NotEmpty(message = "图像 URL 列表不能为空") private List objectKeys; /** * 项目简称 @@ -38,19 +38,19 @@ public class FileCertificateBatchRecognitionDTO implements Serializable { */ private String dirName; /** - * 磅单 obs key列表 + * 磅单完整 URL 列表 */ private List poundUrls; /** - * 车头 obs key列表 + * 车头完整 URL 列表 */ private List carFrontUrls; /** - * 驾驶证 obs key列表 + * 驾驶证完整 URL 列表 */ private List driverLicenseUrls; /** - * 行驶证 obs key列表 + * 行驶证完整 URL 列表 */ private List vehicleLicenseUrls; diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java index 53002eb..d0fb928 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java @@ -134,6 +134,30 @@ public class Dept extends TenantEntity { */ @Schema(description = "部门编码") private String deptCode; + + /** + * 组织简称 + */ + @Schema(description = "组织简称") + private String shortName; + + /** + * 拼音助记码 + */ + @Schema(description = "拼音助记码") + private String pinyinMnemonic; + + /** + * 助记码 + */ + @Schema(description = "助记码") + private String mnemonicCode; + + /** + * 承运商客商档案主键 + */ + @Schema(description = "承运商客商档案主键") + private Long carrierCustomerId; /** * 父部门编码 */ diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/EquipmentLedger.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/EquipmentLedger.java new file mode 100644 index 0000000..6cf1edb --- /dev/null +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/EquipmentLedger.java @@ -0,0 +1,41 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; +import java.time.LocalDate; + +/** + * 设备台账实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("blade_equipment_ledger") +@Schema(description = "设备台账") +public class EquipmentLedger extends TenantEntity { + @Serial + private static final long serialVersionUID = 1L; + private String vehicleType; + private String vehicleNo; + private String equipmentCode; + private String equipmentName; + private String equipmentBrand; + private String equipmentType; + private String specificationModel; + private LocalDate factoryDate; + private String originalEquipmentNo; + private String remark; + private String attachments; + private Integer onlineStatus; +} diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportVehicle.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportVehicle.java index 4688695..e79e0ef 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportVehicle.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/TransportVehicle.java @@ -213,5 +213,11 @@ public class TransportVehicle extends TenantEntity { */ @Schema(description = "备注") private String remark; + /** 认证状态:0认证中 1认证通过 2认证驳回 */ + @Schema(description = "认证状态:0认证中 1认证通过 2认证驳回") + private Integer certificationStatus; + /** 认证驳回原因 */ + @Schema(description = "认证驳回原因") + private String certificationRejectReason; } diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/EquipmentLedgerVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/EquipmentLedgerVO.java new file mode 100644 index 0000000..6df81ad --- /dev/null +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/EquipmentLedgerVO.java @@ -0,0 +1,29 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.pojo.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.transport.pojo.entity.EquipmentLedger; + +import java.io.Serial; + +/** + * 设备台账视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "设备台账") +public class EquipmentLedgerVO extends EquipmentLedger { + @Serial + private static final long serialVersionUID = 1L; + @TableField(exist = false) + private String updateUserName; +} diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/User.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/User.java index 63ee3cc..3700a9e 100644 --- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/User.java +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/User.java @@ -25,6 +25,7 @@ */ package org.springblade.system.pojo.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -35,6 +36,7 @@ import org.springblade.system.pojo.context.IPhone; import java.io.Serial; import java.util.Date; +import java.util.List; /** * 实体类 @@ -133,6 +135,27 @@ public class User extends TenantEntity implements IPhone { * 是否推送mk */ private Integer isPushMk; + /** + * 备注 + */ + private String remark; + /** + * OA 人员 ID(由用户部门关联表聚合查询返回) + */ + @TableField(exist = false) + private String oaPersonId; + /** 人员类别:1-内部员工,2-承运商 */ + private Integer personCategory; + /** 数据权限范围:1-仅所属组织,2-全部组织,3-自定义 */ + private Integer dataScopeRange; + /** 数据层级范围:1-包含下级,2-仅本级 */ + private Integer dataLevelRange; + /** 是否包含新增客商 */ + private Integer includeNewCustomer; + @TableField(exist = false) + private List dataScopeDeptIds; + @TableField(exist = false) + private List customerIds; } diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/UserCustomerScope.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/UserCustomerScope.java new file mode 100644 index 0000000..229cae6 --- /dev/null +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/UserCustomerScope.java @@ -0,0 +1,15 @@ +package org.springblade.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("blade_user_customer_scope") +public class UserCustomerScope { + @TableId(type = IdType.ASSIGN_ID) + private Long id; + private Long userId; + private Long customerId; +} diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/UserDataScope.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/UserDataScope.java new file mode 100644 index 0000000..139a87b --- /dev/null +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/pojo/entity/UserDataScope.java @@ -0,0 +1,15 @@ +package org.springblade.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("blade_user_data_scope") +public class UserDataScope { + @TableId(type = IdType.ASSIGN_ID) + private Long id; + private Long userId; + private Long deptId; +} diff --git a/blade-service/blade-file/src/main/java/org/springblade/file/service/impl/OCRConvertServiceImpl.java b/blade-service/blade-file/src/main/java/org/springblade/file/service/impl/OCRConvertServiceImpl.java index fe94531..ea98b07 100644 --- a/blade-service/blade-file/src/main/java/org/springblade/file/service/impl/OCRConvertServiceImpl.java +++ b/blade-service/blade-file/src/main/java/org/springblade/file/service/impl/OCRConvertServiceImpl.java @@ -5,18 +5,14 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.Func; -import org.springblade.core.tool.utils.StringUtil; import org.springblade.file.convert.OCRConverter; import org.springblade.file.pojo.dto.FileCertificateBatchRecognitionDTO; -import org.springblade.file.service.IFileService; import org.springblade.file.service.IOCRConvertService; import org.springblade.thirdparty.ocr.pojo.dto.CertificateBatchRecognitionDTO; import org.springblade.thirdparty.ocr.pojo.vo.TransportCertificateVO; import org.springblade.thirdparty.ocr.service.IOCRService; import org.springframework.stereotype.Service; -import java.util.List; - /** * @author bfhuange * @since 2025/3/13 @@ -26,7 +22,6 @@ import java.util.List; @Service public class OCRConvertServiceImpl implements IOCRConvertService { - private final IFileService fileService; private final IOCRService ocrService; private final OCRConverter converter; @@ -34,48 +29,26 @@ public class OCRConvertServiceImpl implements IOCRConvertService { public TransportCertificateVO recognitionTransportCertificate(FileCertificateBatchRecognitionDTO param) { Func.requireNotNull(param, "参数不能为空"); if (CollectionUtil.isEmpty(param.getObjectKeys())) { - throw new ServiceException("图像obs key不能为空"); + throw new ServiceException("图像 URL 列表不能为空"); } CertificateBatchRecognitionDTO ocrParam = converter.dto2ocr(param); - ocrParam.setPoundUrls(resolveFileUrls(param.getPoundUrls())); - ocrParam.setCarFrontUrls(resolveFileUrls(param.getCarFrontUrls())); - ocrParam.setDriverLicenseUrls(resolveFileUrls(param.getDriverLicenseUrls())); - ocrParam.setVehicleLicenseUrls(resolveFileUrls(param.getVehicleLicenseUrls())); - if (!hasTypedObjectKeys(param)) { - // 旧格式字符串数组仍按通用 urls 传递。 - List fileUrls = param.getObjectKeys().stream() - .map(this::resolveFileUrl) - .toList(); - ocrParam.setUrls(fileUrls); + ocrParam.setPoundUrls(param.getPoundUrls()); + ocrParam.setCarFrontUrls(param.getCarFrontUrls()); + ocrParam.setDriverLicenseUrls(param.getDriverLicenseUrls()); + ocrParam.setVehicleLicenseUrls(param.getVehicleLicenseUrls()); + if (!hasTypedUrls(param)) { + ocrParam.setUrls(param.getObjectKeys()); } else { ocrParam.setUrls(null); } return ocrService.recognitionTransportCertificate(ocrParam); } - private boolean hasTypedObjectKeys(FileCertificateBatchRecognitionDTO param) { + private boolean hasTypedUrls(FileCertificateBatchRecognitionDTO param) { return CollectionUtil.isNotEmpty(param.getPoundUrls()) || CollectionUtil.isNotEmpty(param.getCarFrontUrls()) || CollectionUtil.isNotEmpty(param.getDriverLicenseUrls()) || CollectionUtil.isNotEmpty(param.getVehicleLicenseUrls()); } - private List resolveFileUrls(List objectKeys) { - if (CollectionUtil.isEmpty(objectKeys)) { - return null; - } - return objectKeys.stream() - .map(this::resolveFileUrl) - .toList(); - } - - private String resolveFileUrl(String objectKey) { - if (StringUtil.isBlank(objectKey)) { - return objectKey; - } - if (objectKey.startsWith("http://") || objectKey.startsWith("https://")) { - return objectKey; - } - return fileService.getFileUrl(objectKey, null); - } } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java index 147bdd9..328fd2a 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java @@ -135,6 +135,17 @@ public class UserController { return R.data(UserWrapper.build().pageVO(pages)); } + /** + * 用户权限配置客商选项:不应用当前用户的客商数据权限。 + */ + @IsAdmin + @GetMapping("/customer-options") + @ApiOperationSupport(order = 5) + @Operation(summary = "用户客商权限选项", description = "返回当前租户全部客商") + public R>> customerOptions() { + return R.data(userService.selectCustomerOptions(AuthUtil.getTenantId())); + } + /** * 新增或修改 */ diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml index 9f825fa..4b40dea 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml @@ -9,9 +9,16 @@ + + + + + + + @@ -21,9 +28,16 @@ + + + + + + + diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserCustomerScopeMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserCustomerScopeMapper.java new file mode 100644 index 0000000..1064dbf --- /dev/null +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserCustomerScopeMapper.java @@ -0,0 +1,7 @@ +package org.springblade.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.system.pojo.entity.UserCustomerScope; + +public interface UserCustomerScopeMapper extends BaseMapper { +} diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDataScopeMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDataScopeMapper.java new file mode 100644 index 0000000..4247a5e --- /dev/null +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserDataScopeMapper.java @@ -0,0 +1,7 @@ +package org.springblade.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.system.pojo.entity.UserDataScope; + +public interface UserDataScopeMapper extends BaseMapper { +} diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java index 2489ab4..76a4be9 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java @@ -33,6 +33,7 @@ import org.springblade.system.pojo.entity.User; import org.springblade.system.excel.UserExcel; import java.util.List; +import java.util.Map; /** * Mapper 接口 @@ -78,4 +79,6 @@ public interface UserMapper extends BaseMapper { */ List exportUser(@Param("ew") Wrapper queryWrapper); + List> selectCustomerOptions(@Param("tenantId") String tenantId); + } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml index 4dc72b0..6a4dd47 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml @@ -25,30 +25,41 @@ + + + + diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java index db389fa..accb55f 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserService.java @@ -105,6 +105,9 @@ public interface IUserService extends BaseService { */ IPage selectUserPage(IPage page, User user, Long deptId, String tenantId); + /** 用户权限配置使用的当前租户全量客商选项。 */ + List> selectCustomerOptions(String tenantId); + /** * 自定义用户搜索分页(按姓名 / 部门 / 岗位模糊匹配,限定当前会话租户) * diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java index fa81cf0..53b4b7b 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java @@ -54,6 +54,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.function.Function; +import java.util.regex.Pattern; import java.util.stream.Collectors; import static org.springblade.core.tenant.TenantGuard.EntityType.DEPT; @@ -189,6 +190,11 @@ public class DeptServiceImpl extends ServiceImpl implements ID List idList = Func.toLongList(ids); // 租户守卫:批量校验目标部门全部归属当前会话租户 TenantGuard.verifyBatch(this, idList, DEPT); + boolean containsRootDept = listByIds(idList).stream() + .anyMatch(dept -> BladeConstant.TOP_PARENT_ID.equals(dept.getParentId())); + if (containsRootDept) { + throw new ServiceException("根节点不能删除!"); + } Long cnt = baseMapper.selectCount(Wrappers.query().lambda().in(Dept::getParentId, idList)); if (cnt > 0L) { throw new ServiceException("请先删除子节点!"); @@ -200,6 +206,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID @Transactional(rollbackFor = Exception.class) public boolean submit(Dept dept) { Long parentId = dept.getParentId(); + Dept parent = null; // 顶级语义:parentId 为 null 或 TOP_PARENT_ID (0L) 均视为顶级部门 if (parentId == null || parentId.equals(BladeConstant.TOP_PARENT_ID)) { // 顶级部门:租户守卫统一处理新增 / 修改路径的租户绑定 @@ -213,7 +220,7 @@ public class DeptServiceImpl extends ServiceImpl implements ID } Dept self = Func.isNotEmpty(dept.getId()) ? TenantGuard.verify(this, dept.getId(), DEPT) : null; - Dept parent = TenantGuard.verify(this, dept.getParentId(), DEPT_PARENT); + parent = TenantGuard.verify(this, dept.getParentId(), DEPT_PARENT); if (parent == null) { throw new ServiceException("上级部门不存在!"); } @@ -228,9 +235,59 @@ public class DeptServiceImpl extends ServiceImpl implements ID if (Func.isEmpty(dept.getTenantId())) { throw new ServiceException("租户ID不能为空"); } + validateDeptCategory(dept, parent); + validateDeptCode(dept, parent); return saveOrUpdate(dept); } + private void validateDeptCategory(Dept dept, Dept parent) { + if (parent == null) { + throw new ServiceException("请选择上级组织"); + } + List allowedCategories; + if (BladeConstant.TOP_PARENT_ID.equals(parent.getParentId())) { + allowedCategories = "外部组织".equals(parent.getDeptName()) ? List.of(6) : List.of(1); + } else if (Integer.valueOf(1).equals(parent.getDeptCategory())) { + allowedCategories = List.of(2, 3); + } else if (List.of(2, 3).contains(parent.getDeptCategory())) { + allowedCategories = List.of(4, 5, 6); + } else { + throw new ServiceException("上级组织层级不支持新增下级组织"); + } + if (!allowedCategories.contains(dept.getDeptCategory())) { + throw new ServiceException("组织类型不符合上级组织层级规则"); + } + if (Integer.valueOf(6).equals(dept.getDeptCategory()) && Func.isEmpty(dept.getCarrierCustomerId())) { + throw new ServiceException("请选择承运商"); + } + } + + private void validateDeptCode(Dept dept, Dept parent) { + String deptCode = dept.getDeptCode(); + if (StringUtil.isBlank(deptCode)) { + throw new ServiceException("组织编码不能为空"); + } + deptCode = deptCode.trim(); + if (deptCode.length() > 30) { + throw new ServiceException("组织编码不能超过30个字符"); + } + if (parent == null || StringUtil.isBlank(parent.getDeptCode())) { + throw new ServiceException("请选择已配置组织编码的上级组织"); + } + String pattern = Pattern.quote(parent.getDeptCode()) + "-\\d+"; + if (!deptCode.matches(pattern)) { + throw new ServiceException("组织编码格式应为:上级编码-分段数字"); + } + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery().eq(Dept::getDeptCode, deptCode); + if (Func.isNotEmpty(dept.getId())) { + queryWrapper.ne(Dept::getId, dept.getId()); + } + if (baseMapper.selectCount(queryWrapper) > 0) { + throw new ServiceException("组织编码已存在"); + } + dept.setDeptCode(deptCode); + } + @Override public List search(String deptName, Long parentId) { String tenantId = AuthUtil.getTenantId(); diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java index 6dfc133..83ecc2c 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserServiceImpl.java @@ -56,6 +56,8 @@ import org.springblade.system.cache.SysCache; import org.springblade.system.cache.UserCache; import org.springblade.system.excel.UserExcel; import org.springblade.system.mapper.UserMapper; +import org.springblade.system.mapper.UserDataScopeMapper; +import org.springblade.system.mapper.UserCustomerScopeMapper; import org.springblade.system.pojo.context.IPhone; import org.springblade.system.pojo.entity.*; import org.springblade.system.pojo.enums.DictEnum; @@ -95,6 +97,8 @@ public class UserServiceImpl extends BaseServiceImpl implement private static final SecureRandom SECURE_RANDOM = new SecureRandom(); private final IUserDeptService userDeptService; + private final UserDataScopeMapper userDataScopeMapper; + private final UserCustomerScopeMapper userCustomerScopeMapper; private final IUserOauthService userOauthService; private final IRoleService roleService; private final BladeTenantProperties tenantProperties; @@ -106,7 +110,7 @@ public class UserServiceImpl extends BaseServiceImpl implement public User getDetail(User user) { QueryWrapper queryWrapper = Condition.getQueryWrapper(user); applyTenantScope(queryWrapper); - return getOne(queryWrapper); + return fillUserScopes(getOne(queryWrapper)); } @Override @@ -120,6 +124,10 @@ public class UserServiceImpl extends BaseServiceImpl implement @Transactional(rollbackFor = Exception.class) public boolean submit(User user) { bindSessionTenant(user); + if (user.getUserType() == null) { + user.setUserType(UserType.WEB.getCategory()); + } + applyUserDefaults(user); return saveUser(user); } @@ -148,7 +156,8 @@ public class UserServiceImpl extends BaseServiceImpl implement throw new ServiceException(StringUtil.format("当前手机 [{}] 已存在!", user.getPhone())); } CacheUtil.clear(USER_CACHE); - return submitUserInfo(user) && submitUserDept(user); + applyUserDefaults(user); + return submitUserInfo(user) && submitUserDept(user) && submitUserScopes(user); } @Override @@ -198,6 +207,11 @@ public class UserServiceImpl extends BaseServiceImpl implement return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId)); } + @Override + public List> selectCustomerOptions(String tenantId) { + return baseMapper.selectCustomerOptions(tenantId); + } + @Override public IPage selectUserSearch(UserVO user, Query query) { LambdaQueryWrapper queryWrapper = Wrappers.query().lambda(); @@ -676,7 +690,7 @@ public class UserServiceImpl extends BaseServiceImpl implement ? Func.toStrWithEmpty(tenantId, AuthUtil.getTenantId()) : AuthUtil.getTenantId(); LambdaQueryWrapper queryWrapper = Wrappers.query().lambda() - .select(User::getId, User::getRealName) + .select(User::getId, User::getRealName, User::getPhone) .like(StringUtil.isNoneBlank(realName), User::getRealName, realName) .eq(User::getTenantId, resolvedTenantId) .eq(User::getIsLeader, BladeConstant.DB_STATUS_1) @@ -756,9 +770,10 @@ public class UserServiceImpl extends BaseServiceImpl implement throw new ServiceException("当前租户已到最大账号额度!"); } } - if (Func.isNotEmpty(user.getPassword())) { - user.setPassword(DigestUtil.encrypt(user.getPassword())); + if (Func.isEmpty(user.getPassword())) { + user.setPassword(ParamCache.getValue(DEFAULT_PARAM_PASSWORD)); } + user.setPassword(DigestUtil.encrypt(user.getPassword())); Long userCount = baseMapper.selectCount(Wrappers.query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount())); if (userCount > 0L && Func.isEmpty(user.getId())) { throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount())); @@ -768,7 +783,45 @@ public class UserServiceImpl extends BaseServiceImpl implement throw new ServiceException(StringUtil.format("当前手机 [{}] 已存在!", user.getPhone())); } CacheUtil.clear(USER_CACHE); - return save(user) && submitUserDept(user); + return save(user) && submitUserDept(user) && submitUserScopes(user); + } + + private void applyUserDefaults(User user) { + if (user.getPersonCategory() == null) user.setPersonCategory(1); + if (user.getDataScopeRange() == null) user.setDataScopeRange(1); + if (user.getDataLevelRange() == null) user.setDataLevelRange(1); + if (user.getIncludeNewCustomer() == null) user.setIncludeNewCustomer(0); + } + + private boolean submitUserScopes(User user) { + userDataScopeMapper.delete(Wrappers.lambdaQuery().eq(UserDataScope::getUserId, user.getId())); + userCustomerScopeMapper.delete(Wrappers.lambdaQuery().eq(UserCustomerScope::getUserId, user.getId())); + if (Objects.equals(user.getDataScopeRange(), 3) && user.getDataScopeDeptIds() != null) { + user.getDataScopeDeptIds().forEach(deptId -> { + UserDataScope scope = new UserDataScope(); + scope.setUserId(user.getId()); + scope.setDeptId(deptId); + userDataScopeMapper.insert(scope); + }); + } + if (user.getCustomerIds() != null) { + user.getCustomerIds().forEach(customerId -> { + UserCustomerScope scope = new UserCustomerScope(); + scope.setUserId(user.getId()); + scope.setCustomerId(customerId); + userCustomerScopeMapper.insert(scope); + }); + } + return true; + } + + private User fillUserScopes(User user) { + if (user == null || user.getId() == null) return user; + user.setDataScopeDeptIds(userDataScopeMapper.selectList(Wrappers.lambdaQuery() + .eq(UserDataScope::getUserId, user.getId())).stream().map(UserDataScope::getDeptId).toList()); + user.setCustomerIds(userCustomerScopeMapper.selectList(Wrappers.lambdaQuery() + .eq(UserCustomerScope::getUserId, user.getId())).stream().map(UserCustomerScope::getCustomerId).toList()); + return user; } /** diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/AccidentRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/AccidentRecordController.java index 31128b0..d28cbb1 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/AccidentRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/AccidentRecordController.java @@ -44,6 +44,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.AccidentRecordExcel; +import org.springblade.transport.excel.AccidentRecordExportExcel; import org.springblade.transport.excel.AccidentRecordImporter; import org.springblade.transport.pojo.entity.AccidentRecord; import org.springblade.transport.pojo.vo.AccidentRecordVO; @@ -144,8 +145,8 @@ public class AccidentRecordController extends BladeController { public void exportAccidentRecord(AccidentRecordVO accidentRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = accidentRecordService.exportAccidentRecord(buildExportQuery(accidentRecord, ids)); - ExcelUtil.export(response, "事故记录" + DateUtil.time(), "事故记录表", list, AccidentRecordExcel.class); + List list = accidentRecordService.exportAccidentRecord(buildExportQuery(accidentRecord, ids)); + ExcelUtil.export(response, "事故记录" + DateUtil.time(), "事故记录表", list, AccidentRecordExportExcel.class); } /** diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/AnnualInspectionRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/AnnualInspectionRecordController.java index 6c5c8d7..988f72c 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/AnnualInspectionRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/AnnualInspectionRecordController.java @@ -44,6 +44,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.AnnualInspectionRecordExcel; +import org.springblade.transport.excel.AnnualInspectionRecordExportExcel; import org.springblade.transport.excel.AnnualInspectionRecordImporter; import org.springblade.transport.pojo.entity.AnnualInspectionRecord; import org.springblade.transport.pojo.vo.AnnualInspectionRecordVO; @@ -126,8 +127,8 @@ public class AnnualInspectionRecordController extends BladeController { public void exportAnnualInspectionRecord(AnnualInspectionRecordVO annualInspectionRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = annualInspectionRecordService.exportAnnualInspectionRecord(buildExportQuery(annualInspectionRecord, ids)); - ExcelUtil.export(response, "年检记录" + DateUtil.time(), "年检记录表", list, AnnualInspectionRecordExcel.class); + List list = annualInspectionRecordService.exportAnnualInspectionRecord(buildExportQuery(annualInspectionRecord, ids)); + ExcelUtil.export(response, "年检记录" + DateUtil.time(), "年检记录表", list, AnnualInspectionRecordExportExcel.class); } @GetMapping("/export-template") diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/CustomerArchiveController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/CustomerArchiveController.java index ea24b0d..93046d6 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/CustomerArchiveController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/CustomerArchiveController.java @@ -36,6 +36,7 @@ import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; @@ -187,6 +188,10 @@ public class CustomerArchiveController extends BladeController { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery() .eq(CustomerArchive::getIsDeleted, 0) .orderByDesc(CustomerArchive::getCreateTime); + Long userId = AuthUtil.getUserId(); + queryWrapper.and(wrapper -> wrapper + .exists("SELECT 1 FROM blade_user_customer_scope bucs WHERE bucs.user_id = " + userId + + " AND bucs.customer_id = blade_customer_archive.id")); if (Func.isNotEmpty(ids)) { queryWrapper.in(CustomerArchive::getId, Func.toLongList(ids)); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/EquipmentLedgerController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/EquipmentLedgerController.java new file mode 100644 index 0000000..c1afe16 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/EquipmentLedgerController.java @@ -0,0 +1,135 @@ +package org.springblade.transport.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.transport.excel.EquipmentLedgerExcel; +import org.springblade.transport.pojo.entity.EquipmentLedger; +import org.springblade.transport.pojo.vo.EquipmentLedgerVO; +import org.springblade.transport.service.IEquipmentLedgerService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; + +/** + * 设备台账控制器 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +@PreAuth(menu = "equipment_ledger") +@RequestMapping("/equipment-ledger") +@Tag(name = "设备台账", description = "设备台账") +public class EquipmentLedgerController extends BladeController { + + private static final int DEFAULT_CURRENT = 1; + private static final int DEFAULT_SIZE = 10; + private static final int MAX_SIZE = 100; + + private final IEquipmentLedgerService equipmentLedgerService; + + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入设备台账ID") + public R detail(@RequestParam Long id) { + return R.data(equipmentLedgerService.getById(id)); + } + + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页") + public R> list(EquipmentLedgerVO equipmentLedger, Query query) { + return R.data(equipmentLedgerService.selectEquipmentLedgerPage(Condition.getPage(normalizeQuery(query)), equipmentLedger)); + } + + @GetMapping("/next-equipment-code") + @ApiOperationSupport(order = 3) + @Operation(summary = "获取下一个设备编号") + public R nextEquipmentCode() { + return R.data(equipmentLedgerService.nextEquipmentCode()); + } + + @PostMapping("/submit") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增或修改") + public R submit(@Valid @RequestBody EquipmentLedger equipmentLedger) { + return R.status(equipmentLedgerService.submit(equipmentLedger)); + } + + @PostMapping("/remove") + @ApiOperationSupport(order = 5) + @Operation(summary = "逻辑删除") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(equipmentLedgerService.deleteLogic(Func.toLongList(ids))); + } + + @PostMapping("/import-equipment-ledger") + @ApiOperationSupport(order = 6) + @Operation(summary = "导入设备台账") + public R importEquipmentLedger(MultipartFile file, HttpServletResponse response) { + List failureList = equipmentLedgerService.importEquipmentLedger(ExcelUtil.read(file, EquipmentLedgerExcel.class)); + if (Func.isNotEmpty(failureList)) { + org.springblade.common.excel.ImportFailureExcelUtil.export(response, "设备台账导入失败明细" + DateUtil.time(), "导入失败明细", failureList, EquipmentLedgerExcel.class); + return null; + } + return R.success("操作成功"); + } + + @GetMapping("/export-equipment-ledger") + @ApiOperationSupport(order = 7) + @Operation(summary = "导出设备台账") + public void exportEquipmentLedger(EquipmentLedgerVO equipmentLedger, @RequestParam(required = false) String ids, HttpServletResponse response) { + List list = equipmentLedgerService.exportEquipmentLedger(buildExportQuery(equipmentLedger, ids)); + ExcelUtil.export(response, "设备台账" + DateUtil.time(), "设备台账表", list, EquipmentLedgerExcel.class); + } + + @GetMapping("/export-template") + @ApiOperationSupport(order = 8) + @Operation(summary = "导出模板") + public void exportTemplate(HttpServletResponse response) { + ExcelUtil.export(response, "设备台账模板", "设备台账表", new ArrayList<>(), EquipmentLedgerExcel.class); + } + + private Query normalizeQuery(Query query) { + if (query == null) query = new Query(); + if (query.getCurrent() == null || query.getCurrent() < DEFAULT_CURRENT) query.setCurrent(DEFAULT_CURRENT); + if (query.getSize() == null || query.getSize() <= 0) query.setSize(DEFAULT_SIZE); + if (query.getSize() > MAX_SIZE) query.setSize(MAX_SIZE); + return query; + } + + private LambdaQueryWrapper buildExportQuery(EquipmentLedgerVO equipmentLedger, String ids) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery() + .eq(EquipmentLedger::getIsDeleted, 0) + .orderByDesc(EquipmentLedger::getCreateTime); + if (Func.isNotEmpty(ids)) queryWrapper.in(EquipmentLedger::getId, Func.toLongList(ids)); + if (Func.isNotEmpty(equipmentLedger.getVehicleNo())) queryWrapper.like(EquipmentLedger::getVehicleNo, equipmentLedger.getVehicleNo()); + if (Func.isNotEmpty(equipmentLedger.getVehicleType())) queryWrapper.eq(EquipmentLedger::getVehicleType, equipmentLedger.getVehicleType()); + if (Func.isNotEmpty(equipmentLedger.getEquipmentCode())) queryWrapper.like(EquipmentLedger::getEquipmentCode, equipmentLedger.getEquipmentCode()); + if (Func.isNotEmpty(equipmentLedger.getCreateDept())) queryWrapper.eq(EquipmentLedger::getCreateDept, equipmentLedger.getCreateDept()); + return queryWrapper; + } +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/EtcRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/EtcRecordController.java index 5fcef71..8258b7d 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/EtcRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/EtcRecordController.java @@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.EtcRecordExcel; +import org.springblade.transport.excel.EtcRecordExportExcel; import org.springblade.transport.excel.EtcRecordImporter; import org.springblade.transport.pojo.entity.EtcRecord; import org.springblade.transport.pojo.vo.EtcRecordVO; @@ -107,8 +108,8 @@ public class EtcRecordController extends BladeController { public void exportEtcRecord(EtcRecordVO etcRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = etcRecordService.exportEtcRecord(buildExportQuery(etcRecord, ids)); - ExcelUtil.export(response, "ETC记录" + DateUtil.time(), "ETC记录表", list, EtcRecordExcel.class); + List list = etcRecordService.exportEtcRecord(buildExportQuery(etcRecord, ids)); + ExcelUtil.export(response, "ETC记录" + DateUtil.time(), "ETC记录表", list, EtcRecordExportExcel.class); } @GetMapping("/export-template") diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/InsuranceRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/InsuranceRecordController.java index d0def3a..6c0d3c3 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/InsuranceRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/InsuranceRecordController.java @@ -45,6 +45,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.InsuranceRecordExcel; +import org.springblade.transport.excel.InsuranceRecordExportExcel; import org.springblade.transport.excel.InsuranceRecordImporter; import org.springblade.transport.pojo.entity.InsuranceRecord; import org.springblade.transport.pojo.vo.InsuranceRecordVO; @@ -145,8 +146,8 @@ public class InsuranceRecordController extends BladeController { public void exportInsuranceRecord(InsuranceRecordVO insuranceRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = insuranceRecordService.exportInsuranceRecord(buildExportQuery(insuranceRecord, ids)); - ExcelUtil.export(response, "保险记录" + DateUtil.time(), "保险记录表", list, InsuranceRecordExcel.class); + List list = insuranceRecordService.exportInsuranceRecord(buildExportQuery(insuranceRecord, ids)); + ExcelUtil.export(response, "保险记录" + DateUtil.time(), "保险记录表", list, InsuranceRecordExportExcel.class); } /** diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MaintenancePlanController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MaintenancePlanController.java index 7d2f1fe..b279ccf 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MaintenancePlanController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MaintenancePlanController.java @@ -44,6 +44,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.MaintenancePlanExcel; +import org.springblade.transport.excel.MaintenancePlanExportExcel; import org.springblade.transport.excel.MaintenancePlanImporter; import org.springblade.transport.pojo.entity.MaintenancePlan; import org.springblade.transport.pojo.vo.MaintenancePlanVO; @@ -144,8 +145,8 @@ public class MaintenancePlanController extends BladeController { public void exportMaintenancePlan(MaintenancePlanVO maintenancePlan, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = maintenancePlanService.exportMaintenancePlan(buildExportQuery(maintenancePlan, ids)); - ExcelUtil.export(response, "保养记录" + DateUtil.time(), "保养记录表", list, MaintenancePlanExcel.class); + List list = maintenancePlanService.exportMaintenancePlan(buildExportQuery(maintenancePlan, ids)); + ExcelUtil.export(response, "保养记录" + DateUtil.time(), "保养记录表", list, MaintenancePlanExportExcel.class); } /** diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MaintenanceRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MaintenanceRecordController.java index 840f98e..e24f851 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MaintenanceRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MaintenanceRecordController.java @@ -44,6 +44,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.MaintenanceRecordExcel; +import org.springblade.transport.excel.MaintenanceRecordExportExcel; import org.springblade.transport.excel.MaintenanceRecordImporter; import org.springblade.transport.pojo.entity.MaintenanceRecord; import org.springblade.transport.pojo.vo.MaintenanceRecordVO; @@ -144,8 +145,8 @@ public class MaintenanceRecordController extends BladeController { public void exportMaintenanceRecord(MaintenanceRecordVO maintenanceRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = maintenanceRecordService.exportMaintenanceRecord(buildExportQuery(maintenanceRecord, ids)); - ExcelUtil.export(response, "维修记录" + DateUtil.time(), "维修记录表", list, MaintenanceRecordExcel.class); + List list = maintenanceRecordService.exportMaintenanceRecord(buildExportQuery(maintenanceRecord, ids)); + ExcelUtil.export(response, "维修记录" + DateUtil.time(), "维修记录表", list, MaintenanceRecordExportExcel.class); } /** diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MileageRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MileageRecordController.java index 9fff809..5c711d3 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MileageRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/MileageRecordController.java @@ -44,6 +44,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.MileageRecordExcel; +import org.springblade.transport.excel.MileageRecordExportExcel; import org.springblade.transport.excel.MileageRecordImporter; import org.springblade.transport.pojo.entity.MileageRecord; import org.springblade.transport.pojo.vo.MileageRecordVO; @@ -126,8 +127,8 @@ public class MileageRecordController extends BladeController { public void exportMileageRecord(MileageRecordVO mileageRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = mileageRecordService.exportMileageRecord(buildExportQuery(mileageRecord, ids)); - ExcelUtil.export(response, "里程记录" + DateUtil.time(), "里程记录表", list, MileageRecordExcel.class); + List list = mileageRecordService.exportMileageRecord(buildExportQuery(mileageRecord, ids)); + ExcelUtil.export(response, "里程记录" + DateUtil.time(), "里程记录表", list, MileageRecordExportExcel.class); } @GetMapping("/export-template") diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/OilElectricRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/OilElectricRecordController.java index 8312864..ee3caae 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/OilElectricRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/OilElectricRecordController.java @@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.OilElectricRecordExcel; +import org.springblade.transport.excel.OilElectricRecordExportExcel; import org.springblade.transport.excel.OilElectricRecordImporter; import org.springblade.transport.pojo.entity.OilElectricRecord; import org.springblade.transport.pojo.vo.OilElectricRecordVO; @@ -107,8 +108,8 @@ public class OilElectricRecordController extends BladeController { public void exportOilElectricRecord(OilElectricRecordVO oilElectricRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = oilElectricRecordService.exportOilElectricRecord(buildExportQuery(oilElectricRecord, ids)); - ExcelUtil.export(response, "油电记录" + DateUtil.time(), "油电记录表", list, OilElectricRecordExcel.class); + List list = oilElectricRecordService.exportOilElectricRecord(buildExportQuery(oilElectricRecord, ids)); + ExcelUtil.export(response, "油电记录" + DateUtil.time(), "油电记录表", list, OilElectricRecordExportExcel.class); } @GetMapping("/export-template") diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/OtherExpenseRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/OtherExpenseRecordController.java index e549b90..3ea8fb5 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/OtherExpenseRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/OtherExpenseRecordController.java @@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.OtherExpenseRecordExcel; +import org.springblade.transport.excel.OtherExpenseRecordExportExcel; import org.springblade.transport.excel.OtherExpenseRecordImporter; import org.springblade.transport.pojo.entity.OtherExpenseRecord; import org.springblade.transport.pojo.vo.OtherExpenseRecordVO; @@ -107,8 +108,8 @@ public class OtherExpenseRecordController extends BladeController { public void exportOtherExpenseRecord(OtherExpenseRecordVO otherExpenseRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = otherExpenseRecordService.exportOtherExpenseRecord(buildExportQuery(otherExpenseRecord, ids)); - ExcelUtil.export(response, "其他费用记录" + DateUtil.time(), "其他费用记录表", list, OtherExpenseRecordExcel.class); + List list = otherExpenseRecordService.exportOtherExpenseRecord(buildExportQuery(otherExpenseRecord, ids)); + ExcelUtil.export(response, "其他费用记录" + DateUtil.time(), "其他费用记录表", list, OtherExpenseRecordExportExcel.class); } @GetMapping("/export-template") diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TireReplacementRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TireReplacementRecordController.java index f729cca..d3d5741 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TireReplacementRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TireReplacementRecordController.java @@ -44,6 +44,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.TireReplacementRecordExcel; +import org.springblade.transport.excel.TireReplacementRecordExportExcel; import org.springblade.transport.excel.TireReplacementRecordImporter; import org.springblade.transport.pojo.entity.TireReplacementRecord; import org.springblade.transport.pojo.vo.TireReplacementRecordVO; @@ -144,8 +145,8 @@ public class TireReplacementRecordController extends BladeController { public void exportTireReplacementRecord(TireReplacementRecordVO tireReplacementRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = tireReplacementRecordService.exportTireReplacementRecord(buildExportQuery(tireReplacementRecord, ids)); - ExcelUtil.export(response, "换胎记录" + DateUtil.time(), "换胎记录表", list, TireReplacementRecordExcel.class); + List list = tireReplacementRecordService.exportTireReplacementRecord(buildExportQuery(tireReplacementRecord, ids)); + ExcelUtil.export(response, "换胎记录" + DateUtil.time(), "换胎记录表", list, TireReplacementRecordExportExcel.class); } /** diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TransportChangeRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TransportChangeRecordController.java index d66588c..10848fa 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TransportChangeRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TransportChangeRecordController.java @@ -44,6 +44,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.TransportChangeRecordExcel; +import org.springblade.transport.excel.TransportChangeRecordExportExcel; import org.springblade.transport.excel.TransportChangeRecordImporter; import org.springblade.transport.pojo.entity.TransportChangeRecord; import org.springblade.transport.pojo.vo.TransportChangeRecordVO; @@ -126,8 +127,8 @@ public class TransportChangeRecordController extends BladeController { public void exportTransportChangeRecord(TransportChangeRecordVO transportChangeRecord, @RequestParam(required = false) String ids, HttpServletResponse response) { - List list = transportChangeRecordService.exportTransportChangeRecord(buildExportQuery(transportChangeRecord, ids)); - ExcelUtil.export(response, "变更记录" + DateUtil.time(), "变更记录表", list, TransportChangeRecordExcel.class); + List list = transportChangeRecordService.exportTransportChangeRecord(buildExportQuery(transportChangeRecord, ids)); + ExcelUtil.export(response, "变更记录" + DateUtil.time(), "变更记录表", list, TransportChangeRecordExportExcel.class); } @GetMapping("/export-template") diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TransportVehicleController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TransportVehicleController.java index ec60559..c21f3bf 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TransportVehicleController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/TransportVehicleController.java @@ -132,6 +132,14 @@ public class TransportVehicleController extends BladeController { return R.status(transportVehicleService.changeStatus(id, status)); } + @PostMapping("/audit-certification") + @ApiOperationSupport(order = 6) + @Operation(summary = "审核车辆认证") + public R auditCertification(@RequestParam Long id, @RequestParam Integer certificationStatus, + @RequestParam(required = false) String rejectReason) { + return R.status(transportVehicleService.auditCertification(id, certificationStatus, rejectReason)); + } + /** * 证件有效期统计 */ diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ViolationRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ViolationRecordController.java index 98d05ab..d3a8944 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ViolationRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ViolationRecordController.java @@ -44,7 +44,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.ViolationRecordExcel; -import org.springblade.transport.excel.ViolationRecordImporter; +import org.springblade.transport.excel.ViolationRecordImportExcel; import org.springblade.transport.pojo.entity.ViolationRecord; import org.springblade.transport.pojo.vo.ViolationRecordVO; import org.springblade.transport.service.IViolationRecordService; @@ -127,9 +127,9 @@ public class ViolationRecordController extends BladeController { @ApiOperationSupport(order = 5) @Operation(summary = "导入违章记录", description = "传入excel") public R importViolationRecord(MultipartFile file, HttpServletResponse response) { - List failureList = violationRecordService.importViolationRecord(ExcelUtil.read(file, ViolationRecordExcel.class)); + List failureList = violationRecordService.importViolationRecord(ExcelUtil.read(file, ViolationRecordImportExcel.class)); if (Func.isNotEmpty(failureList)) { - org.springblade.common.excel.ImportFailureExcelUtil.export(response, "违章记录导入失败明细" + DateUtil.time(), "导入失败明细", failureList, ViolationRecordExcel.class); + org.springblade.common.excel.ImportFailureExcelUtil.export(response, "违章记录导入失败明细" + DateUtil.time(), "导入失败明细", failureList, ViolationRecordImportExcel.class); return null; } return R.success("操作成功"); @@ -155,8 +155,8 @@ public class ViolationRecordController extends BladeController { @ApiOperationSupport(order = 7) @Operation(summary = "导出模板") public void exportTemplate(HttpServletResponse response) { - List list = new ArrayList<>(); - ExcelUtil.export(response, "违章记录模板", "违章记录表", list, ViolationRecordExcel.class); + List list = new ArrayList<>(); + ExcelUtil.export(response, "违章记录模板", "违章记录表", list, ViolationRecordImportExcel.class); } private Query normalizeQuery(Query query) { diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AccidentRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AccidentRecordExcel.java index 2efd54d..0ae2d2d 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AccidentRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AccidentRecordExcel.java @@ -86,7 +86,7 @@ public class AccidentRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AccidentRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AccidentRecordExportExcel.java new file mode 100644 index 0000000..bf0102a --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AccidentRecordExportExcel.java @@ -0,0 +1,98 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.format.NumberFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 事故记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(18) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class AccidentRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("车船类型") + private String vehicleType; + + @ExcelProperty("车牌号/船号") + private String vehicleNo; + + @ExcelProperty("事故发生日期") + private LocalDate accidentDate; + + @ExcelProperty("事故发生地点") + private String accidentLocation; + + @ExcelProperty("事故性质") + private String accidentNature; + + @ExcelProperty("事故责任") + private String accidentResponsibility; + + @ExcelProperty("直接经济损失") + @NumberFormat("0.00") + private BigDecimal directEconomicLoss; + + @ExcelProperty("保险理赔金额") + @NumberFormat("0.00") + private BigDecimal insuranceClaimAmount; + + @ExcelProperty("事故原因及损坏情况") + private String accidentReasonDamage; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; + +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AnnualInspectionRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AnnualInspectionRecordExcel.java index 309eedc..3f9f1af 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AnnualInspectionRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AnnualInspectionRecordExcel.java @@ -86,7 +86,7 @@ public class AnnualInspectionRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AnnualInspectionRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AnnualInspectionRecordExportExcel.java new file mode 100644 index 0000000..a87ac07 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/AnnualInspectionRecordExportExcel.java @@ -0,0 +1,98 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 年检记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(22) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class AnnualInspectionRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("车船类型") + private String vehicleType; + + @ExcelProperty("车牌号/船号") + private String vehicleNo; + + @ExcelProperty("检测评定日期") + private LocalDate inspectionAssessmentDate; + + @ExcelProperty("有效期截止日") + private LocalDate validUntilDate; + + @ExcelProperty("车辆技术等级") + private String vehicleTechnicalLevel; + + @ExcelProperty("船舶检验类型") + private String shipInspectionType; + + @ExcelProperty("客车类型及等级") + private String passengerTypeLevel; + + @ExcelProperty("检测评定单位") + private String inspectionUnit; + + @ExcelProperty("费用") + private BigDecimal fee; + + @ExcelProperty("评定(复核)单位") + private String assessmentUnit; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; + +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/DriverExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/DriverExcel.java index 933c5fd..ed8c9d8 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/DriverExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/DriverExcel.java @@ -53,67 +53,76 @@ public class DriverExcel implements Serializable { @ExcelIgnore private Long id; - @ExcelProperty("司机姓名") + @ExcelProperty("司机姓名 *") private String driverName; - @ExcelProperty("身份证号") + @ExcelProperty("身份证号 *") private String idCardNo; - @ExcelProperty("手机号") - private String mobile; + @ExcelProperty("出生年月") + private LocalDate birthday; - @ExcelProperty("性别") + @ExcelProperty("性别 *") private String gender; - @ExcelProperty("司机类型") - private String driverType; + @ExcelProperty("民族") + private String nation; - @ExcelProperty("岗位") + @ExcelProperty("学历") + private String education; + + @ExcelProperty("住址") + private String address; + + @ExcelProperty("岗位 *") private String posts; - @ExcelProperty("所属组织") - private String organizationName; - - @ExcelProperty("状态") - private String statusName; - - @ExcelProperty("准驾车型") + @ExcelProperty("准驾车型 *") private String drivingType; - @ExcelProperty("驾驶证档案编号") + @ExcelProperty("档案编号 *") private String drivingLicenseNo; - @ExcelProperty("驾驶证有效期起") - private LocalDate drivingLicenseStartDate; - - @ExcelProperty("驾驶证有效期止") + @ExcelProperty("有效期 *") private LocalDate drivingLicenseEndDate; - @ExcelProperty("驾驶证长期有效") - private String drivingLicenseLongTermName; + @ExcelProperty("驾驶证主页图片上传") + private String drivingLicenseFront; - @ExcelProperty("从业资格证类型") + @ExcelProperty("驾驶证副页图片上传") + private String drivingLicenseBack; + + @ExcelProperty("从业资格证类型 *") private String qualificationType; - @ExcelProperty("资格证号") + @ExcelProperty("资格证编号 *") private String qualificationNo; - @ExcelProperty("从业资格证有效期止") + @ExcelProperty("有效期 *") private LocalDate qualificationEndDate; - @ExcelProperty("从业资格证长期有效") - private String qualificationLongTermName; + @ExcelProperty("证件首页上传") + private String qualificationFront; - @ExcelProperty("紧急联系人") + @ExcelProperty("证件内页上传") + private String qualificationBack; + + @ExcelProperty("司机类型 *") + private String driverType; + + @ExcelProperty("手机号 *") + private String mobile; + + @ExcelProperty("紧急联系人姓名 *") private String emergencyContactName; - @ExcelProperty("紧急联系人手机号") + @ExcelProperty("紧急联系人手机号 *") private String emergencyContactMobile; @ExcelProperty("与联系人关系") private String contactRelation; - @ExcelProperty("备注") - private String remark; + @ExcelProperty("所属组织 *") + private String organizationName; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EquipmentLedgerExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EquipmentLedgerExcel.java new file mode 100644 index 0000000..b80123e --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EquipmentLedgerExcel.java @@ -0,0 +1,35 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelIgnore; +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDate; + +/** + * 设备台账 Excel + * + * @author Chill + */ +@Data +public class EquipmentLedgerExcel implements Serializable { + @Serial private static final long serialVersionUID = 1L; + @ExcelProperty("*车船类型") private String vehicleType; + @ExcelProperty("*车牌号/船号") private String vehicleNo; + @ExcelProperty("*设备号") private String equipmentCode; + @ExcelProperty("*设备名称") private String equipmentName; + @ExcelProperty("设备品牌") private String equipmentBrand; + @ExcelProperty("设备类型") private String equipmentType; + @ExcelProperty("规格型号") private String specificationModel; + @ExcelProperty("出厂日期") @DateTimeFormat("yyyy-MM-dd") private LocalDate factoryDate; + @ExcelProperty("备注") private String remark; + @ExcelIgnore private String errorMessage; +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EtcRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EtcRecordExcel.java index 0246683..89e1cf0 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EtcRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EtcRecordExcel.java @@ -58,7 +58,7 @@ public class EtcRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EtcRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EtcRecordExportExcel.java new file mode 100644 index 0000000..0283274 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/EtcRecordExportExcel.java @@ -0,0 +1,64 @@ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * ETC记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(22) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class EtcRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("车牌号") + private String vehicleNo; + + @ExcelProperty("入口时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime entryTime; + + @ExcelProperty("ETC卡号") + private String etcCardNo; + + @ExcelProperty("出口时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime exitTime; + + @ExcelProperty("入口站") + private String entryStation; + + @ExcelProperty("交易金额") + private BigDecimal transactionAmount; + + @ExcelProperty("出口站") + private String exitStation; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/InsuranceRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/InsuranceRecordExcel.java index 8b852e1..e6b8701 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/InsuranceRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/InsuranceRecordExcel.java @@ -89,7 +89,7 @@ public class InsuranceRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/InsuranceRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/InsuranceRecordExportExcel.java new file mode 100644 index 0000000..77702c1 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/InsuranceRecordExportExcel.java @@ -0,0 +1,98 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 保险记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(18) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class InsuranceRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("车船类型") + private String vehicleType; + + @ExcelProperty("车牌号/船号") + private String vehicleNo; + + @ExcelProperty("保险类型") + private String insuranceType; + + @ExcelProperty("保单号") + private String policyNo; + + @ExcelProperty("开始日期") + private LocalDate startDate; + + @ExcelProperty("结束日期") + private LocalDate endDate; + + @ExcelProperty("保额") + private BigDecimal insuredAmount; + + @ExcelProperty("保费") + private BigDecimal premium; + + @ExcelProperty("发票号") + private String invoiceNo; + + @ExcelProperty("开票日期") + private LocalDate invoiceDate; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; + +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenancePlanExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenancePlanExcel.java index 4ded610..b0f0fd6 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenancePlanExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenancePlanExcel.java @@ -100,7 +100,7 @@ public class MaintenancePlanExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenancePlanExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenancePlanExportExcel.java new file mode 100644 index 0000000..4d6666f --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenancePlanExportExcel.java @@ -0,0 +1,37 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.time.LocalDateTime; + +/** + * 车辆保养记录导出 Excel + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaintenancePlanExportExcel extends MaintenancePlanExcel { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty(value = "创建时间", index = 12) + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty(value = "更新人", index = 13) + private String updateUserName; + + @ExcelProperty(value = "更新时间", index = 14) + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenanceRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenanceRecordExcel.java index 846ce70..6361d71 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenanceRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenanceRecordExcel.java @@ -27,6 +27,7 @@ package org.springblade.transport.excel; import cn.idev.excel.annotation.ExcelIgnore; import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; import cn.idev.excel.annotation.format.NumberFormat; import cn.idev.excel.annotation.write.style.ColumnWidth; import cn.idev.excel.annotation.write.style.ContentRowHeight; @@ -64,6 +65,7 @@ public class MaintenanceRecordExcel implements Serializable { private String maintainer; @ExcelProperty("*维修时间") + @DateTimeFormat("yyyy-MM-dd") private LocalDateTime maintenanceTime; @ExcelProperty("维修位置") @@ -86,12 +88,24 @@ public class MaintenanceRecordExcel implements Serializable { private String address; @ExcelProperty("出厂时间") + @DateTimeFormat("yyyy-MM-dd") private LocalDateTime factoryTime; @ExcelProperty("里程/航程数") @NumberFormat("0.00") private BigDecimal mileage; + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + @ExcelProperty("里程单位") private String mileageUnit; @@ -101,7 +115,7 @@ public class MaintenanceRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenanceRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenanceRecordExportExcel.java new file mode 100644 index 0000000..c65060e --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MaintenanceRecordExportExcel.java @@ -0,0 +1,48 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 车辆维修记录导出 Excel + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaintenanceRecordExportExcel extends MaintenanceRecordExcel { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty(value = "导出失败原因", index = 17) + private String errorMessage; + +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MileageRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MileageRecordExcel.java index 98c33ce..dc0fcc0 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MileageRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MileageRecordExcel.java @@ -81,7 +81,7 @@ public class MileageRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MileageRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MileageRecordExportExcel.java new file mode 100644 index 0000000..be5b248 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/MileageRecordExportExcel.java @@ -0,0 +1,90 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.format.NumberFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 里程记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(22) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MileageRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("车船类型") + private String vehicleType; + + @ExcelProperty("车牌号/船号") + private String vehicleNo; + + @ExcelProperty("上月统计里程数") + @NumberFormat("0.00") + private BigDecimal previousMonthMileage; + + @ExcelProperty("本月统计里程数") + @NumberFormat("0.00") + private BigDecimal currentMonthMileage; + + @ExcelProperty("本月行驶里程数") + @NumberFormat("0.00") + private BigDecimal monthlyMileage; + + @ExcelProperty("累计行驶里程数") + @NumberFormat("0.00") + private BigDecimal totalMileage; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; + +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OilElectricRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OilElectricRecordExcel.java index 0d2e762..2b46cbf 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OilElectricRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OilElectricRecordExcel.java @@ -37,7 +37,7 @@ public class OilElectricRecordExcel implements Serializable { @ExcelIgnore private Long id; - @ExcelProperty("卡号") + @ExcelIgnore private String cardNo; @ExcelProperty("*交易时间") @@ -79,7 +79,7 @@ public class OilElectricRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OilElectricRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OilElectricRecordExportExcel.java new file mode 100644 index 0000000..e844b9c --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OilElectricRecordExportExcel.java @@ -0,0 +1,75 @@ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 油电记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(22) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OilElectricRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("交易时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime transactionTime; + + @ExcelProperty("车船类型") + private String vehicleType; + + @ExcelProperty("费用类型") + private String feeType; + + @ExcelProperty("油品") + private String oilProduct; + + @ExcelProperty("车牌号/船号") + private String vehicleNo; + + @ExcelProperty("持卡人") + private String cardHolder; + + @ExcelProperty("数量") + private BigDecimal quantity; + + @ExcelProperty("单价") + private BigDecimal unitPrice; + + @ExcelProperty("交易金额") + private BigDecimal transactionAmount; + + @ExcelProperty("余额") + private BigDecimal balance; + + @ExcelProperty("站点") + private String station; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OtherExpenseRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OtherExpenseRecordExcel.java index 6e96b85..201049a 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OtherExpenseRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OtherExpenseRecordExcel.java @@ -52,7 +52,7 @@ public class OtherExpenseRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OtherExpenseRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OtherExpenseRecordExportExcel.java new file mode 100644 index 0000000..cbf4b79 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/OtherExpenseRecordExportExcel.java @@ -0,0 +1,57 @@ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 其他费用记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(22) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OtherExpenseRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("车船类型") + private String vehicleType; + + @ExcelProperty("车牌号/船号") + private String vehicleNo; + + @ExcelProperty("费用日期") + private LocalDate expenseDate; + + @ExcelProperty("费用类型") + private String expenseType; + + @ExcelProperty("金额") + private BigDecimal amount; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TireReplacementRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TireReplacementRecordExcel.java index 52e411d..eb13fcd 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TireReplacementRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TireReplacementRecordExcel.java @@ -79,7 +79,7 @@ public class TireReplacementRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TireReplacementRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TireReplacementRecordExportExcel.java new file mode 100644 index 0000000..e2e2a32 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TireReplacementRecordExportExcel.java @@ -0,0 +1,91 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.format.NumberFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 换胎记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(18) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class TireReplacementRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("车牌号") + private String vehicleNo; + + @ExcelProperty("处理人") + private String handler; + + @ExcelProperty("换胎时间") + private LocalDate replacementTime; + + @ExcelProperty("轮胎品牌") + private String tireBrand; + + @ExcelProperty("换胎数量") + private Integer tireQuantity; + + @ExcelProperty("换胎费用") + @NumberFormat("0.00") + private BigDecimal replacementCost; + + @ExcelProperty("换胎说明") + private String replacementDescription; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; + +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportChangeRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportChangeRecordExcel.java index c626a91..fa060bb 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportChangeRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportChangeRecordExcel.java @@ -66,7 +66,7 @@ public class TransportChangeRecordExcel implements Serializable { @ExcelProperty("备注") private String remark; - @ExcelProperty + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportChangeRecordExportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportChangeRecordExportExcel.java new file mode 100644 index 0000000..d4f4ce9 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportChangeRecordExportExcel.java @@ -0,0 +1,72 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to these terms. + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 变更记录导出 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(24) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class TransportChangeRecordExportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("车船类型") + private String vehicleType; + + @ExcelProperty("车牌号/船号") + private String vehicleNo; + + @ExcelProperty("变更事项") + private String changeItem; + + @ExcelProperty("变更内容") + private String changeContent; + + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelProperty("备注") + private String remark; + +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportShipExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportShipExcel.java index 96ddc17..2dc6569 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportShipExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportShipExcel.java @@ -54,46 +54,40 @@ public class TransportShipExcel implements Serializable { @ExcelIgnore private Long id; - @ExcelProperty("船舶名") - private String shipName; - - @ExcelProperty("船舶识别号") - private String shipIdentifierNo; - - @ExcelProperty("所属组织") + @ExcelProperty("所属组织 *") private String organizationName; - @ExcelProperty("安放龙骨日期") - private LocalDate keelLayingDate; + @ExcelProperty("船名 *") + private String shipName; - @ExcelProperty("建造完工日期") - private LocalDate buildCompletionDate; + @ExcelProperty("安放龙骨日期 / 建造完工日期") + private String constructionDateRange; - @ExcelProperty("总长") + @ExcelProperty("总长 (m)") private BigDecimal totalLength; - @ExcelProperty("船宽") + @ExcelProperty("船宽 (m)") private BigDecimal shipWidth; - @ExcelProperty("型深") + @ExcelProperty("型深 (m)") private BigDecimal moldedDepth; - @ExcelProperty("最大船高") + @ExcelProperty("最大船高 (m)") private BigDecimal maxShipHeight; - @ExcelProperty("空载吃水") + @ExcelProperty("空载吃水 (t)") private BigDecimal lightDraft; - @ExcelProperty("满载吃水") + @ExcelProperty("满载吃水 (t)") private BigDecimal fullLoadDraft; - @ExcelProperty("航区") + @ExcelProperty("航区 *") private String navigationArea; - @ExcelProperty("登记号码") + @ExcelProperty("登记号码 *") private String ownershipRegistrationNo; - @ExcelProperty("初次登记号码") + @ExcelProperty("初次登记号码 *") private String initialRegistrationNo; @ExcelProperty("船舶所有人") @@ -102,67 +96,52 @@ public class TransportShipExcel implements Serializable { @ExcelProperty("取得所有权日期") private LocalDate ownershipAcquisitionDate; - @ExcelProperty("船检登记号") - private String shipInspectionNo; + @ExcelProperty("船舶识别号 *") + private String shipIdentifierNo; - @ExcelProperty("船舶类型") - private String shipType; - - @ExcelProperty("总吨") + @ExcelProperty("总吨 *") private BigDecimal grossTonnage; - @ExcelProperty("净吨") + @ExcelProperty("净吨 *") private BigDecimal netTonnage; - @ExcelProperty("国籍证有效期自") + @ExcelProperty("船检登记号 *") + private String shipInspectionNo; + + @ExcelProperty("船舶类型 *") + private String shipType; + + @ExcelProperty("证书有效期自 *(国籍证书)") private LocalDate nationalityCertStartDate; - @ExcelProperty("国籍证有效期至") + @ExcelProperty("至 *(国籍证书)") private LocalDate nationalityCertEndDate; - @ExcelProperty("国籍证长期有效") - private String nationalityCertLongTermName; - - @ExcelProperty("最低安全配员证书有效期自") + @ExcelProperty("证书有效期自 *(最低安全配员证书)") private LocalDate safeManningCertStartDate; - @ExcelProperty("最低安全配员证书有效期至") + @ExcelProperty("至 *(最低安全配员证书)") private LocalDate safeManningCertEndDate; - @ExcelProperty("最低安全配员证书长期有效") - private String safeManningCertLongTermName; - - @ExcelProperty("营业运输证证书编号") - private String businessTransportCertNo; - - @ExcelProperty("营业运输证发证日期") - private LocalDate businessTransportCertIssueDate; - - @ExcelProperty("营业运输证有效期至") - private LocalDate businessTransportCertEndDate; - - @ExcelProperty("营业运输证长期有效") - private String businessTransportCertLongTermName; - @ExcelProperty("起租日期") private LocalDate leaseStartDate; - @ExcelProperty("承租有效期至") + @ExcelProperty("终止日期") private LocalDate leaseEndDate; - @ExcelProperty("承租长期有效") - private String leaseLongTermName; - @ExcelProperty("船舶承租人") private String shipLessee; + @ExcelProperty("证书编号(营业运输证)") + private String businessTransportCertNo; + + @ExcelProperty("发证日期 *") + private LocalDate businessTransportCertIssueDate; + + @ExcelProperty("有效期至 *") + private LocalDate businessTransportCertEndDate; + @ExcelProperty("船舶经营人") private String shipOperator; - @ExcelProperty("状态") - private String statusName; - - @ExcelProperty("备注") - private String remark; - } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportVehicleExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportVehicleExcel.java index 7a94b4f..2bd98ee 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportVehicleExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/TransportVehicleExcel.java @@ -53,88 +53,31 @@ public class TransportVehicleExcel implements Serializable { @ExcelIgnore private Long id; - @ExcelProperty("所属组织") - private String organizationName; - - @ExcelProperty("车牌号") + @ExcelProperty("车牌号 *") private String plateNo; - @ExcelProperty("车牌颜色") - private String plateColor; + @ExcelProperty("所属组织 *") + private String organizationName; - @ExcelProperty("车辆类型") - private String vehicleType; - - @ExcelProperty("外廓长度(mm)") - private Integer outerLength; - - @ExcelProperty("外廓宽度(mm)") - private Integer outerWidth; - - @ExcelProperty("外廓高度(mm)") - private Integer outerHeight; - - @ExcelProperty("核定载质量(KG)") - private Integer approvedLoadKg; - - @ExcelProperty("准牵引总质量(KG)") - private Integer tractionMassKg; - - @ExcelProperty("业务关系") + @ExcelProperty("业务关系 *") private String businessRelation; - @ExcelProperty("能源类型") - private String energyType; + @ExcelProperty("车辆类型 *") + private String vehicleType; - @ExcelProperty("强制报废日期") - private LocalDate compulsoryScrapDate; + @ExcelProperty("核定载质量(KG) *") + private Integer approvedLoadKg; - @ExcelProperty("强制报废长期有效") - private String compulsoryScrapLongTermName; - - @ExcelProperty("海关备案号") - private String customsRecordNo; - - @ExcelProperty("行驶证档案编号") - private String drivingLicenseNo; - - @ExcelProperty("行驶证有效期起") - private LocalDate drivingLicenseStartDate; - - @ExcelProperty("行驶证有效期止") - private LocalDate drivingLicenseEndDate; - - @ExcelProperty("行驶证长期有效") - private String drivingLicenseLongTermName; - - @ExcelProperty("道路运输证号") - private String roadTransportCertNo; - - @ExcelProperty("道路运输证有效期起") - private LocalDate roadTransportCertStartDate; - - @ExcelProperty("道路运输证有效期止") - private LocalDate roadTransportCertEndDate; - - @ExcelProperty("道路运输证长期有效") - private String roadTransportCertLongTermName; - - @ExcelProperty("道路运输年审有效期") - private LocalDate annualReviewEndDate; - - @ExcelProperty("道路运输年审长期有效") - private String annualReviewLongTermName; - - @ExcelProperty("机动车登记编号") - private String registrationNo; - - @ExcelProperty("机动车登记日期") - private LocalDate registrationDate; - - @ExcelProperty("状态") + @ExcelProperty("车辆状态") private String statusName; - @ExcelProperty("备注") - private String remark; + @ExcelProperty("行驶证有效期 *") + private LocalDate drivingLicenseEndDate; + + @ExcelProperty("道路运输证有效期 *") + private LocalDate roadTransportCertEndDate; + + @ExcelProperty("年审有效期") + private LocalDate annualReviewEndDate; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordExcel.java index f921203..7abf349 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordExcel.java @@ -27,6 +27,7 @@ package org.springblade.transport.excel; import cn.idev.excel.annotation.ExcelIgnore; import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; import cn.idev.excel.annotation.write.style.ColumnWidth; import cn.idev.excel.annotation.write.style.ContentRowHeight; import cn.idev.excel.annotation.write.style.HeadRowHeight; @@ -92,7 +93,18 @@ public class ViolationRecordExcel implements Serializable { @ExcelProperty("处理结果") private String processResult; - @ExcelProperty + @ExcelProperty("创建时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ExcelProperty("更新人") + private String updateUserName; + + @ExcelProperty("更新时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ExcelIgnore private String errorMessage; } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordImportExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordImportExcel.java new file mode 100644 index 0000000..f3e7f6b --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordImportExcel.java @@ -0,0 +1,94 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.excel; + +import cn.idev.excel.annotation.ExcelIgnore; +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.format.DateTimeFormat; +import cn.idev.excel.annotation.write.style.ColumnWidth; +import cn.idev.excel.annotation.write.style.ContentRowHeight; +import cn.idev.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 违章记录导入 Excel + * + * @author Chill + */ +@Data +@ColumnWidth(18) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class ViolationRecordImportExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("*车船类型") + private String vehicleType; + + @ExcelProperty("*车牌号/船号") + private String vehicleNo; + + @ExcelProperty("*驾驶人") + private String driverName; + + @ExcelProperty("*类型/事项") + private String violationTypeOrItem; + + @ExcelProperty("*时间") + @DateTimeFormat("yyyy-MM-dd HH:mm:ss") + private LocalDateTime violationTime; + + @ExcelProperty("*地址") + private String location; + + @ExcelProperty("被罚金额") + private BigDecimal fineAmount; + + @ExcelProperty("被扣分数") + private Integer deductPoints; + + @ExcelProperty("被罚单位") + private String penaltyUnit; + + @ExcelProperty("*状态") + private String processStatus; + + @ExcelProperty("*过程描述") + private String processDescription; + + @ExcelProperty("处理结果") + private String processResult; + + @ExcelIgnore + private String errorMessage; + +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordImporter.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordImporter.java index 986db7c..43614ad 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordImporter.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/ViolationRecordImporter.java @@ -37,12 +37,12 @@ import java.util.List; * @author Chill */ @RequiredArgsConstructor -public class ViolationRecordImporter implements ExcelImporter { +public class ViolationRecordImporter implements ExcelImporter { private final IViolationRecordService service; @Override - public void save(List data) { + public void save(List data) { service.importViolationRecord(data); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.java index 69dfa8b..3a47de2 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.java @@ -44,6 +44,11 @@ public interface CustomerArchiveMapper extends BaseMapper { * @param customer 查询参数 * @return 客商档案列表 */ - List selectCustomerArchivePage(IPage page, @Param("customer") CustomerArchiveVO customer); + List selectCustomerArchivePage(IPage page, + @Param("customer") CustomerArchiveVO customer, @Param("userId") Long userId); + + int selectCustomerPermissionCount(@Param("customerId") Long customerId, @Param("userId") Long userId); + + List selectIncludeNewCustomerUserIds(@Param("tenantId") String tenantId); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml index cc33aae..f0e3a8d 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/CustomerArchiveMapper.xml @@ -91,6 +91,14 @@ approved_time FROM blade_customer_archive WHERE is_deleted = 0 + + AND EXISTS ( + SELECT 1 + FROM blade_user_customer_scope bucs + WHERE bucs.user_id = #{userId} + AND bucs.customer_id = blade_customer_archive.id + ) + AND customer_code LIKE #{customerCodeLike} @@ -136,4 +144,25 @@ ORDER BY create_time DESC + + + + diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/EquipmentLedgerMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/EquipmentLedgerMapper.java new file mode 100644 index 0000000..5452226 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/EquipmentLedgerMapper.java @@ -0,0 +1,23 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.transport.pojo.entity.EquipmentLedger; +import org.springblade.transport.pojo.vo.EquipmentLedgerVO; + +import java.util.List; + +/** + * 设备台账 Mapper 接口 + * + * @author Chill + */ +public interface EquipmentLedgerMapper extends BaseMapper { + List selectEquipmentLedgerPage(IPage page, @Param("equipmentLedger") EquipmentLedgerVO equipmentLedger); +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/EquipmentLedgerMapper.xml b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/EquipmentLedgerMapper.xml new file mode 100644 index 0000000..2d9780c --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/EquipmentLedgerMapper.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/TransportVehicleMapper.xml b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/TransportVehicleMapper.xml index c5ac0a1..66e0907 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/TransportVehicleMapper.xml +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/TransportVehicleMapper.xml @@ -45,6 +45,8 @@ + + @@ -90,23 +92,21 @@ registration_date, registration_image, remark + , certification_status + , certification_reject_reason ( - (compulsory_scrap_long_term != 1 AND compulsory_scrap_date BETWEEN #{vehicle.today} AND #{vehicle.warningDate}) - OR (driving_license_long_term != 1 AND driving_license_end_date BETWEEN #{vehicle.today} AND #{vehicle.warningDate}) + (driving_license_long_term != 1 AND driving_license_end_date BETWEEN #{vehicle.today} AND #{vehicle.warningDate}) OR (road_transport_cert_long_term != 1 AND road_transport_cert_end_date BETWEEN #{vehicle.today} AND #{vehicle.warningDate}) - OR (annual_review_long_term != 1 AND annual_review_end_date BETWEEN #{vehicle.today} AND #{vehicle.warningDate}) ) ( - (compulsory_scrap_long_term != 1 AND compulsory_scrap_date < #{vehicle.today}) - OR (driving_license_long_term != 1 AND driving_license_end_date < #{vehicle.today}) + (driving_license_long_term != 1 AND driving_license_end_date < #{vehicle.today}) OR (road_transport_cert_long_term != 1 AND road_transport_cert_end_date < #{vehicle.today}) - OR (annual_review_long_term != 1 AND annual_review_end_date < #{vehicle.today}) ) @@ -132,6 +132,9 @@ AND status = #{vehicle.status} + + AND certification_status = #{vehicle.certificationStatus} + AND diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/UserCustomerScopeMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/UserCustomerScopeMapper.java new file mode 100644 index 0000000..cb4e681 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/UserCustomerScopeMapper.java @@ -0,0 +1,7 @@ +package org.springblade.transport.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.system.pojo.entity.UserCustomerScope; + +public interface UserCustomerScopeMapper extends BaseMapper { +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IAccidentRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IAccidentRecordService.java index af60e21..5f6f569 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IAccidentRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IAccidentRecordService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.AccidentRecordExcel; +import org.springblade.transport.excel.AccidentRecordExportExcel; import org.springblade.transport.pojo.entity.AccidentRecord; import org.springblade.transport.pojo.vo.AccidentRecordVO; @@ -71,6 +72,6 @@ public interface IAccidentRecordService extends BaseService { * @param queryWrapper 查询条件 * @return 导出数据 */ - List exportAccidentRecord(Wrapper queryWrapper); + List exportAccidentRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IAnnualInspectionRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IAnnualInspectionRecordService.java index ab7b08b..b114a0f 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IAnnualInspectionRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IAnnualInspectionRecordService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.AnnualInspectionRecordExcel; +import org.springblade.transport.excel.AnnualInspectionRecordExportExcel; import org.springblade.transport.pojo.entity.AnnualInspectionRecord; import org.springblade.transport.pojo.vo.AnnualInspectionRecordVO; @@ -47,6 +48,6 @@ public interface IAnnualInspectionRecordService extends BaseService importAnnualInspectionRecord(List data); - List exportAnnualInspectionRecord(Wrapper queryWrapper); + List exportAnnualInspectionRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IEquipmentLedgerService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IEquipmentLedgerService.java new file mode 100644 index 0000000..75114ea --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IEquipmentLedgerService.java @@ -0,0 +1,28 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.transport.excel.EquipmentLedgerExcel; +import org.springblade.transport.pojo.entity.EquipmentLedger; +import org.springblade.transport.pojo.vo.EquipmentLedgerVO; + +import java.util.List; + +/** + * 设备台账服务接口 + * + * @author Chill + */ +public interface IEquipmentLedgerService extends BaseService { + IPage selectEquipmentLedgerPage(IPage page, EquipmentLedgerVO equipmentLedger); + boolean submit(EquipmentLedger equipmentLedger); + List importEquipmentLedger(List data); + List exportEquipmentLedger(Wrapper queryWrapper); + String nextEquipmentCode(); +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IEtcRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IEtcRecordService.java index 0fc0aa5..4ff01f9 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IEtcRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IEtcRecordService.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.EtcRecordExcel; +import org.springblade.transport.excel.EtcRecordExportExcel; import org.springblade.transport.pojo.entity.EtcRecord; import org.springblade.transport.pojo.vo.EtcRecordVO; @@ -28,6 +29,6 @@ public interface IEtcRecordService extends BaseService { List importEtcRecord(List data); - List exportEtcRecord(Wrapper queryWrapper); + List exportEtcRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IInsuranceRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IInsuranceRecordService.java index 23207b8..542658a 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IInsuranceRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IInsuranceRecordService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.InsuranceRecordExcel; +import org.springblade.transport.excel.InsuranceRecordExportExcel; import org.springblade.transport.pojo.entity.InsuranceRecord; import org.springblade.transport.pojo.vo.InsuranceRecordVO; import org.springframework.web.multipart.MultipartFile; @@ -72,7 +73,7 @@ public interface IInsuranceRecordService extends BaseService { * @param queryWrapper 查询条件 * @return 导出数据 */ - List exportInsuranceRecord(Wrapper queryWrapper); + List exportInsuranceRecord(Wrapper queryWrapper); /** * 识别保单文件 diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMaintenancePlanService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMaintenancePlanService.java index 449688d..69a7514 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMaintenancePlanService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMaintenancePlanService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.MaintenancePlanExcel; +import org.springblade.transport.excel.MaintenancePlanExportExcel; import org.springblade.transport.pojo.entity.MaintenancePlan; import org.springblade.transport.pojo.vo.MaintenancePlanVO; @@ -71,6 +72,6 @@ public interface IMaintenancePlanService extends BaseService { * @param queryWrapper 查询条件 * @return 导出数据 */ - List exportMaintenancePlan(Wrapper queryWrapper); + List exportMaintenancePlan(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMaintenanceRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMaintenanceRecordService.java index bd3977a..cb9212e 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMaintenanceRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMaintenanceRecordService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.MaintenanceRecordExcel; +import org.springblade.transport.excel.MaintenanceRecordExportExcel; import org.springblade.transport.pojo.entity.MaintenanceRecord; import org.springblade.transport.pojo.vo.MaintenanceRecordVO; @@ -71,6 +72,6 @@ public interface IMaintenanceRecordService extends BaseService exportMaintenanceRecord(Wrapper queryWrapper); + List exportMaintenanceRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMileageRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMileageRecordService.java index e6c3d62..c39d38b 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMileageRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IMileageRecordService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.MileageRecordExcel; +import org.springblade.transport.excel.MileageRecordExportExcel; import org.springblade.transport.pojo.entity.MileageRecord; import org.springblade.transport.pojo.vo.MileageRecordVO; @@ -47,6 +48,6 @@ public interface IMileageRecordService extends BaseService { List importMileageRecord(List data); - List exportMileageRecord(Wrapper queryWrapper); + List exportMileageRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IOilElectricRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IOilElectricRecordService.java index 3d6977e..d186b10 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IOilElectricRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IOilElectricRecordService.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.OilElectricRecordExcel; +import org.springblade.transport.excel.OilElectricRecordExportExcel; import org.springblade.transport.pojo.entity.OilElectricRecord; import org.springblade.transport.pojo.vo.OilElectricRecordVO; @@ -28,6 +29,6 @@ public interface IOilElectricRecordService extends BaseService importOilElectricRecord(List data); - List exportOilElectricRecord(Wrapper queryWrapper); + List exportOilElectricRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IOtherExpenseRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IOtherExpenseRecordService.java index abea775..606346b 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IOtherExpenseRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IOtherExpenseRecordService.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.OtherExpenseRecordExcel; +import org.springblade.transport.excel.OtherExpenseRecordExportExcel; import org.springblade.transport.pojo.entity.OtherExpenseRecord; import org.springblade.transport.pojo.vo.OtherExpenseRecordVO; @@ -28,6 +29,6 @@ public interface IOtherExpenseRecordService extends BaseService importOtherExpenseRecord(List data); - List exportOtherExpenseRecord(Wrapper queryWrapper); + List exportOtherExpenseRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITireReplacementRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITireReplacementRecordService.java index 54b7b68..2810cd4 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITireReplacementRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITireReplacementRecordService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.TireReplacementRecordExcel; +import org.springblade.transport.excel.TireReplacementRecordExportExcel; import org.springblade.transport.pojo.entity.TireReplacementRecord; import org.springblade.transport.pojo.vo.TireReplacementRecordVO; @@ -71,6 +72,6 @@ public interface ITireReplacementRecordService extends BaseService exportTireReplacementRecord(Wrapper queryWrapper); + List exportTireReplacementRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITransportChangeRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITransportChangeRecordService.java index 8a4c8bd..fbbff07 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITransportChangeRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITransportChangeRecordService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.TransportChangeRecordExcel; +import org.springblade.transport.excel.TransportChangeRecordExportExcel; import org.springblade.transport.pojo.entity.TransportChangeRecord; import org.springblade.transport.pojo.vo.TransportChangeRecordVO; @@ -47,6 +48,6 @@ public interface ITransportChangeRecordService extends BaseService importTransportChangeRecord(List data); - List exportTransportChangeRecord(Wrapper queryWrapper); + List exportTransportChangeRecord(Wrapper queryWrapper); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITransportVehicleService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITransportVehicleService.java index 8b3a2d3..cf57bdf 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITransportVehicleService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/ITransportVehicleService.java @@ -68,6 +68,9 @@ public interface ITransportVehicleService extends BaseService */ boolean changeStatus(Long id, Integer status); + /** 审核车辆认证 */ + boolean auditCertification(Long id, Integer certificationStatus, String rejectReason); + /** * 证件有效期统计 * diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IViolationRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IViolationRecordService.java index 7a5cdff..65ae956 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IViolationRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IViolationRecordService.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.transport.excel.ViolationRecordExcel; +import org.springblade.transport.excel.ViolationRecordImportExcel; import org.springblade.transport.pojo.entity.ViolationRecord; import org.springblade.transport.pojo.vo.ViolationRecordVO; @@ -63,7 +64,7 @@ public interface IViolationRecordService extends BaseService { * * @param data 导入数据 */ - List importViolationRecord(List data); + List importViolationRecord(List data); /** * 导出违章记录 diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/AccidentRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/AccidentRecordServiceImpl.java index c9bcb0d..b56a3e2 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/AccidentRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/AccidentRecordServiceImpl.java @@ -32,6 +32,8 @@ import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.transport.excel.AccidentRecordExcel; +import org.springblade.transport.excel.AccidentRecordExportExcel; +import org.springblade.system.cache.UserCache; import org.springblade.transport.mapper.AccidentRecordMapper; import org.springblade.transport.pojo.entity.AccidentRecord; import org.springblade.transport.pojo.vo.AccidentRecordVO; @@ -63,7 +65,9 @@ public class AccidentRecordServiceImpl extends BaseServiceImpl selectAccidentRecordPage(IPage page, AccidentRecordVO accidentRecord) { - return page.setRecords(baseMapper.selectAccidentRecordPage(page, accidentRecord)); + List records = baseMapper.selectAccidentRecordPage(page, accidentRecord); + records.forEach(record -> record.setUpdateUserName(UserCache.getUserRealName(record.getUpdateUser()))); + return page.setRecords(records); } @Override @@ -96,11 +100,12 @@ public class AccidentRecordServiceImpl extends BaseServiceImpl exportAccidentRecord(Wrapper queryWrapper) { + public List exportAccidentRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(accidentRecord -> { - AccidentRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(accidentRecord, AccidentRecordExcel.class)); + AccidentRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(accidentRecord, AccidentRecordExportExcel.class)); excel.setDirectEconomicLoss(nonNegative(accidentRecord.getDirectEconomicLoss())); excel.setInsuranceClaimAmount(nonNegative(accidentRecord.getInsuranceClaimAmount())); + excel.setUpdateUserName(UserCache.getUserRealName(accidentRecord.getUpdateUser())); return excel; }).toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/AnnualInspectionRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/AnnualInspectionRecordServiceImpl.java index 443c3e3..8f63de5 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/AnnualInspectionRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/AnnualInspectionRecordServiceImpl.java @@ -31,7 +31,9 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.AnnualInspectionRecordExcel; +import org.springblade.transport.excel.AnnualInspectionRecordExportExcel; import org.springblade.transport.mapper.AnnualInspectionRecordMapper; import org.springblade.transport.pojo.entity.AnnualInspectionRecord; import org.springblade.transport.pojo.vo.AnnualInspectionRecordVO; @@ -65,7 +67,9 @@ public class AnnualInspectionRecordServiceImpl extends BaseServiceImpl selectAnnualInspectionRecordPage(IPage page, AnnualInspectionRecordVO annualInspectionRecord) { - return page.setRecords(baseMapper.selectAnnualInspectionRecordPage(page, annualInspectionRecord)); + List records = baseMapper.selectAnnualInspectionRecordPage(page, annualInspectionRecord); + records.forEach(record -> record.setUpdateUserName(UserCache.getUserRealName(record.getUpdateUser()))); + return page.setRecords(records); } @Override @@ -98,12 +102,13 @@ public class AnnualInspectionRecordServiceImpl extends BaseServiceImpl exportAnnualInspectionRecord(Wrapper queryWrapper) { + public List exportAnnualInspectionRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(annualInspectionRecord -> { - AnnualInspectionRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(annualInspectionRecord, AnnualInspectionRecordExcel.class)); + AnnualInspectionRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(annualInspectionRecord, AnnualInspectionRecordExportExcel.class)); excel.setVehicleTechnicalLevel(VEHICLE.equals(annualInspectionRecord.getVehicleType()) ? annualInspectionRecord.getVehicleTechnicalLevel() : null); excel.setShipInspectionType(SHIP.equals(annualInspectionRecord.getVehicleType()) ? annualInspectionRecord.getShipInspectionType() : null); excel.setFee(nonNegative(annualInspectionRecord.getFee())); + excel.setUpdateUserName(UserCache.getUserRealName(annualInspectionRecord.getUpdateUser())); return excel; }).toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java index f4e0097..2df82b0 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/CustomerArchiveServiceImpl.java @@ -46,6 +46,7 @@ import org.springblade.transport.mapper.CustomerCreditScoreDetailMapper; import org.springblade.transport.mapper.CustomerCreditScoreMapper; import org.springblade.transport.mapper.CustomerInvoiceInfoMapper; import org.springblade.transport.mapper.CustomerReceiptAccountMapper; +import org.springblade.transport.mapper.UserCustomerScopeMapper; import org.springblade.transport.pojo.entity.CreditRatingStandard; import org.springblade.transport.pojo.entity.CreditScoreCategory; import org.springblade.transport.pojo.entity.CreditScoreItem; @@ -67,6 +68,7 @@ import org.springblade.transport.pojo.vo.CreditRatingStandardVO; import org.springblade.transport.pojo.vo.CustomerInvoiceInfoVO; import org.springblade.transport.pojo.vo.CustomerReceiptAccountVO; import org.springblade.transport.service.ICustomerArchiveService; +import org.springblade.system.pojo.entity.UserCustomerScope; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -112,10 +114,11 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl selectCustomerArchivePage(IPage page, CustomerArchiveVO customer) { - return page.setRecords(baseMapper.selectCustomerArchivePage(page, customer)); + return page.setRecords(baseMapper.selectCustomerArchivePage(page, customer, AuthUtil.getUserId())); } @Override @@ -127,6 +130,9 @@ public class CustomerArchiveServiceImpl extends BaseServiceImpl { + UserCustomerScope scope = new UserCustomerScope(); + scope.setUserId(userId); + scope.setCustomerId(customer.getId()); + userCustomerScopeMapper.insert(scope); + }); + } + private String nextCustomerCode() { CustomerArchive latest = list(Wrappers.lambdaQuery() .likeRight(CustomerArchive::getCustomerCode, CUSTOMER_CODE_PREFIX) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/DriverServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/DriverServiceImpl.java index 332b3ea..f957678 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/DriverServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/DriverServiceImpl.java @@ -53,7 +53,7 @@ import java.util.Objects; @Service public class DriverServiceImpl extends BaseServiceImpl implements IDriverService { - private static final int NAME_MAX_LENGTH = 20; + private static final int NAME_MAX_LENGTH = 10; private static final int ID_CARD_MAX_LENGTH = 18; private static final int MOBILE_MAX_LENGTH = 20; private static final int SHORT_TEXT_MAX_LENGTH = 50; @@ -110,9 +110,8 @@ public class DriverServiceImpl extends BaseServiceImpl imp public List exportDriver(Wrapper queryWrapper) { return list(queryWrapper).stream().map(driver -> { DriverExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(driver, DriverExcel.class)); - excel.setStatusName(driver.getStatus() != null && driver.getStatus() == 2 ? "停用" : "启用"); - excel.setDrivingLicenseLongTermName(driver.getDrivingLicenseLongTerm() != null && driver.getDrivingLicenseLongTerm() == 1 ? "是" : "否"); - excel.setQualificationLongTermName(driver.getQualificationLongTerm() != null && driver.getQualificationLongTerm() == 1 ? "是" : "否"); + excel.setAddress((driver.getAddressRegion() == null ? "" : driver.getAddressRegion()) + + (driver.getAddress() == null ? "" : driver.getAddress())); return excel; }).toList(); } @@ -210,6 +209,9 @@ public class DriverServiceImpl extends BaseServiceImpl imp if (Func.isEmpty(driver.getEmergencyContactName())) { throw new ServiceException("紧急联系人姓名不能为空"); } + if (driver.getEmergencyContactName().matches(".*\\d.*")) { + throw new ServiceException("紧急联系人姓名不能包含数字"); + } if (Func.isEmpty(driver.getEmergencyContactMobile())) { throw new ServiceException("紧急联系人手机号不能为空"); } @@ -219,7 +221,7 @@ public class DriverServiceImpl extends BaseServiceImpl imp if (Func.isEmpty(driver.getDrivingLicenseFront()) || Func.isEmpty(driver.getDrivingLicenseBack())) { throw new ServiceException("驾驶证主页和副页不能为空"); } - validateLength(driver.getDriverName(), NAME_MAX_LENGTH, "司机姓名不能超过20字"); + validateLength(driver.getDriverName(), NAME_MAX_LENGTH, "司机姓名不能超过10字"); validateLength(driver.getIdCardNo(), ID_CARD_MAX_LENGTH, "身份证号不能超过18字"); validateLength(driver.getMobile(), MOBILE_MAX_LENGTH, "手机号不能超过20字"); validateLength(driver.getEmergencyContactMobile(), MOBILE_MAX_LENGTH, "紧急联系人手机号不能超过20字"); diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/EquipmentLedgerServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/EquipmentLedgerServiceImpl.java new file mode 100644 index 0000000..a657eac --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/EquipmentLedgerServiceImpl.java @@ -0,0 +1,181 @@ +package org.springblade.transport.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.UserCache; +import org.springblade.transport.excel.EquipmentLedgerExcel; +import org.springblade.transport.mapper.EquipmentLedgerMapper; +import org.springblade.transport.pojo.entity.EquipmentLedger; +import org.springblade.transport.pojo.vo.EquipmentLedgerVO; +import org.springblade.transport.service.IEquipmentLedgerService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * 设备台账服务实现 + * + * @author Chill + */ +@Service +public class EquipmentLedgerServiceImpl extends BaseServiceImpl implements IEquipmentLedgerService { + + private static final String VEHICLE = "车辆"; + private static final String SHIP = "船舶"; + private static final int VEHICLE_NO_MAX_LENGTH = 30; + private static final int EQUIPMENT_CODE_MAX_LENGTH = 12; + private static final int EQUIPMENT_NAME_MAX_LENGTH = 100; + private static final int EQUIPMENT_BRAND_MAX_LENGTH = 50; + private static final int EQUIPMENT_TYPE_MAX_LENGTH = 50; + private static final int SPECIFICATION_MODEL_MAX_LENGTH = 100; + private static final int ORIGINAL_EQUIPMENT_NO_MAX_LENGTH = 100; + private static final int REMARK_MAX_LENGTH = 200; + private static final int ATTACHMENTS_MAX_LENGTH = 1000; + + @Override + public IPage selectEquipmentLedgerPage(IPage page, EquipmentLedgerVO equipmentLedger) { + List records = baseMapper.selectEquipmentLedgerPage(page, equipmentLedger); + records.forEach(record -> record.setUpdateUserName(UserCache.getUserRealName(record.getUpdateUser()))); + return page.setRecords(records); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submit(EquipmentLedger equipmentLedger) { + prepare(equipmentLedger); + if (equipmentLedger.getId() == null && Func.isEmpty(equipmentLedger.getEquipmentCode())) { + equipmentLedger.setEquipmentCode(nextEquipmentCode()); + } + validate(equipmentLedger); + validateEquipmentCodeImmutable(equipmentLedger); + return saveOrUpdate(equipmentLedger); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public List importEquipmentLedger(List data) { + if (Func.isEmpty(data)) { + throw new ServiceException("导入数据不能为空"); + } + List errorList = new ArrayList<>(); + for (int index = 0; index < data.size(); index++) { + EquipmentLedgerExcel excel = data.get(index); + try { + EquipmentLedger equipmentLedger = Objects.requireNonNull(BeanUtil.copyProperties(excel, EquipmentLedger.class)); + submit(equipmentLedger); + } catch (Exception exception) { + excel.setErrorMessage("第" + (index + 2) + "行:" + exception.getMessage()); + errorList.add(excel); + } + } + return errorList; + } + + @Override + public List exportEquipmentLedger(Wrapper queryWrapper) { + return list(queryWrapper).stream() + .map(item -> Objects.requireNonNull(BeanUtil.copyProperties(item, EquipmentLedgerExcel.class))) + .toList(); + } + + @Override + public String nextEquipmentCode() { + String prefix = "EQ" + LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE); + for (int sequence = 1; sequence <= 99; sequence++) { + String code = prefix + String.format("%02d", sequence); + if (!exists(new LambdaQueryWrapper().eq(EquipmentLedger::getEquipmentCode, code))) { + return code; + } + } + throw new ServiceException("当天设备编号已达到上限"); + } + + private void prepare(EquipmentLedger equipmentLedger) { + equipmentLedger.setVehicleType(trimToEmpty(equipmentLedger.getVehicleType())); + equipmentLedger.setVehicleNo(trimToEmpty(equipmentLedger.getVehicleNo())); + if (VEHICLE.equals(equipmentLedger.getVehicleType())) { + equipmentLedger.setVehicleNo(equipmentLedger.getVehicleNo().toUpperCase()); + } + equipmentLedger.setEquipmentCode(trimToNull(equipmentLedger.getEquipmentCode())); + equipmentLedger.setEquipmentName(trimToNull(equipmentLedger.getEquipmentName())); + equipmentLedger.setEquipmentBrand(trimToNull(equipmentLedger.getEquipmentBrand())); + equipmentLedger.setEquipmentType(trimToNull(equipmentLedger.getEquipmentType())); + equipmentLedger.setSpecificationModel(trimToNull(equipmentLedger.getSpecificationModel())); + equipmentLedger.setOriginalEquipmentNo(trimToNull(equipmentLedger.getOriginalEquipmentNo())); + equipmentLedger.setAttachments(trimToNull(equipmentLedger.getAttachments())); + equipmentLedger.setRemark(trimToNull(equipmentLedger.getRemark())); + if (equipmentLedger.getOnlineStatus() == null) { + equipmentLedger.setOnlineStatus(0); + } + } + + private void validate(EquipmentLedger equipmentLedger) { + if (!VEHICLE.equals(equipmentLedger.getVehicleType()) && !SHIP.equals(equipmentLedger.getVehicleType())) { + throw new ServiceException("车船类型不正确"); + } + if (Func.isEmpty(equipmentLedger.getVehicleNo())) { + throw new ServiceException("车牌号/船号不能为空"); + } + if (Func.isEmpty(equipmentLedger.getEquipmentCode())) { + throw new ServiceException("设备编号不能为空"); + } + if (Func.isEmpty(equipmentLedger.getEquipmentName())) { + throw new ServiceException("设备名称不能为空"); + } + if (equipmentLedger.getOnlineStatus() != 0 && equipmentLedger.getOnlineStatus() != 1) { + throw new ServiceException("是否在线不正确"); + } + validateLength(equipmentLedger.getVehicleNo(), VEHICLE_NO_MAX_LENGTH, "车牌号/船号不能超过30字"); + validateLength(equipmentLedger.getEquipmentCode(), EQUIPMENT_CODE_MAX_LENGTH, "设备编号格式不正确"); + validateLength(equipmentLedger.getEquipmentName(), EQUIPMENT_NAME_MAX_LENGTH, "设备名称不能超过100字"); + validateLength(equipmentLedger.getEquipmentBrand(), EQUIPMENT_BRAND_MAX_LENGTH, "设备品牌不能超过50字"); + validateLength(equipmentLedger.getEquipmentType(), EQUIPMENT_TYPE_MAX_LENGTH, "设备类型不能超过50字"); + validateLength(equipmentLedger.getSpecificationModel(), SPECIFICATION_MODEL_MAX_LENGTH, "规格型号不能超过100字"); + validateLength(equipmentLedger.getOriginalEquipmentNo(), ORIGINAL_EQUIPMENT_NO_MAX_LENGTH, "原厂设备号不能超过100字"); + validateLength(equipmentLedger.getRemark(), REMARK_MAX_LENGTH, "备注不能超过200字"); + validateLength(equipmentLedger.getAttachments(), ATTACHMENTS_MAX_LENGTH, "附件不能超过1000字"); + } + + private void validateEquipmentCodeImmutable(EquipmentLedger equipmentLedger) { + EquipmentLedger existing = getOne(new LambdaQueryWrapper() + .eq(EquipmentLedger::getEquipmentCode, equipmentLedger.getEquipmentCode()) + .ne(equipmentLedger.getId() != null, EquipmentLedger::getId, equipmentLedger.getId())); + if (existing != null) { + throw new ServiceException("设备编号已存在"); + } + if (equipmentLedger.getId() != null) { + EquipmentLedger current = getById(equipmentLedger.getId()); + if (current == null) { + throw new ServiceException("设备台账不存在"); + } + if (!Objects.equals(current.getEquipmentCode(), equipmentLedger.getEquipmentCode())) { + throw new ServiceException("设备编号不允许修改"); + } + } + } + + private void validateLength(String value, int maxLength, String message) { + if (Func.isNotEmpty(value) && value.length() > maxLength) { + throw new ServiceException(message); + } + } + + private String trimToEmpty(String value) { + return value == null ? "" : value.trim(); + } + + private String trimToNull(String value) { + String trimValue = trimToEmpty(value); + return trimValue.isEmpty() ? null : trimValue; + } +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/EtcRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/EtcRecordServiceImpl.java index 4b6fca2..8dbf6a3 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/EtcRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/EtcRecordServiceImpl.java @@ -14,6 +14,7 @@ import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.EtcRecordExcel; +import org.springblade.transport.excel.EtcRecordExportExcel; import org.springblade.transport.mapper.EtcRecordMapper; import org.springblade.transport.pojo.entity.EtcRecord; import org.springblade.transport.pojo.vo.EtcRecordVO; @@ -78,10 +79,11 @@ public class EtcRecordServiceImpl extends BaseServiceImpl exportEtcRecord(Wrapper queryWrapper) { + public List exportEtcRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(etcRecord -> { - EtcRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(etcRecord, EtcRecordExcel.class)); + EtcRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(etcRecord, EtcRecordExportExcel.class)); excel.setTransactionAmount(nonNegative(etcRecord.getTransactionAmount())); + excel.setUpdateUserName(UserCache.getUserRealName(etcRecord.getUpdateUser())); return excel; }).toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InsuranceRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InsuranceRecordServiceImpl.java index 6e384b8..b262ddc 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InsuranceRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InsuranceRecordServiceImpl.java @@ -32,7 +32,9 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.InsuranceRecordExcel; +import org.springblade.transport.excel.InsuranceRecordExportExcel; import org.springblade.transport.mapper.InsuranceRecordMapper; import org.springblade.transport.pojo.entity.InsuranceRecord; import org.springblade.transport.pojo.vo.InsuranceRecordVO; @@ -66,7 +68,9 @@ public class InsuranceRecordServiceImpl extends BaseServiceImpl selectInsuranceRecordPage(IPage page, InsuranceRecordVO insuranceRecord) { - return page.setRecords(baseMapper.selectInsuranceRecordPage(page, insuranceRecord)); + List records = baseMapper.selectInsuranceRecordPage(page, insuranceRecord); + records.forEach(record -> record.setUpdateUserName(UserCache.getUserRealName(record.getUpdateUser()))); + return page.setRecords(records); } @Override @@ -99,11 +103,12 @@ public class InsuranceRecordServiceImpl extends BaseServiceImpl exportInsuranceRecord(Wrapper queryWrapper) { + public List exportInsuranceRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(insuranceRecord -> { - InsuranceRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(insuranceRecord, InsuranceRecordExcel.class)); + InsuranceRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(insuranceRecord, InsuranceRecordExportExcel.class)); excel.setInsuredAmount(nonNegative(insuranceRecord.getInsuredAmount())); excel.setPremium(nonNegative(insuranceRecord.getPremium())); + excel.setUpdateUserName(UserCache.getUserRealName(insuranceRecord.getUpdateUser())); return excel; }).toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MaintenancePlanServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MaintenancePlanServiceImpl.java index bc5b0f1..1e057bd 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MaintenancePlanServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MaintenancePlanServiceImpl.java @@ -31,7 +31,9 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.MaintenancePlanExcel; +import org.springblade.transport.excel.MaintenancePlanExportExcel; import org.springblade.transport.mapper.MaintenancePlanMapper; import org.springblade.transport.pojo.entity.MaintenancePlan; import org.springblade.transport.pojo.vo.MaintenancePlanVO; @@ -60,7 +62,9 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl selectMaintenancePlanPage(IPage page, MaintenancePlanVO maintenancePlan) { - return page.setRecords(baseMapper.selectMaintenancePlanPage(page, maintenancePlan)); + List records = baseMapper.selectMaintenancePlanPage(page, maintenancePlan); + records.forEach(record -> record.setUpdateUserName(UserCache.getUserRealName(record.getUpdateUser()))); + return page.setRecords(records); } @Override @@ -92,9 +96,10 @@ public class MaintenancePlanServiceImpl extends BaseServiceImpl exportMaintenancePlan(Wrapper queryWrapper) { + public List exportMaintenancePlan(Wrapper queryWrapper) { return list(queryWrapper).stream().map(maintenancePlan -> { - MaintenancePlanExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(maintenancePlan, MaintenancePlanExcel.class)); + MaintenancePlanExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(maintenancePlan, MaintenancePlanExportExcel.class)); + excel.setUpdateUserName(UserCache.getUserRealName(maintenancePlan.getUpdateUser())); excel.setMileage(nonNegative(maintenancePlan.getMileage())); excel.setNextMaintenanceMileage(nonNegative(maintenancePlan.getNextMaintenanceMileage())); if (Func.isEmpty(excel.getMileageUnit())) { diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MaintenanceRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MaintenanceRecordServiceImpl.java index 2a4d1ed..fef55c3 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MaintenanceRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MaintenanceRecordServiceImpl.java @@ -31,7 +31,9 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.MaintenanceRecordExcel; +import org.springblade.transport.excel.MaintenanceRecordExportExcel; import org.springblade.transport.mapper.MaintenanceRecordMapper; import org.springblade.transport.pojo.entity.MaintenanceRecord; import org.springblade.transport.pojo.vo.MaintenanceRecordVO; @@ -62,7 +64,9 @@ public class MaintenanceRecordServiceImpl extends BaseServiceImpl selectMaintenanceRecordPage(IPage page, MaintenanceRecordVO maintenanceRecord) { - return page.setRecords(baseMapper.selectMaintenanceRecordPage(page, maintenanceRecord)); + List records = baseMapper.selectMaintenanceRecordPage(page, maintenanceRecord); + records.forEach(record -> record.setUpdateUserName(UserCache.getUserRealName(record.getUpdateUser()))); + return page.setRecords(records); } @Override @@ -84,6 +88,8 @@ public class MaintenanceRecordServiceImpl extends BaseServiceImpl exportMaintenanceRecord(Wrapper queryWrapper) { + public List exportMaintenanceRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(maintenanceRecord -> { - MaintenanceRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(maintenanceRecord, MaintenanceRecordExcel.class)); + MaintenanceRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(maintenanceRecord, MaintenanceRecordExportExcel.class)); excel.setCost(scaleAmount(maintenanceRecord.getCost())); excel.setMileage(scaleAmount(nonNegative(maintenanceRecord.getMileage()))); + excel.setUpdateUserName(UserCache.getUserRealName(maintenanceRecord.getUpdateUser())); if (Func.isEmpty(excel.getMileageUnit())) { excel.setMileageUnit(defaultMileageUnit(maintenanceRecord.getVehicleType())); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MileageRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MileageRecordServiceImpl.java index b144077..6aa427b 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MileageRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/MileageRecordServiceImpl.java @@ -33,6 +33,7 @@ import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.MileageRecordExcel; +import org.springblade.transport.excel.MileageRecordExportExcel; import org.springblade.transport.mapper.MileageRecordMapper; import org.springblade.transport.pojo.entity.MileageRecord; import org.springblade.transport.pojo.vo.MileageRecordVO; @@ -97,18 +98,16 @@ public class MileageRecordServiceImpl extends BaseServiceImpl exportMileageRecord(Wrapper queryWrapper) { + public List exportMileageRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(mileageRecord -> { - MileageRecordExcel excel = Objects.requireNonNull( - BeanUtil.copyProperties(mileageRecord, MileageRecordExcel.class) + MileageRecordExportExcel excel = Objects.requireNonNull( + BeanUtil.copyProperties(mileageRecord, MileageRecordExportExcel.class) ); excel.setPreviousMonthMileage(nonNegative(mileageRecord.getPreviousMonthMileage())); excel.setCurrentMonthMileage(nonNegative(mileageRecord.getCurrentMonthMileage())); excel.setMonthlyMileage(nonNegative(mileageRecord.getMonthlyMileage())); excel.setTotalMileage(nonNegative(mileageRecord.getTotalMileage())); - if (Func.isEmpty(excel.getMileageUnit())) { - excel.setMileageUnit(defaultMileageUnit(mileageRecord.getVehicleType())); - } + excel.setUpdateUserName(UserCache.getUserRealName(mileageRecord.getUpdateUser())); return excel; }).toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/OilElectricRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/OilElectricRecordServiceImpl.java index ad7a6dd..eab4a7e 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/OilElectricRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/OilElectricRecordServiceImpl.java @@ -14,6 +14,7 @@ import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.OilElectricRecordExcel; +import org.springblade.transport.excel.OilElectricRecordExportExcel; import org.springblade.transport.mapper.OilElectricRecordMapper; import org.springblade.transport.pojo.entity.OilElectricRecord; import org.springblade.transport.pojo.vo.OilElectricRecordVO; @@ -87,13 +88,14 @@ public class OilElectricRecordServiceImpl extends BaseServiceImpl exportOilElectricRecord(Wrapper queryWrapper) { + public List exportOilElectricRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(oilElectricRecord -> { - OilElectricRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(oilElectricRecord, OilElectricRecordExcel.class)); + OilElectricRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(oilElectricRecord, OilElectricRecordExportExcel.class)); excel.setQuantity(nonNegative(oilElectricRecord.getQuantity())); excel.setUnitPrice(nonNegative(oilElectricRecord.getUnitPrice())); excel.setTransactionAmount(nonNegative(oilElectricRecord.getTransactionAmount())); excel.setBalance(nonNegative(oilElectricRecord.getBalance())); + excel.setUpdateUserName(UserCache.getUserRealName(oilElectricRecord.getUpdateUser())); return excel; }).toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/OtherExpenseRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/OtherExpenseRecordServiceImpl.java index 23f9df8..dd803fc 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/OtherExpenseRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/OtherExpenseRecordServiceImpl.java @@ -14,6 +14,7 @@ import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.OtherExpenseRecordExcel; +import org.springblade.transport.excel.OtherExpenseRecordExportExcel; import org.springblade.transport.mapper.OtherExpenseRecordMapper; import org.springblade.transport.pojo.entity.OtherExpenseRecord; import org.springblade.transport.pojo.vo.OtherExpenseRecordVO; @@ -81,10 +82,11 @@ public class OtherExpenseRecordServiceImpl extends BaseServiceImpl exportOtherExpenseRecord(Wrapper queryWrapper) { + public List exportOtherExpenseRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(otherExpenseRecord -> { - OtherExpenseRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(otherExpenseRecord, OtherExpenseRecordExcel.class)); + OtherExpenseRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(otherExpenseRecord, OtherExpenseRecordExportExcel.class)); excel.setAmount(nonNegative(otherExpenseRecord.getAmount())); + excel.setUpdateUserName(UserCache.getUserRealName(otherExpenseRecord.getUpdateUser())); return excel; }).toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TireReplacementRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TireReplacementRecordServiceImpl.java index 18bc39f..2f73ef1 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TireReplacementRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TireReplacementRecordServiceImpl.java @@ -31,7 +31,9 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.TireReplacementRecordExcel; +import org.springblade.transport.excel.TireReplacementRecordExportExcel; import org.springblade.transport.mapper.TireReplacementRecordMapper; import org.springblade.transport.pojo.entity.TireReplacementRecord; import org.springblade.transport.pojo.vo.TireReplacementRecordVO; @@ -62,7 +64,9 @@ public class TireReplacementRecordServiceImpl extends BaseServiceImpl selectTireReplacementRecordPage(IPage page, TireReplacementRecordVO tireReplacementRecord) { - return page.setRecords(baseMapper.selectTireReplacementRecordPage(page, tireReplacementRecord)); + List records = baseMapper.selectTireReplacementRecordPage(page, tireReplacementRecord); + records.forEach(record -> record.setUpdateUserName(UserCache.getUserRealName(record.getUpdateUser()))); + return page.setRecords(records); } @Override @@ -94,11 +98,12 @@ public class TireReplacementRecordServiceImpl extends BaseServiceImpl exportTireReplacementRecord(Wrapper queryWrapper) { + public List exportTireReplacementRecord(Wrapper queryWrapper) { return list(queryWrapper).stream().map(tireReplacementRecord -> { - TireReplacementRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(tireReplacementRecord, TireReplacementRecordExcel.class)); + TireReplacementRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(tireReplacementRecord, TireReplacementRecordExportExcel.class)); excel.setTireQuantity(validQuantity(tireReplacementRecord.getTireQuantity())); excel.setReplacementCost(nonNegative(tireReplacementRecord.getReplacementCost())); + excel.setUpdateUserName(UserCache.getUserRealName(tireReplacementRecord.getUpdateUser())); return excel; }).toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportChangeRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportChangeRecordServiceImpl.java index d5d23db..184fb6b 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportChangeRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportChangeRecordServiceImpl.java @@ -33,6 +33,7 @@ import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.UserCache; import org.springblade.transport.excel.TransportChangeRecordExcel; +import org.springblade.transport.excel.TransportChangeRecordExportExcel; import org.springblade.transport.mapper.TransportChangeRecordMapper; import org.springblade.transport.pojo.entity.TransportChangeRecord; import org.springblade.transport.pojo.vo.TransportChangeRecordVO; @@ -97,9 +98,13 @@ public class TransportChangeRecordServiceImpl extends BaseServiceImpl exportTransportChangeRecord(Wrapper queryWrapper) { + public List exportTransportChangeRecord(Wrapper queryWrapper) { return list(queryWrapper).stream() - .map(transportChangeRecord -> Objects.requireNonNull(BeanUtil.copyProperties(transportChangeRecord, TransportChangeRecordExcel.class))) + .map(transportChangeRecord -> { + TransportChangeRecordExportExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(transportChangeRecord, TransportChangeRecordExportExcel.class)); + excel.setUpdateUserName(UserCache.getUserRealName(transportChangeRecord.getUpdateUser())); + return excel; + }) .toList(); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportShipServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportShipServiceImpl.java index 3028d8f..06d4f09 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportShipServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportShipServiceImpl.java @@ -55,11 +55,13 @@ import java.util.Objects; public class TransportShipServiceImpl extends BaseServiceImpl implements ITransportShipService { private static final int NAME_MAX_LENGTH = 50; + private static final int SHIP_NAME_MAX_LENGTH = 20; private static final int SHORT_TEXT_MAX_LENGTH = 50; private static final int REMARK_MAX_LENGTH = 200; private static final int DEFAULT_ENABLED_STATUS = 1; private static final int DEFAULT_FALSE = 0; private static final BigDecimal ZERO = BigDecimal.ZERO; + private static final List SHIP_TYPES = List.of("散货船", "集装箱船", "杂货船", "油船"); @Override public IPage selectTransportShipPage(IPage page, TransportShipVO ship) { @@ -109,11 +111,9 @@ public class TransportShipServiceImpl extends BaseServiceImpl exportTransportShip(Wrapper queryWrapper) { return list(queryWrapper).stream().map(ship -> { TransportShipExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(ship, TransportShipExcel.class)); - excel.setStatusName(ship.getStatus() != null && ship.getStatus() == 2 ? "停用" : "启用"); - excel.setNationalityCertLongTermName(yesNo(ship.getNationalityCertLongTerm())); - excel.setSafeManningCertLongTermName(yesNo(ship.getSafeManningCertLongTerm())); - excel.setBusinessTransportCertLongTermName(yesNo(ship.getBusinessTransportCertLongTerm())); - excel.setLeaseLongTermName(yesNo(ship.getLeaseLongTerm())); + excel.setConstructionDateRange(formatDateRange( + ship.getKeelLayingDate(), ship.getBuildCompletionDate() + )); return excel; }).toList(); } @@ -198,6 +198,9 @@ public class TransportShipServiceImpl extends BaseServiceImpl selectTransportVehiclePage(IPage page, TransportVehicleVO vehicle) { @@ -73,9 +76,29 @@ public class TransportVehicleServiceImpl extends BaseServiceImpl { TransportVehicleExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(vehicle, TransportVehicleExcel.class)); excel.setStatusName(vehicle.getStatus() != null && vehicle.getStatus() == 2 ? "停用" : "启用"); - excel.setCompulsoryScrapLongTermName(yesNo(vehicle.getCompulsoryScrapLongTerm())); - excel.setDrivingLicenseLongTermName(yesNo(vehicle.getDrivingLicenseLongTerm())); - excel.setRoadTransportCertLongTermName(yesNo(vehicle.getRoadTransportCertLongTerm())); - excel.setAnnualReviewLongTermName(yesNo(vehicle.getAnnualReviewLongTerm())); return excel; }).toList(); } @@ -256,10 +275,6 @@ public class TransportVehicleServiceImpl extends BaseServiceImpl selectViolationRecordPage(IPage page, ViolationRecordVO violationRecord) { - return page.setRecords(baseMapper.selectViolationRecordPage(page, violationRecord)); + List records = baseMapper.selectViolationRecordPage(page, violationRecord); + records.forEach(record -> record.setUpdateUserName(UserCache.getUserRealName(record.getUpdateUser()))); + return page.setRecords(records); } @Override @@ -82,15 +86,20 @@ public class ViolationRecordServiceImpl extends BaseServiceImpl importViolationRecord(List data) { + public List importViolationRecord(List data) { if (Func.isEmpty(data)) { throw new ServiceException("导入数据不能为空"); } - List errorList = new ArrayList<>(); + List errorList = new ArrayList<>(); for (int index = 0; index < data.size(); index++) { - ViolationRecordExcel excel = data.get(index); + ViolationRecordImportExcel excel = data.get(index); try { ViolationRecord violationRecord = Objects.requireNonNull(BeanUtil.copyProperties(excel, ViolationRecord.class)); + if ("船舶".equals(trimToEmpty(excel.getVehicleType()))) { + violationRecord.setViolationItem(excel.getViolationTypeOrItem()); + } else { + violationRecord.setViolationType(excel.getViolationTypeOrItem()); + } submit(violationRecord); } catch (Exception exception) { excel.setErrorMessage("第" + (index + 2) + "行:" + exception.getMessage()); @@ -106,6 +115,7 @@ public class ViolationRecordServiceImpl extends BaseServiceImpl