Commit 5fd7b93e by sdif

Merge remote-tracking branch 'origin/dev' into dev

parents 6f7dfd9b bc11f3bc
...@@ -3,10 +3,18 @@ package com.pz.web.controller.system; ...@@ -3,10 +3,18 @@ package com.pz.web.controller.system;
import java.util.List; import java.util.List;
import java.util.Arrays; import java.util.Arrays;
import cn.dev33.satoken.annotation.SaIgnore;
import com.pz.common.excel.ExcelResult;
import com.pz.system.domain.vo.HospitalImportVo;
import com.pz.system.domain.vo.SysUserImportVo;
import com.pz.system.listener.SysUserImportListener;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import com.pz.common.annotation.RepeatSubmit; import com.pz.common.annotation.RepeatSubmit;
...@@ -22,6 +30,7 @@ import com.pz.system.domain.vo.HospitalVo; ...@@ -22,6 +30,7 @@ import com.pz.system.domain.vo.HospitalVo;
import com.pz.system.domain.bo.HospitalBo; import com.pz.system.domain.bo.HospitalBo;
import com.pz.system.service.IHospitalService; import com.pz.system.service.IHospitalService;
import com.pz.common.core.page.TableDataInfo; import com.pz.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/** /**
* 医院 * 医院
...@@ -58,6 +67,16 @@ public class HospitalController extends BaseController { ...@@ -58,6 +67,16 @@ public class HospitalController extends BaseController {
} }
/** /**
* 导入医院列表
*/
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@SaIgnore
public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
List<HospitalImportVo> result = ExcelUtil.importExcel(file.getInputStream(), HospitalImportVo.class);
return toAjax(iHospitalService.importHospitals(result));
}
/**
* 获取医院详细信息 * 获取医院详细信息
* *
* @param id 主键 * @param id 主键
......
...@@ -75,9 +75,9 @@ spring: ...@@ -75,9 +75,9 @@ spring:
servlet: servlet:
multipart: multipart:
# 单个文件大小 # 单个文件大小
max-file-size: 10MB max-file-size: 10000MB
# 设置总上传的文件大小 # 设置总上传的文件大小
max-request-size: 20MB max-request-size: 200000MB
# 服务模块 # 服务模块
devtools: devtools:
restart: restart:
......
...@@ -14,7 +14,13 @@ public enum HospitalLevel { ...@@ -14,7 +14,13 @@ public enum HospitalLevel {
LEVEL_3_SPECIAL(7, "三级特等"), LEVEL_3_SPECIAL(7, "三级特等"),
LEVEL_3_A(8, "三级甲等"), LEVEL_3_A(8, "三级甲等"),
LEVEL_3_C(9, "三级丙等"), LEVEL_3_C(9, "三级丙等"),
LEVEL_3_B(10, "三级乙等"); LEVEL_3_B(10, "三级乙等"),
LEVEL_11(11, "三级乙等"),
LEVEL_12(12, "二级医院"),
LEVEL_13(13, "三级医院");
private final Integer code; private final Integer code;
private final String name; private final String name;
......
...@@ -41,7 +41,20 @@ public enum HospitalType { ...@@ -41,7 +41,20 @@ public enum HospitalType {
SPECIALIZED_DISEASE_PREVENTION_STATION(32, "专科疾病防治站"), SPECIALIZED_DISEASE_PREVENTION_STATION(32, "专科疾病防治站"),
NURSING_HOME(33, "护理院"), NURSING_HOME(33, "护理院"),
NURSING_STATION(34, "护理站"), NURSING_STATION(34, "护理站"),
OTHER_HEALTHCARE_INSTITUTION(35, "其他诊疗机构"); OTHER_HEALTHCARE_INSTITUTION(35, "其他诊疗机构"),
CYB(36, "传染病医院"),
ER_TONG(37, "儿童医院"),
GU_KE(38, "骨科医院"),
GU_SHANG(39, "骨伤医院"),
KOU_QIANG(40, "口腔医院"),
MEN_ZHENG(41, "门诊"),
SHENG_BING(42, "肾病医院"),
YAN_KE(43, "眼科医院"),
ZHONG_LIU(44, "肿瘤医院");
private final Integer code; private final Integer code;
private final String name; private final String name;
......
package com.pz.system.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
public class HospitalImportVo implements Serializable {
/**
* 城市id
*/
@ExcelProperty(value = "城市id")
private Integer cityId;
/**
* 医院名称
*/
@ExcelProperty(value = "医院名称")
private String name;
/**
* 医院logo
*/
@ExcelProperty(value = "医院logo")
private String logo;
/**
* 医院等级
*/
@ExcelProperty(value = "医院等级")
private Integer level;
/**
* 经度
*/
@ExcelProperty(value = "经度")
private String lng;
/**
* 纬度
*/
@ExcelProperty(value = "纬度")
private String lat;
/**
* 医院类别
*/
@ExcelProperty(value = "医院类别")
private Integer category;
/**
* 医院介绍
*/
@ExcelProperty(value = "医院介绍")
private String introduce;
/**
* 地图位置
*/
@ExcelProperty(value = "地图位置")
private String mapAddress;
}
...@@ -30,7 +30,7 @@ public class HospitalVo { ...@@ -30,7 +30,7 @@ public class HospitalVo {
/** /**
* 城市 * 城市
*/ */
@ExcelProperty(value = "城市") @ExcelProperty(value = "城市id")
private Integer cityId; private Integer cityId;
/** /**
...@@ -48,7 +48,7 @@ public class HospitalVo { ...@@ -48,7 +48,7 @@ public class HospitalVo {
/** /**
* 医院等级,0-未定义,具体查看model中定义 * 医院等级,0-未定义,具体查看model中定义
*/ */
@ExcelProperty(value = "医院等级,0-未定义,具体查看model中定义") @ExcelProperty(value = "医院等级")
private Integer level; private Integer level;
/** /**
......
package com.pz.system.service; package com.pz.system.service;
import com.pz.system.domain.Hospital; import com.pz.system.domain.Hospital;
import com.pz.system.domain.vo.HospitalImportVo;
import com.pz.system.domain.vo.HospitalVo; import com.pz.system.domain.vo.HospitalVo;
import com.pz.system.domain.bo.HospitalBo; import com.pz.system.domain.bo.HospitalBo;
import com.pz.common.core.page.TableDataInfo; import com.pz.common.core.page.TableDataInfo;
...@@ -46,4 +47,11 @@ public interface IHospitalService { ...@@ -46,4 +47,11 @@ public interface IHospitalService {
* 校验并批量删除医院信息 * 校验并批量删除医院信息
*/ */
Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);
/**
* 批量导入医院数据
* @param list
* @return
*/
Boolean importHospitals(List<HospitalImportVo> list);
} }
...@@ -27,6 +27,8 @@ public interface ISysOssService { ...@@ -27,6 +27,8 @@ public interface ISysOssService {
SysOssVo upload(MultipartFile file); SysOssVo upload(MultipartFile file);
SysOssVo uploadLocalFile(String filePath);
SysOssVo upload(File file); SysOssVo upload(File file);
void download(Long ossId, HttpServletResponse response) throws IOException; void download(Long ossId, HttpServletResponse response) throws IOException;
......
...@@ -15,9 +15,12 @@ import com.pz.common.enums.HospitalType; ...@@ -15,9 +15,12 @@ import com.pz.common.enums.HospitalType;
import com.pz.common.utils.JsonUtils; import com.pz.common.utils.JsonUtils;
import com.pz.system.domain.Business; import com.pz.system.domain.Business;
import com.pz.system.domain.Department; import com.pz.system.domain.Department;
import com.pz.system.domain.vo.HospitalImportVo;
import com.pz.system.domain.vo.SysOssVo;
import com.pz.system.mapper.BusinessMapper; import com.pz.system.mapper.BusinessMapper;
import com.pz.system.mapper.CityMapper; import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.DepartmentMapper; import com.pz.system.mapper.DepartmentMapper;
import com.pz.system.service.ISysOssService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.HospitalBo; import com.pz.system.domain.bo.HospitalBo;
...@@ -46,6 +49,8 @@ public class HospitalServiceImpl implements IHospitalService { ...@@ -46,6 +49,8 @@ public class HospitalServiceImpl implements IHospitalService {
private final BusinessMapper businessMapper; private final BusinessMapper businessMapper;
private final ISysOssService iSysOssService;
/** /**
* 查询医院 * 查询医院
*/ */
...@@ -191,4 +196,26 @@ public class HospitalServiceImpl implements IHospitalService { ...@@ -191,4 +196,26 @@ public class HospitalServiceImpl implements IHospitalService {
} }
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
@Override
public Boolean importHospitals(List<HospitalImportVo> list) {
if (CollectionUtils.isEmpty(list)) {
return false;
}
List<Hospital> hospitals = new ArrayList<>();
list.forEach(hospitalImportVo -> {
//处理logo
if (StringUtils.isNotBlank(hospitalImportVo.getLogo())) {
SysOssVo sysOssVo = iSysOssService.uploadLocalFile(hospitalImportVo.getLogo());
if (null != sysOssVo) {
Hospital bean = BeanUtil.toBean(hospitalImportVo, Hospital.class);
bean.setLogo(sysOssVo.getOssId().toString());
hospitals.add(bean);
}
}
});
//批量插入
baseMapper.insertBatch(hospitals);
return true;
}
} }
...@@ -34,6 +34,9 @@ import javax.servlet.http.HttpServletResponse; ...@@ -34,6 +34,9 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
...@@ -139,6 +142,24 @@ public class SysOssServiceImpl implements ISysOssService, OssService { ...@@ -139,6 +142,24 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult); return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult);
} }
public SysOssVo uploadLocalFile(String filePath) {
Path localFilePath = Paths.get(filePath);
if (!Files.exists(localFilePath) || Files.isDirectory(localFilePath)) {
throw new ServiceException("指定的文件不存在或不是一个文件");
}
String originalFileName = localFilePath.getFileName().toString();
String suffix = StringUtils.substring(originalFileName, originalFileName.lastIndexOf("."), originalFileName.length());
OssClient storage = OssFactory.instance();
UploadResult uploadResult;
try {
byte[] fileBytes = Files.readAllBytes(localFilePath);
uploadResult = storage.uploadSuffix(fileBytes, suffix, Files.probeContentType(localFilePath));
} catch (IOException e) {
return null;
}
return buildResultEntity(originalFileName, suffix, storage.getConfigKey(), uploadResult);
}
@Override @Override
public SysOssVo upload(File file) { public SysOssVo upload(File file) {
String originalfileName = file.getName(); String originalfileName = file.getName();
......
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
FROM business b FROM business b
LEFT JOIN total_order t ON t.business_id = b.id LEFT JOIN total_order t ON t.business_id = b.id
AND t.`status` = 2 AND t.`status` = 2
AND DATE (t.create_time) = DATE (#{time}) AND DATE (t.finish_time) = DATE (#{time})
<if test="emIds != null and emIds.size() > 0"> <if test="emIds != null and emIds.size() > 0">
AND t.em_id IN(#{emIds}) AND t.em_id IN(#{emIds})
</if> </if>
...@@ -141,7 +141,7 @@ ...@@ -141,7 +141,7 @@
<select id="findStoreOrderVoList" resultType="com.pz.system.domain.vo.OrderColumnarVo"> <select id="findStoreOrderVoList" resultType="com.pz.system.domain.vo.OrderColumnarVo">
SELECT '商城订单' name,DATE (#{time}) AS time,COUNT(1) num FROM total_order SELECT '商城订单' name,DATE (#{time}) AS time,COUNT(1) num FROM total_order
WHERE business_id = 0 AND `status` = 2 WHERE business_id = 0 AND `status` = 2
AND DATE (create_time) = DATE (#{time}) AND DATE (finish_time) = DATE (#{time})
<if test="emIds != null and emIds.size() > 0"> <if test="emIds != null and emIds.size() > 0">
AND em_id IN(#{emIds}) AND em_id IN(#{emIds})
</if> </if>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment