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

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 files;
/**
* 备注
*/

View File

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

View File

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

View File

@ -1,19 +1,14 @@
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.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.project.domain.BusContractor;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
/**
@ -66,6 +61,12 @@ public class BusContractorVo implements Serializable {
@ExcelProperty(value = "管理人联系电话")
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.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -27,7 +29,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 分包单位Service业务层处理
@ -96,8 +100,12 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
// 将实体类和 DTO 进行转换
BusContractor contractor = new BusContractor();
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);
if (!save) {
@ -117,8 +125,12 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
// 将实体类和 DTO 进行转换
BusContractor contractor = new BusContractor();
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());
if (oldContractor == null) {
@ -131,8 +143,9 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(BusContractor entity) {
private void validEntityBeforeSave(BusContractor entity, Boolean add) {
// 做一些数据校验,如唯一约束
if (add) {
String name = entity.getName();
if (StringUtils.isBlank(name)) {
throw new ServiceException("分包单位名称不能为空", HttpStatus.BAD_REQUEST);
@ -142,6 +155,7 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
throw new ServiceException("分包单位负责人不能为空", HttpStatus.BAD_REQUEST);
}
}
}
/**
* 校验并批量删除分包单位信息
@ -191,6 +205,15 @@ public class BusContractorServiceImpl extends ServiceImpl<BusContractorMapper, B
return 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;
}