|
|
@@ -49,7 +49,7 @@ import java.util.stream.Collectors;
|
|
|
/**
|
|
|
* @Description: medical_ins_rule_project
|
|
|
* @Author: jeecg-boot
|
|
|
- * @Date: 2023-05-09 14:39:13
|
|
|
+ * @Date: 2023-05-09 14:39:13
|
|
|
* @Version: V1.0
|
|
|
*/
|
|
|
@Slf4j
|
|
|
@@ -87,7 +87,6 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
|
|
|
title = URLEncoder.encode(title, "UTF-8");
|
|
|
|
|
|
|
|
|
-
|
|
|
// Step.1 组装查询条件
|
|
|
QueryWrapper<MedicalInsRuleProject> queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap());
|
|
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
@@ -96,7 +95,7 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
|
|
|
String selections = request.getParameter("selections");
|
|
|
if (oConvertUtils.isNotEmpty(selections)) {
|
|
|
List<String> selectionList = Arrays.asList(selections.split(","));
|
|
|
- queryWrapper.in("id",selectionList);
|
|
|
+ queryWrapper.in("id", selectionList);
|
|
|
}
|
|
|
// Step.2 获取导出数据
|
|
|
List<MedicalInsRuleProject> exportList = this.list(queryWrapper);
|
|
|
@@ -106,10 +105,10 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
|
|
|
//此处设置的filename无效 ,前端会重更新设置一下
|
|
|
mv.addObject(NormalExcelConstants.FILE_NAME, title);
|
|
|
mv.addObject(NormalExcelConstants.CLASS, clazz);
|
|
|
- List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
|
|
|
- Map<String, Object> item = new HashMap<>();
|
|
|
- item.put("projectCode", "项目编号");
|
|
|
- maps.add(item);
|
|
|
+// List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
|
|
|
+// Map<String, Object> item = new HashMap<>();
|
|
|
+// item.put("projectCode", "项目编号");
|
|
|
+// maps.add(item);
|
|
|
|
|
|
Field[] fields = PoiPublicUtil.getClassFields(object.getClass());
|
|
|
List<String> ignoreField = new ArrayList<>();
|
|
|
@@ -135,14 +134,14 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
|
|
|
|
|
|
// mv.addObject("mapList", maps);
|
|
|
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
|
|
|
- ExportParams exportParams=new ExportParams(noCodeTitle + "模板", "导出人:" + sysUser.getRealname(), noCodeTitle);
|
|
|
+ ExportParams exportParams = new ExportParams(noCodeTitle + "模板", " " , noCodeTitle);
|
|
|
exportParams.setImageBasePath(upLoadPath);
|
|
|
// String[] array = (String[]) ignoreField.stream().map(String::valueOf).toArray();
|
|
|
String[] array1 = ignoreField.toArray(new String[0]);
|
|
|
//设置哪些字段不导出
|
|
|
exportParams.setExclusions(array1);
|
|
|
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
|
|
|
- mv.addObject(NormalExcelConstants.PARAMS,exportParams);
|
|
|
+ mv.addObject(NormalExcelConstants.PARAMS, exportParams);
|
|
|
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
|
|
|
return mv;
|
|
|
}
|
|
|
@@ -150,6 +149,8 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
|
|
|
@Transactional(readOnly = false)
|
|
|
@Override
|
|
|
public Result<?> importTemplateExcel(HttpServletRequest request, HttpServletResponse response, Class<MedicalInsRuleProject> medicalInsRuleProjectClass) {
|
|
|
+
|
|
|
+
|
|
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
|
|
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
|
|
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
|
|
@@ -160,14 +161,51 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
|
|
|
params.setHeadRows(1);
|
|
|
params.setNeedSave(true);
|
|
|
|
|
|
- List<String> ignoreHeaderList = new ArrayList<>();
|
|
|
- ignoreHeaderList.add("项目名称");
|
|
|
- ignoreHeaderList.add("医保规则ID");
|
|
|
- ignoreHeaderList.add("医保规则ID");
|
|
|
- ignoreHeaderList.add("医保主数据类型");
|
|
|
- ignoreHeaderList.add("医保主数据类型");
|
|
|
+
|
|
|
+ //需要ID
|
|
|
+ ExportRuleTitleDTO exportRuleTitle = baseMapper.selectTitleNameById(2);
|
|
|
+ if (null == exportRuleTitle) {
|
|
|
+ log.error("根据规则id={},获取不到规则表头配置");
|
|
|
+ throw new JeecgBootException("找不到规则表头");
|
|
|
+ }
|
|
|
+ List<String> reserveList = new ArrayList<>();
|
|
|
+ if (StringUtils.hasText(exportRuleTitle.getSelectedRoles())) {
|
|
|
+ String[] split = exportRuleTitle.getSelectedRoles().split(",");
|
|
|
+ if (split.length > 0) {
|
|
|
+ // 获取标头
|
|
|
+ List<MedicalDto> dictDtos = sysDictService.queryDictByKeys(new ArrayList<>(Arrays.asList(split)));
|
|
|
+ if (!CollectionUtils.isEmpty(dictDtos)) {
|
|
|
+ reserveList = dictDtos.stream().map(MedicalDto::getText).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+
|
|
|
+
|
|
|
+ Field[] fields = PoiPublicUtil.getClassFields(medicalInsRuleProjectClass);
|
|
|
+ List<String> ignoreField = new ArrayList<>();
|
|
|
+ if (fields != null) {
|
|
|
+ for (Field field : fields) {
|
|
|
+ Excel annotation = field.getAnnotation(Excel.class);
|
|
|
+ if (null != annotation) {
|
|
|
+ String name = annotation.name();
|
|
|
+ if (StringUtils.hasText(name)) {
|
|
|
+ ignoreField.add(name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.hasText(exportRuleTitle.getSelectedRoles())) {
|
|
|
+ if (!CollectionUtils.isEmpty(reserveList)) {
|
|
|
+ List<String> finalReserveList = reserveList;
|
|
|
+ ignoreField = ignoreField.stream().filter(ignoreItem -> !finalReserveList.contains(ignoreItem)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 设置忽略列表
|
|
|
- params.setIgnoreHeaderList(ignoreHeaderList);
|
|
|
+ params.setIgnoreHeaderList(ignoreField);
|
|
|
try {
|
|
|
// List<MedicalInsRuleProject> list = ExcelImportUtil.importExcel(file.getInputStream(), MedicalInsRuleProject.class, params);
|
|
|
List<MedicalInsRuleProject> list = DefaultExcelImportUtil.importExcel(file.getInputStream(), MedicalInsRuleProject.class, params);
|
|
|
@@ -183,9 +221,9 @@ public class MedicalInsRuleProjectServiceImpl extends ServiceImpl<MedicalInsRule
|
|
|
//update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
|
|
|
String msg = e.getMessage();
|
|
|
log.error(msg, e);
|
|
|
- if(msg!=null && msg.indexOf("Duplicate entry")>=0){
|
|
|
+ if (msg != null && msg.indexOf("Duplicate entry") >= 0) {
|
|
|
return Result.error("文件导入失败:有重复数据!");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return Result.error("文件导入失败:" + e.getMessage());
|
|
|
}
|
|
|
//update-end-author:taoyan date:20211124 for: 导入数据重复增加提示
|