From 1e6d1a68c276e59f3ad93211f91ca7a5eee50e63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=85=81=E6=9E=9E?= <3422692813@qq.com> Date: Fri, 24 Jan 2025 16:29:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=B5=8B=E5=91=98=E5=B7=A5=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=99=84=E4=BB=B6=E4=B8=8Einspection=5Ffile=E8=A1=A8?= =?UTF-8?q?=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/constant/InspectionConstants.java | 20 ++++ .../controller/InspectionFileController.java | 2 +- .../controller/InspectionStaffController.java | 10 -- .../inspection/entity/InspectionFile.java | 6 + .../inspection/entity/InspectionStaff.java | 6 + .../service/IInspectionFileService.java | 9 +- .../impl/InspectionFileServiceImpl.java | 108 +++++++++++------- .../impl/InspectionStaffServiceImpl.java | 103 +++++++++++++++-- .../inspection/vo/InspectionStaffSaveVo.java | 6 + .../inspection/InspectionStaffMapper.xml | 3 +- 10 files changed, 213 insertions(+), 60 deletions(-) diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java index 395bc1d1..68df1fd9 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/constant/InspectionConstants.java @@ -12,4 +12,24 @@ public class InspectionConstants { * 检测基础员工角色 Code */ public static final String INSPECTION_BASE_STAFF_ROLE = "jcworker"; + + /** + * 文件类型:文件加 + */ + public static final String INSPECTION_FOLDER = "1"; + + /** + * 文件夹后缀 (新增检测员工时,上传附件新建文件夹) + */ + public static final String INSPECTION_FOLDER_SUFFIX = "的文件夹"; + + /** + * 文件类型:文件 + */ + public static final String INSPECTION_FILE = "2"; + + /** + * 是员工附件 + */ + public static final Integer INSPECTION_IS_STAFF_FILE = 0; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionFileController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionFileController.java index b80e5bf8..a7e908f2 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionFileController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionFileController.java @@ -80,7 +80,7 @@ public class InspectionFileController extends BaseController public CommonResult add(@RequestBody InspectionFile inspectionFile) throws Exception { ShopMallPartners partners = partnerService.shopInfo(); inspectionFile.setPartnerId(partners.getPartnerId()); - return toAjax(inspectionFileService.insertInspectionFile(inspectionFile)); + return success(inspectionFileService.insertInspectionFile(inspectionFile)); } /** diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionStaffController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionStaffController.java index 307bccee..e601d4b9 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionStaffController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionStaffController.java @@ -9,7 +9,6 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.PhoneUtil; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.core.controller.BaseController; import cn.iocoder.yudao.module.inspection.enums.DriverLicenseType; @@ -17,17 +16,9 @@ import cn.iocoder.yudao.module.inspection.query.InspectionStaffQuery; import cn.iocoder.yudao.module.inspection.service.InspectionStaffService; import cn.iocoder.yudao.module.inspection.vo.InspectionStaffExportVo; import cn.iocoder.yudao.module.inspection.vo.InspectionStaffSaveVo; -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserRespVO; -import cn.iocoder.yudao.module.system.convert.user.UserConvert; -import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; -import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import io.swagger.v3.oas.annotations.Operation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -37,7 +28,6 @@ import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.framework.excel.core.util.ExcelUtils.exportBlankTemplate; /** diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionFile.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionFile.java index c52c020c..bbdcb1b8 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionFile.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionFile.java @@ -50,6 +50,12 @@ public class InspectionFile extends TenantBaseDO @Excel(name = "提醒时间", width = 30, dateFormat = "yyyy-MM-dd") private Date warnTime; + /** + * 是否为员工附 0-是 1-否 + */ + @TableField("is_staff_file") + private Integer isStaffFile; + @TableField(exist = false) private Map params; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStaff.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStaff.java index adac1956..8dcbd552 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStaff.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStaff.java @@ -93,4 +93,10 @@ public class InspectionStaff extends TenantBaseDO { */ @TableField("driver_license_type") private String driverLicenseType; + + /** + * 文件夹id + */ + @TableField("folder_id") + private Long folderId; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java index f242a637..150a0647 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java @@ -31,7 +31,14 @@ public interface IInspectionFileService extends IService * @param inspectionFile inspectionFile * @return 结果 */ - public int insertInspectionFile(InspectionFile inspectionFile); + public InspectionFile insertInspectionFile(InspectionFile inspectionFile); + /** + * 新增inspectionFile + * + * @param inspectionFiles inspectionFile + * @return 结果 + */ + public boolean insertBatchInspectionFile(List inspectionFiles); /** * 修改inspectionFile diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileServiceImpl.java index 7ea922ad..a0fcb0d0 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionFileServiceImpl.java @@ -7,7 +7,6 @@ import cn.iocoder.yudao.module.inspection.mapper.InspectionFileMapper; import cn.iocoder.yudao.module.inspection.service.IInspectionFileService; import cn.iocoder.yudao.module.inspection.service.IWarnMessageService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -26,8 +25,7 @@ import java.util.stream.Collectors; * @date 2023-10-13 */ @Service -public class InspectionFileServiceImpl extends ServiceImpl implements IInspectionFileService -{ +public class InspectionFileServiceImpl extends ServiceImpl implements IInspectionFileService { @Autowired private IWarnMessageService messageService; @@ -38,8 +36,7 @@ public class InspectionFileServiceImpl extends ServiceImpl inspectionFiles) { + for (InspectionFile inspectionFile : inspectionFiles) { + int insert = baseMapper.insert(inspectionFile); + if (ObjectUtil.isEmpty(inspectionFile.getFatherId())) { + inspectionFile.setFileCode(inspectionFile.getId() + ","); + } else { + InspectionFile faFile = this.getById(inspectionFile.getFatherId()); + + inspectionFile.setFileCode(faFile.getFileCode() + inspectionFile.getId() + ","); + } + baseMapper.updateById(inspectionFile); + if (ObjectUtil.isNotEmpty(inspectionFile.getWarnTime())) { + //同时处理提醒信息 + WarnMessage warnMessage = new WarnMessage(); + warnMessage.setTitle("文件到期提醒"); + warnMessage.setContent("文件名为:" + inspectionFile.getFileName() + "即将过期,请及时处理相关事项!"); + warnMessage.setIsRead("0"); + warnMessage.setPartnerId(inspectionFile.getPartnerId()); + warnMessage.setType("file"); + warnMessage.setObjectId(inspectionFile.getId()); + warnMessage.setWarnTime(inspectionFile.getWarnTime()); + messageService.save(warnMessage); + } + } +// return this.saveBatch(inspectionFiles); + return true; } /** @@ -85,20 +116,19 @@ public class InspectionFileServiceImpl extends ServiceImpl queryWrapper =new LambdaQueryWrapper<>(); - queryWrapper.eq(WarnMessage::getType,"file").eq(WarnMessage::getObjectId,inspectionFile.getId()); + public int updateInspectionFile(InspectionFile inspectionFile) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WarnMessage::getType, "file").eq(WarnMessage::getObjectId, inspectionFile.getId()); WarnMessage one = messageService.getOne(queryWrapper); - if (ObjectUtil.isNotEmpty(one)){ + if (ObjectUtil.isNotEmpty(one)) { //更新处理 messageService.removeById(one.getId()); } - if (ObjectUtil.isNotEmpty(inspectionFile.getWarnTime())){ + if (ObjectUtil.isNotEmpty(inspectionFile.getWarnTime())) { //同时处理提醒信息 - WarnMessage warnMessage =new WarnMessage(); + WarnMessage warnMessage = new WarnMessage(); warnMessage.setTitle("文件到期提醒"); - warnMessage.setContent("文件名为:"+inspectionFile.getFileName()+"即将过期,请及时处理相关事项!"); + warnMessage.setContent("文件名为:" + inspectionFile.getFileName() + "即将过期,请及时处理相关事项!"); warnMessage.setIsRead("0"); warnMessage.setPartnerId(inspectionFile.getPartnerId()); warnMessage.setType("file"); @@ -116,8 +146,7 @@ public class InspectionFileServiceImpl extends ServiceImpl queryWrapper =new LambdaQueryWrapper<>(); - queryWrapper.eq(WarnMessage::getType,"file").eq(WarnMessage::getObjectId,id); + if (file.getType().equals("2")) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WarnMessage::getType, "file").eq(WarnMessage::getObjectId, id); WarnMessage one = messageService.getOne(queryWrapper); - if (ObjectUtil.isNotEmpty(one)){ + if (ObjectUtil.isNotEmpty(one)) { //更新处理 messageService.removeById(one.getId()); } baseMapper.deleteById(id); - }else if (file.getType().equals("1")){ - LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper<>(); - queryWrapper.likeLeft(InspectionFile::getFileCode,file.getFileCode()); + } else if (file.getType().equals("1")) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.likeLeft(InspectionFile::getFileCode, file.getFileCode()); List list = this.list(queryWrapper); for (InspectionFile inspectionFile : list) { - LambdaQueryWrapper queryWrapper1 =new LambdaQueryWrapper<>(); - queryWrapper1.eq(WarnMessage::getType,"file").eq(WarnMessage::getObjectId,inspectionFile.getId()); + LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>(); + queryWrapper1.eq(WarnMessage::getType, "file").eq(WarnMessage::getObjectId, inspectionFile.getId()); WarnMessage one = messageService.getOne(queryWrapper1); - if (ObjectUtil.isNotEmpty(one)){ + if (ObjectUtil.isNotEmpty(one)) { //更新处理 messageService.removeById(one.getId()); } @@ -168,7 +196,7 @@ public class InspectionFileServiceImpl extends ServiceImpl getCountByIds(List ids){ + public Map getCountByIds(List ids) { List inspectionFiles = baseMapper.selectList(new LambdaQueryWrapper().in(InspectionFile::getFatherId, ids)); return inspectionFiles.stream().collect(Collectors.groupingBy( InspectionFile::getFatherId, diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java index 2de069e6..86b9125a 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionStaffServiceImpl.java @@ -1,12 +1,16 @@ package cn.iocoder.yudao.module.inspection.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.module.constant.InspectionConstants; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; +import cn.iocoder.yudao.module.inspection.entity.InspectionFile; import cn.iocoder.yudao.module.inspection.entity.InspectionPickCar; import cn.iocoder.yudao.module.inspection.entity.InspectionStaff; import cn.iocoder.yudao.module.inspection.mapper.InspectionStaffMapper; import cn.iocoder.yudao.module.inspection.query.InspectionStaffQuery; +import cn.iocoder.yudao.module.inspection.service.IInspectionFileService; import cn.iocoder.yudao.module.inspection.service.InspectionStaffService; import cn.iocoder.yudao.module.inspection.vo.InspectionStaffExportVo; import cn.iocoder.yudao.module.inspection.vo.InspectionStaffSaveVo; @@ -26,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @@ -51,6 +52,9 @@ public class InspectionStaffServiceImpl extends ServiceImpllambdaQuery().eq(InspectionStaff::getUserId, inspectionStaffVo.getUserId())); if (ObjectUtil.isNull(staff)) { - InspectionStaff inspectionStaff = BeanUtil.copyProperties(inspectionStaffVo, InspectionStaff.class); + staff = new InspectionStaff(); + BeanUtil.copyProperties(inspectionStaffVo, staff); //新增 - return this.save(inspectionStaff); + this.save(staff); } else { //更新检测员工子表 BeanUtil.copyProperties(inspectionStaffVo, staff); - return this.updateById(staff); + this.updateById(staff); } + + //查询文件夹 + InspectionStaff staff1 = this.getOne(Wrappers.lambdaQuery().eq(InspectionStaff::getUserId, inspectionStaffVo.getUserId())); + addFile(inspectionStaffVo.getFileList(), inspectionStaffVo.getNickname(), staff1.getFolderId(), staff1.getUserId()); + + return true; } /** @@ -113,6 +126,22 @@ public class InspectionStaffServiceImpl extends ServiceImpl fileList = inspectionFileService.list(Wrappers.lambdaQuery() + .eq(InspectionFile::getFatherId, inspectionStaffSaveVo.getFolderId()) + .eq(InspectionFile::getIsStaffFile, InspectionConstants.INSPECTION_IS_STAFF_FILE)); + + List copyFileList = new ArrayList<>(); + for (InspectionFile inspectionFile : fileList) { + FileDO fileDO = new FileDO(); + //把文件名后缀截取掉 + fileDO.setUrl(inspectionFile.getFilePath()); + fileDO.setName(inspectionFile.getFileName()); + copyFileList.add(fileDO); + } + inspectionStaffSaveVo.setFileList(copyFileList); + } return inspectionStaffSaveVo; } @@ -146,5 +175,65 @@ public class InspectionStaffServiceImpl extends ServiceImpl fileList, String nickname, Long fatherId, Long userId) { + if (ObjectUtil.isEmpty(fatherId)) { + //添加文件夹 + InspectionFile inspectionFile = new InspectionFile(); + inspectionFile.setFileName(nickname + InspectionConstants.INSPECTION_FOLDER_SUFFIX); + inspectionFile.setType(InspectionConstants.INSPECTION_FOLDER); + + fatherId = inspectionFileService.insertInspectionFile(inspectionFile).getId(); + + //更新员工子表中的文件夹id + this.update(Wrappers.lambdaUpdate() + .eq(InspectionStaff::getUserId, userId) + .set(InspectionStaff::getFolderId, fatherId)); + } else { + + //删除文件下的所有文件 + inspectionFileService.remove(Wrappers.lambdaQuery() + .eq(InspectionFile::getFatherId, fatherId) + .eq(InspectionFile::getType, InspectionConstants.INSPECTION_FILE) + .eq(InspectionFile::getIsStaffFile, InspectionConstants.INSPECTION_IS_STAFF_FILE)); + } + + //添加文件 + List fileDOList = new ArrayList<>(); + for (FileDO fileDO : fileList) { + InspectionFile file = new InspectionFile(); + file.setFileName(removeFileExtension(fileDO.getName())); + file.setFilePath(fileDO.getUrl()); + file.setType(InspectionConstants.INSPECTION_FILE); + file.setFatherId(fatherId); + file.setIsStaffFile(InspectionConstants.INSPECTION_IS_STAFF_FILE); + + fileDOList.add(file); + } + + //批量插入文件 + inspectionFileService.insertBatchInspectionFile(fileDOList); + } + + /** + * 去除文件名中的后缀 + * + * @param filename + * @return + */ + public String removeFileExtension(String filename) { + int lastDotIndex = filename.lastIndexOf('.'); + if (lastDotIndex == -1) { + return filename; // 如果没有找到点,则返回原文件名 + } + return filename.substring(0, lastDotIndex); + } } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionStaffSaveVo.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionStaffSaveVo.java index 10298117..13bc92bf 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionStaffSaveVo.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/vo/InspectionStaffSaveVo.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.inspection.vo; import cn.iocoder.yudao.annotation.Excel; +import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; import cn.iocoder.yudao.module.inspection.entity.InspectionStaff; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; @@ -97,4 +98,9 @@ public class InspectionStaffSaveVo extends InspectionStaff { * 驾驶证类型集合 */ private List driverLicenseTypeArr; + + /** + * 文件集合 + */ + private List fileList; } diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionStaffMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionStaffMapper.xml index 210c76c3..3ea57cb1 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionStaffMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionStaffMapper.xml @@ -67,7 +67,8 @@ iss.social_security_buy_date, iss.emergency_contact_name, iss.emergency_contact_phone, - iss.driver_license_type + iss.driver_license_type, + iss.folder_id FROM system_users su left join system_user_role sur on su.id = sur.user_id left join system_role sr on sur.role_id = sr.id