|
@@ -100,41 +100,59 @@ public class DiseaseConfigFacade {
|
|
|
* @return
|
|
|
*/
|
|
|
public Boolean saveOrUpdateRecords(DiseaseConfigListVO diseaseConfigListVO) {
|
|
|
+ if (ListUtil.isEmpty(diseaseConfigListVO.getDiseaseConfigList())) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return saveOrUpdateRecords(diseaseConfigListVO.getDiseaseConfigList());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 批量保存
|
|
|
+ *
|
|
|
+ * @param diseaseConfigList
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Boolean saveOrUpdateRecords(List<DiseaseConfig> diseaseConfigList) {
|
|
|
+ if (ListUtil.isEmpty(diseaseConfigList)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
|
String userId = SysUserUtils.getCurrentPrincipleID();
|
|
|
Date now = DateUtil.now();
|
|
|
- //id为空且已存在的映射关系先删除
|
|
|
- List<Long> deleteIds = Lists.newLinkedList();
|
|
|
- Map<String, Map<String, Long>> configMap
|
|
|
- = getConfigMap(Long.valueOf(hospitalId), null, null);
|
|
|
- if (ListUtil.isNotEmpty(diseaseConfigListVO.getDiseaseConfigList())) {
|
|
|
- diseaseConfigListVO.getDiseaseConfigList().forEach(diseaseConfig -> {
|
|
|
- diseaseConfig.setHospitalId(Long.valueOf(hospitalId));
|
|
|
- diseaseConfig.setModifier(userId);
|
|
|
- diseaseConfig.setGmtModified(now);
|
|
|
- if (diseaseConfig.getId() == null) {
|
|
|
- if (configMap.get(diseaseConfig.getHisName()) != null
|
|
|
- && configMap.get(diseaseConfig.getHisName()).containsKey(diseaseConfig.getUniqueName())) {
|
|
|
- deleteIds.add(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
|
|
|
- }
|
|
|
- diseaseConfig.setCreator(userId);
|
|
|
- diseaseConfig.setGmtCreate(now);
|
|
|
- }
|
|
|
- if (diseaseConfig.getIsDeleted() == null) {
|
|
|
- diseaseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
|
|
|
- }
|
|
|
- });
|
|
|
- IdListVO idListVO = new IdListVO();
|
|
|
- idListVO.setIds(deleteIds);
|
|
|
- deleteRecords(idListVO);
|
|
|
- }
|
|
|
+
|
|
|
//数据不完整的不保存
|
|
|
- List<DiseaseConfig> records = diseaseConfigListVO.getDiseaseConfigList()
|
|
|
+ //过滤外部名称或公表名为空的数据
|
|
|
+ diseaseConfigList = diseaseConfigList
|
|
|
.stream()
|
|
|
.filter(i -> StringUtil.isNotBlank(i.getHisName()))
|
|
|
.filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
|
|
|
.collect(Collectors.toList());
|
|
|
- diseaseConfigService.saveOrUpdateBatch(records);
|
|
|
+
|
|
|
+ // 验证数据是否已存在,已存在的先删除
|
|
|
+ // 没id的删除重新插入,有id的更新
|
|
|
+ List<Long> deleteIds = Lists.newLinkedList();
|
|
|
+ Map<String, Map<String, Long>> configMap
|
|
|
+ = getConfigMap(Long.valueOf(hospitalId), null, null);
|
|
|
+ diseaseConfigList.forEach(diseaseConfig -> {
|
|
|
+ diseaseConfig.setHospitalId(Long.valueOf(hospitalId));
|
|
|
+ diseaseConfig.setModifier(userId);
|
|
|
+ diseaseConfig.setGmtModified(now);
|
|
|
+ if (diseaseConfig.getId() == null) {
|
|
|
+ if (configMap.containsKey(diseaseConfig.getHisName())) {
|
|
|
+ deleteIds.add(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
|
|
|
+ }
|
|
|
+ diseaseConfig.setCreator(userId);
|
|
|
+ diseaseConfig.setGmtCreate(now);
|
|
|
+ }
|
|
|
+ if (diseaseConfig.getIsDeleted() == null) {
|
|
|
+ diseaseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //删除已存在映射关系
|
|
|
+ IdListVO idListVO = new IdListVO();
|
|
|
+ idListVO.setIds(deleteIds);
|
|
|
+ deleteRecords(idListVO);
|
|
|
+ diseaseConfigService.saveOrUpdateBatch(diseaseConfigList);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -148,7 +166,7 @@ public class DiseaseConfigFacade {
|
|
|
UpdateWrapper<DiseaseConfig> updateWrapper = new UpdateWrapper<>();
|
|
|
updateWrapper.eq("id", idVO.getId())
|
|
|
.set("is_deleted", IsDeleteEnum.Y.getKey());
|
|
|
- diseaseConfigService.update(updateWrapper);
|
|
|
+ diseaseConfigService.removeById(idVO.getId());
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -165,7 +183,7 @@ public class DiseaseConfigFacade {
|
|
|
UpdateWrapper<DiseaseConfig> updateWrapper = new UpdateWrapper<>();
|
|
|
updateWrapper.in("id", idListVO.getIds())
|
|
|
.set("is_deleted", IsDeleteEnum.Y.getKey());
|
|
|
- diseaseConfigService.update(updateWrapper);
|
|
|
+ diseaseConfigService.removeByIds(idListVO.getIds());
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -182,50 +200,14 @@ public class DiseaseConfigFacade {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 化验数据导入
|
|
|
+ * 数据导入
|
|
|
*
|
|
|
* @param file
|
|
|
*/
|
|
|
public void importExcel(MultipartFile file) {
|
|
|
- String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
|
- String userId = SysUserUtils.getCurrentPrincipleID();
|
|
|
- Date now = DateUtil.now();
|
|
|
List<DiseaseConfig> diseaseConfigList = ExcelUtils.importExcel(file, 0, 1, DiseaseConfig.class);
|
|
|
if (ListUtil.isNotEmpty(diseaseConfigList)) {
|
|
|
- //过滤不完整数据
|
|
|
- diseaseConfigList = diseaseConfigList
|
|
|
- .stream()
|
|
|
- .filter(i -> StringUtil.isNotBlank(i.getHisName()))
|
|
|
- .filter(i -> StringUtil.isNotBlank(i.getUniqueName()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- //验证数据是否已存在
|
|
|
- List<Long> deleteIds = Lists.newArrayList();
|
|
|
- Map<String, Map<String, Long>> configMap = getConfigMap(Long.valueOf(hospitalId), null, null);
|
|
|
- diseaseConfigList.forEach(diseaseConfig -> {
|
|
|
- if (configMap.get(diseaseConfig.getHisName()) != null
|
|
|
- && configMap.get(diseaseConfig.getHisName()).containsKey(diseaseConfig.getUniqueName())) {
|
|
|
- deleteIds.add(configMap.get(diseaseConfig.getHisName()).get(diseaseConfig.getUniqueName()));
|
|
|
- }
|
|
|
- });
|
|
|
- //删除已存在的映射关系
|
|
|
- if (ListUtil.isNotEmpty(deleteIds)) {
|
|
|
- IdListVO idListVO = new IdListVO();
|
|
|
- idListVO.setIds(deleteIds);
|
|
|
- deleteRecords(idListVO);
|
|
|
- }
|
|
|
-
|
|
|
- //保存数据
|
|
|
- diseaseConfigList.forEach(diseaseConfig -> {
|
|
|
- diseaseConfig.setIsDeleted(IsDeleteEnum.N.getKey());
|
|
|
- diseaseConfig.setHospitalId(Long.valueOf(hospitalId));
|
|
|
- if (diseaseConfig.getId() == null) {
|
|
|
- diseaseConfig.setCreator(userId);
|
|
|
- diseaseConfig.setGmtCreate(now);
|
|
|
- }
|
|
|
- diseaseConfig.setModifier(userId);
|
|
|
- diseaseConfig.setGmtModified(now);
|
|
|
- });
|
|
|
- diseaseConfigService.saveOrUpdateBatch(diseaseConfigList);
|
|
|
+ saveOrUpdateRecords(diseaseConfigList);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -274,4 +256,4 @@ public class DiseaseConfigFacade {
|
|
|
String fileName = "疾病映射.xls";
|
|
|
ExcelUtils.exportExcel(records, null, "sheet1", DiseaseConfig.class, fileName, response, 12.8f);
|
|
|
}
|
|
|
-}
|
|
|
+}
|