添加人员、材料、机械管理上传图片、文件功能
This commit is contained in:
@ -55,6 +55,11 @@ public class BusContractor extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String custodianPhone;
|
private String custodianPhone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司相关文件
|
||||||
|
*/
|
||||||
|
private String files;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
|
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
|
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
|
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user