Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
+13
@@ -13,6 +13,7 @@ import com.renkang.emergency.aed.vo.res.manager.AedGeo;
|
||||
import com.renkang.emergency.bean.response.SrcInfo;
|
||||
import com.renkang.emergency.entity.AedEquipmentManger;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
@@ -22,6 +23,7 @@ import org.jeecg.common.system.base.controller.JeecgController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
@@ -332,4 +334,15 @@ public class AedEquipmentMangerController extends JeecgController<AedEquipmentMa
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 仅适用于特定模块的文件
|
||||
* @param file
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "AED数据临时导入方法", description = "AED数据临时导入方法")
|
||||
@PostMapping(value = "temp-import")
|
||||
public Result<Object> aedDataTempImport(@Parameter(description = "需要导入的AED", required = true) MultipartFile file) {
|
||||
return aedEquipmentMangerService.aedDataTempImport(file);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+9
@@ -9,6 +9,8 @@ import com.renkang.emergency.aed.vo.res.manager.AEDPublishPageRes;
|
||||
import com.renkang.emergency.aed.vo.res.manager.AedGeo;
|
||||
import com.renkang.emergency.bean.response.SrcInfo;
|
||||
import com.renkang.emergency.entity.AedEquipmentManger;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
@@ -137,4 +139,11 @@ public interface IAedEquipmentMangerService extends IService<AedEquipmentManger>
|
||||
* 从安眼系统同步更新AED数据
|
||||
*/
|
||||
void syncAnYanAedData();
|
||||
|
||||
/**
|
||||
* AED数据临时导入方法
|
||||
* @param file
|
||||
* @return
|
||||
*/
|
||||
Result<Object> aedDataTempImport(MultipartFile file);
|
||||
}
|
||||
|
||||
+94
-5
@@ -20,6 +20,7 @@ import com.renkang.emergency.aed.util.AEDUtils;
|
||||
import com.renkang.emergency.aed.util.OrgUtils;
|
||||
import com.renkang.emergency.aed.vo.req.AedExport;
|
||||
import com.renkang.emergency.aed.vo.req.AedPublishExport;
|
||||
import com.renkang.emergency.aed.vo.req.AedTempImportVO;
|
||||
import com.renkang.emergency.aed.vo.req.manager.AEDManagerInsertReq;
|
||||
import com.renkang.emergency.aed.vo.req.manager.AEDPublishEquipmentReq;
|
||||
import com.renkang.emergency.aed.vo.res.manager.AEDManagerPageRes;
|
||||
@@ -27,8 +28,11 @@ import com.renkang.emergency.aed.vo.res.manager.AEDPublishPageRes;
|
||||
import com.renkang.emergency.aed.vo.res.manager.AedGeo;
|
||||
import com.renkang.emergency.bean.response.SrcInfo;
|
||||
import com.renkang.emergency.entity.AedEquipmentManger;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.jeecg.bean.response.DepartEasyVO;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.exception.ExceptionAssertsUtil;
|
||||
import org.jeecg.common.system.api.ISysBaseAPI;
|
||||
import org.jeecg.common.system.util.DictUtil;
|
||||
import org.jeecg.common.system.vo.DictModel;
|
||||
@@ -39,15 +43,20 @@ import org.jeecg.global.GlobalUtils;
|
||||
import org.jeecg.modules.exports.entity.CommonExportsInfo;
|
||||
import org.jeecg.modules.manager.ISysCache;
|
||||
import org.jeecg.modules.system.entity.SysDepart;
|
||||
import org.jeecg.untils.CoordinateConverter;
|
||||
import org.jeecg.util.GlobalManager;
|
||||
import org.jeecg.util.TypeConversionUtil;
|
||||
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||
import org.jeecgframework.poi.exception.excel.enums.ExcelExportEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.task.AsyncTaskExecutor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -98,6 +107,8 @@ public class AedEquipmentMangerServiceImpl extends ServiceImpl<AedEquipmentMange
|
||||
private GlobalManager globalManager;
|
||||
@Autowired
|
||||
private AnYanClient anYanClient;
|
||||
@Autowired
|
||||
private CoordinateConverter converter;
|
||||
|
||||
@Override
|
||||
public IPage<AEDManagerPageRes> queryManagerPageList(Integer pageNo, Integer pageSize, String name, Integer type, String orgCode, String mfrs, String model, String hostSerialNum) {
|
||||
@@ -614,11 +625,16 @@ public class AedEquipmentMangerServiceImpl extends ServiceImpl<AedEquipmentMange
|
||||
//处理所属部门
|
||||
List<DepartEasyVO> departEasyVOS = orgMap.get(anYanAedInfo.getThirdOfficeName());
|
||||
if(ObjectUtil.isNotEmpty(departEasyVOS)){
|
||||
String orgCode = departEasyVOS.stream()
|
||||
.filter(de -> anYanAedInfo.getSecondOfficeName().equals(de.getParentName()))
|
||||
.map(DepartEasyVO::getOrgCode)
|
||||
.findFirst().orElse("");
|
||||
equipmentManger.setDepartCode(orgCode);
|
||||
if(departEasyVOS.size() > 1){
|
||||
//如果有同名部门取上级单位名称二次比对
|
||||
String orgCode = departEasyVOS.stream()
|
||||
.filter(de -> anYanAedInfo.getSecondOfficeName().equals(de.getParentName()))
|
||||
.map(DepartEasyVO::getOrgCode)
|
||||
.findFirst().orElse("");
|
||||
equipmentManger.setDepartCode(orgCode);
|
||||
}else {
|
||||
equipmentManger.setDepartCode(departEasyVOS.get(0).getOrgCode());
|
||||
}
|
||||
}
|
||||
equipmentManger.setInstallAddress(anYanAedInfo.getProvidePlace());
|
||||
equipmentManger.setManageUserMobile(anYanAedInfo.getTel());
|
||||
@@ -647,4 +663,77 @@ public class AedEquipmentMangerServiceImpl extends ServiceImpl<AedEquipmentMange
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Result<Object> aedDataTempImport(MultipartFile file){
|
||||
List<AedTempImportVO> list = null;
|
||||
try {
|
||||
//解析Excel文件数据
|
||||
ImportParams params = new ImportParams();
|
||||
params.setTitleRows(1);
|
||||
params.setHeadRows(1);
|
||||
list = ExcelImportUtil.importExcel(file.getInputStream(), AedTempImportVO.class, params);
|
||||
if(ObjectUtil.isNotEmpty(list)){
|
||||
//通过单位名称反查orgCode
|
||||
Map<String, List<DepartEasyVO>> orgMap = sysBaseAPI.queryDeptByName( list.stream().map(AedTempImportVO::getThirdOfficeName).collect(Collectors.toSet()));
|
||||
for(AedTempImportVO vo : list){
|
||||
try {
|
||||
AedEquipmentManger equipmentManger = new AedEquipmentManger();
|
||||
equipmentManger.setName("自动体外除颤仪");
|
||||
equipmentManger.setPublishFlag(0);
|
||||
equipmentManger.setStatus(1);
|
||||
equipmentManger.setInstallAddress(vo.getInstallAddress());
|
||||
equipmentManger.setManageUserMobile(vo.getManageUserMobile());
|
||||
equipmentManger.setManageUserName(vo.getManageUserName());
|
||||
equipmentManger.setUpdateTime(new Date());
|
||||
equipmentManger.setCreateTime(new Date());
|
||||
equipmentManger.setHostModel(vo.getHostModel());
|
||||
equipmentManger.setHostSerialNum(vo.getHostSerialNum());
|
||||
if(StrUtil.isNotEmpty(vo.getLongitude()) && StrUtil.isNotEmpty(vo.getLatitude())){
|
||||
try {
|
||||
String[] split = converter.run(vo.getLongitude() + "-" + vo.getLatitude()).split("-");
|
||||
CoordinateConverter.Gps gps = CoordinateConverter.GPS84ToGCJ02(
|
||||
TypeConversionUtil.toDoubleOfNull(split[0]), TypeConversionUtil.toDoubleOfNull(split[1]));
|
||||
if (gps != null) {
|
||||
BigDecimal lon = BigDecimal.valueOf(gps.getLongitude());
|
||||
BigDecimal lat = BigDecimal.valueOf(gps.getLatitude());
|
||||
equipmentManger.setLongitude(lon);
|
||||
equipmentManger.setLatitude(lat);
|
||||
equipmentManger.setGeoCollectType(1);
|
||||
equipmentManger.setPublishFlag(1);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
equipmentManger.setInstallTime(vo.getInstallTime());
|
||||
}
|
||||
//处理所属部门
|
||||
List<DepartEasyVO> departEasyVOS = orgMap.get(vo.getThirdOfficeName());
|
||||
if(ObjectUtil.isNotEmpty(departEasyVOS)){
|
||||
if(departEasyVOS.size() > 1){
|
||||
//如果有同名部门取上级单位名称二次比对
|
||||
String orgCode = departEasyVOS.stream()
|
||||
.filter(de -> vo.getSecondOfficeName().equals(de.getParentName()))
|
||||
.map(DepartEasyVO::getOrgCode)
|
||||
.findFirst().orElse("");
|
||||
equipmentManger.setDepartCode(orgCode);
|
||||
}else {
|
||||
equipmentManger.setDepartCode(departEasyVOS.get(0).getOrgCode());
|
||||
}
|
||||
}
|
||||
save(equipmentManger);
|
||||
if(equipmentManger.getPublishFlag() == 1){
|
||||
//添加位置信息
|
||||
aedUtils.addGeo(equipmentManger.getLongitude().doubleValue(), equipmentManger.getLatitude().doubleValue(), equipmentManger.getId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
ExceptionAssertsUtil.fail("导入数据失败");
|
||||
}
|
||||
return Result.ok("导入成功");
|
||||
}
|
||||
}
|
||||
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.renkang.emergency.aed.vo.req;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* AED数据临时导入适用
|
||||
*/
|
||||
@Data
|
||||
public class AedTempImportVO {
|
||||
@Excel(name = "二级单位名称", width = 15)
|
||||
private String secondOfficeName;
|
||||
@Excel(name = "三级单位名称", width = 15)
|
||||
private String thirdOfficeName;
|
||||
@Excel(name = "配置地点", width = 15)
|
||||
private String installAddress;
|
||||
@Excel(name = "北纬", width = 15)
|
||||
private String latitude;
|
||||
@Excel(name = "东经", width = 15)
|
||||
private String longitude;
|
||||
@Excel(name = "配置时间", width = 15)
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date installTime;
|
||||
@Excel(name = "设备型号", width = 15)
|
||||
private String hostModel;
|
||||
@Excel(name = "编号", width = 15)
|
||||
private String hostSerialNum;
|
||||
@Excel(name = "AED设备管理人员", width = 15)
|
||||
private String manageUserName;
|
||||
@Excel(name = "联系电话", width = 15)
|
||||
private String manageUserMobile;
|
||||
|
||||
public String getSecondOfficeName() {
|
||||
if(null != secondOfficeName){
|
||||
// 处理返数据中的空格和换行符
|
||||
return secondOfficeName.replaceAll(" ","").replaceAll("\r\n","");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public String getThirdOfficeName() {
|
||||
if(null != thirdOfficeName){
|
||||
// 处理返数据中的空格和换行符
|
||||
return thirdOfficeName.replaceAll(" ","").replaceAll("\r\n","");
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
+1
@@ -491,6 +491,7 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
|
||||
//todo 如果经纬度需要经度的转换在此处处理
|
||||
resource.setLatitude(TypeConversionUtil.toBigDecimalOfNull(hospital.getLat()));
|
||||
resource.setLongitude(TypeConversionUtil.toBigDecimalOfNull(hospital.getLon()));
|
||||
resource.setMobile(hospital.getPhone());
|
||||
resource.setType("1");
|
||||
saveOrUpdateBatchList.add(resource);
|
||||
}
|
||||
|
||||
+1
@@ -1271,6 +1271,7 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
|
||||
departEasyVO.setParentCode(parent.getOrgCode());
|
||||
departEasyVO.setParentName(parent.getDepartName());
|
||||
}
|
||||
easyVOS.add(departEasyVO);
|
||||
});
|
||||
resultMap.put(name,easyVOS);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user