添加人员、材料、机械管理上传图片、文件功能

This commit is contained in:
lcj
2025-03-14 18:21:13 +08:00
parent f9faa34486
commit 4537506ae3
5 changed files with 58 additions and 17 deletions

View File

@ -55,6 +55,11 @@ public class BusContractor extends BaseEntity {
*/ */
private String custodianPhone; private String custodianPhone;
/**
* 公司相关文件
*/
private String files;
/** /**
* 备注 * 备注
*/ */

View File

@ -4,6 +4,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map;
/** /**
* @author lcj * @author lcj
@ -40,6 +41,11 @@ public class ContractorCreateReq implements Serializable {
*/ */
private String custodianPhone; private String custodianPhone;
/**
* 公司相关文件
*/
private Map<String, Long> fileMap;
/** /**
* 备注 * 备注
*/ */

View File

@ -4,6 +4,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map;
/** /**
* @author lcj * @author lcj
@ -45,6 +46,11 @@ public class ContractorUpdateReq implements Serializable {
*/ */
private String custodianPhone; private String custodianPhone;
/**
* 公司相关文件
*/
private Map<String, Long> fileMap;
/** /**
* 备注 * 备注
*/ */

View File

@ -1,19 +1,14 @@
package org.dromara.project.domain.vo; package org.dromara.project.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.project.domain.BusContractor;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.project.domain.BusContractor;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Map;
/** /**
@ -66,6 +61,12 @@ public class BusContractorVo implements Serializable {
@ExcelProperty(value = "管理人联系电话") @ExcelProperty(value = "管理人联系电话")
private String custodianPhone; private String custodianPhone;
/**
* 公司相关文件
*/
@ExcelProperty(value = "公司相关文件")
private Map<String, Long> fileMap;
/** /**
* 备注 * 备注
*/ */

View File

@ -2,6 +2,8 @@ package org.dromara.project.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -27,7 +29,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 分包单位Service业务层处理 * 分包单位Service业务层处理
@ -96,8 +100,12 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
// 将实体类和 DTO 进行转换 // 将实体类和 DTO 进行转换
BusContractor contractor = new BusContractor(); BusContractor contractor = new BusContractor();
BeanUtils.copyProperties(req, contractor); BeanUtils.copyProperties(req, contractor);
// 数据转换
Map<String, Long> fileMap = req.getFileMap();
String fileMapStr = JSONUtil.toJsonStr(fileMap);
contractor.setFiles(fileMapStr);
// 数据校验 // 数据校验
validEntityBeforeSave(contractor); validEntityBeforeSave(contractor, true);
// 操作数据库 // 操作数据库
boolean save = this.save(contractor); boolean save = this.save(contractor);
if (!save) { if (!save) {
@ -117,8 +125,12 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
// 将实体类和 DTO 进行转换 // 将实体类和 DTO 进行转换
BusContractor contractor = new BusContractor(); BusContractor contractor = new BusContractor();
BeanUtils.copyProperties(req, contractor); BeanUtils.copyProperties(req, contractor);
// 数据转换
Map<String, Long> fileMap = req.getFileMap();
String fileMapStr = JSONUtil.toJsonStr(fileMap);
contractor.setFiles(fileMapStr);
// 数据校验 // 数据校验
validEntityBeforeSave(contractor); validEntityBeforeSave(contractor, false);
// 判断是否存在 // 判断是否存在
BusContractor oldContractor = this.getById(contractor.getId()); BusContractor oldContractor = this.getById(contractor.getId());
if (oldContractor == null) { if (oldContractor == null) {
@ -131,15 +143,17 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */
private void validEntityBeforeSave(BusContractor entity) { private void validEntityBeforeSave(BusContractor entity, Boolean add) {
// 做一些数据校验,如唯一约束 // 做一些数据校验,如唯一约束
String name = entity.getName(); if (add) {
if (StringUtils.isBlank(name)) { String name = entity.getName();
throw new ServiceException("分包单位名称不能为空", HttpStatus.BAD_REQUEST); if (StringUtils.isBlank(name)) {
} throw new ServiceException("分包单位名称不能为空", HttpStatus.BAD_REQUEST);
String principal = entity.getPrincipal(); }
if (StringUtils.isBlank(principal)) { String principal = entity.getPrincipal();
throw new ServiceException("分包单位负责人不能为空", HttpStatus.BAD_REQUEST); if (StringUtils.isBlank(principal)) {
throw new ServiceException("分包单位负责人不能为空", HttpStatus.BAD_REQUEST);
}
} }
} }
@ -191,6 +205,15 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
return contractorVo; return contractorVo;
} }
BeanUtils.copyProperties(contractor, contractorVo); BeanUtils.copyProperties(contractor, contractorVo);
// 关联对象存储文件信息
String files = contractor.getFiles();
if (StringUtils.isEmpty(files)) {
return contractorVo;
}
Map<String, Long> fileMap = new HashMap<>();
JSONObject parseObj = JSONUtil.parseObj(files);
parseObj.forEach((key, value) -> fileMap.put(key, (Long) value));
contractorVo.setFileMap(fileMap);
return contractorVo; return contractorVo;
} }