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.bean.response.SrcInfo;
|
||||||
import com.renkang.emergency.entity.AedEquipmentManger;
|
import com.renkang.emergency.entity.AedEquipmentManger;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -332,4 +334,15 @@ public class AedEquipmentMangerController extends JeecgController<AedEquipmentMa
|
|||||||
return Result.ok();
|
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.aed.vo.res.manager.AedGeo;
|
||||||
import com.renkang.emergency.bean.response.SrcInfo;
|
import com.renkang.emergency.bean.response.SrcInfo;
|
||||||
import com.renkang.emergency.entity.AedEquipmentManger;
|
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.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -137,4 +139,11 @@ public interface IAedEquipmentMangerService extends IService<AedEquipmentManger>
|
|||||||
* 从安眼系统同步更新AED数据
|
* 从安眼系统同步更新AED数据
|
||||||
*/
|
*/
|
||||||
void syncAnYanAedData();
|
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.util.OrgUtils;
|
||||||
import com.renkang.emergency.aed.vo.req.AedExport;
|
import com.renkang.emergency.aed.vo.req.AedExport;
|
||||||
import com.renkang.emergency.aed.vo.req.AedPublishExport;
|
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.AEDManagerInsertReq;
|
||||||
import com.renkang.emergency.aed.vo.req.manager.AEDPublishEquipmentReq;
|
import com.renkang.emergency.aed.vo.req.manager.AEDPublishEquipmentReq;
|
||||||
import com.renkang.emergency.aed.vo.res.manager.AEDManagerPageRes;
|
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.aed.vo.res.manager.AedGeo;
|
||||||
import com.renkang.emergency.bean.response.SrcInfo;
|
import com.renkang.emergency.bean.response.SrcInfo;
|
||||||
import com.renkang.emergency.entity.AedEquipmentManger;
|
import com.renkang.emergency.entity.AedEquipmentManger;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.jeecg.bean.response.DepartEasyVO;
|
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.api.ISysBaseAPI;
|
||||||
import org.jeecg.common.system.util.DictUtil;
|
import org.jeecg.common.system.util.DictUtil;
|
||||||
import org.jeecg.common.system.vo.DictModel;
|
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.exports.entity.CommonExportsInfo;
|
||||||
import org.jeecg.modules.manager.ISysCache;
|
import org.jeecg.modules.manager.ISysCache;
|
||||||
import org.jeecg.modules.system.entity.SysDepart;
|
import org.jeecg.modules.system.entity.SysDepart;
|
||||||
|
import org.jeecg.untils.CoordinateConverter;
|
||||||
import org.jeecg.util.GlobalManager;
|
import org.jeecg.util.GlobalManager;
|
||||||
|
import org.jeecg.util.TypeConversionUtil;
|
||||||
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
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.ExportParams;
|
||||||
|
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||||
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||||
import org.jeecgframework.poi.exception.excel.enums.ExcelExportEnum;
|
import org.jeecgframework.poi.exception.excel.enums.ExcelExportEnum;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.core.task.AsyncTaskExecutor;
|
import org.springframework.core.task.AsyncTaskExecutor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
@@ -98,6 +107,8 @@ public class AedEquipmentMangerServiceImpl extends ServiceImpl<AedEquipmentMange
|
|||||||
private GlobalManager globalManager;
|
private GlobalManager globalManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
private AnYanClient anYanClient;
|
private AnYanClient anYanClient;
|
||||||
|
@Autowired
|
||||||
|
private CoordinateConverter converter;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<AEDManagerPageRes> queryManagerPageList(Integer pageNo, Integer pageSize, String name, Integer type, String orgCode, String mfrs, String model, String hostSerialNum) {
|
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());
|
List<DepartEasyVO> departEasyVOS = orgMap.get(anYanAedInfo.getThirdOfficeName());
|
||||||
if(ObjectUtil.isNotEmpty(departEasyVOS)){
|
if(ObjectUtil.isNotEmpty(departEasyVOS)){
|
||||||
String orgCode = departEasyVOS.stream()
|
if(departEasyVOS.size() > 1){
|
||||||
.filter(de -> anYanAedInfo.getSecondOfficeName().equals(de.getParentName()))
|
//如果有同名部门取上级单位名称二次比对
|
||||||
.map(DepartEasyVO::getOrgCode)
|
String orgCode = departEasyVOS.stream()
|
||||||
.findFirst().orElse("");
|
.filter(de -> anYanAedInfo.getSecondOfficeName().equals(de.getParentName()))
|
||||||
equipmentManger.setDepartCode(orgCode);
|
.map(DepartEasyVO::getOrgCode)
|
||||||
|
.findFirst().orElse("");
|
||||||
|
equipmentManger.setDepartCode(orgCode);
|
||||||
|
}else {
|
||||||
|
equipmentManger.setDepartCode(departEasyVOS.get(0).getOrgCode());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
equipmentManger.setInstallAddress(anYanAedInfo.getProvidePlace());
|
equipmentManger.setInstallAddress(anYanAedInfo.getProvidePlace());
|
||||||
equipmentManger.setManageUserMobile(anYanAedInfo.getTel());
|
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 如果经纬度需要经度的转换在此处处理
|
//todo 如果经纬度需要经度的转换在此处处理
|
||||||
resource.setLatitude(TypeConversionUtil.toBigDecimalOfNull(hospital.getLat()));
|
resource.setLatitude(TypeConversionUtil.toBigDecimalOfNull(hospital.getLat()));
|
||||||
resource.setLongitude(TypeConversionUtil.toBigDecimalOfNull(hospital.getLon()));
|
resource.setLongitude(TypeConversionUtil.toBigDecimalOfNull(hospital.getLon()));
|
||||||
|
resource.setMobile(hospital.getPhone());
|
||||||
resource.setType("1");
|
resource.setType("1");
|
||||||
saveOrUpdateBatchList.add(resource);
|
saveOrUpdateBatchList.add(resource);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -1271,6 +1271,7 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
|
|||||||
departEasyVO.setParentCode(parent.getOrgCode());
|
departEasyVO.setParentCode(parent.getOrgCode());
|
||||||
departEasyVO.setParentName(parent.getDepartName());
|
departEasyVO.setParentName(parent.getDepartName());
|
||||||
}
|
}
|
||||||
|
easyVOS.add(departEasyVO);
|
||||||
});
|
});
|
||||||
resultMap.put(name,easyVOS);
|
resultMap.put(name,easyVOS);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user