Kaynağa Gözat

动态渲染

lenovodn 2 yıl önce
ebeveyn
işleme
0193cd4361

+ 0 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/DiagnoseItemsController.java

@@ -81,7 +81,6 @@ public class DiagnoseItemsController extends JeecgController<DiagnoseItems, IDia
 	 */
 	@AutoLog(value = "diagnose_items-添加")
 	@ApiOperation(value="diagnose_items-添加", notes="diagnose_items-添加")
-	@RequiresPermissions("medical:diagnose_items:add")
 	@PostMapping(value = "/add")
 	public Result<String> add(@RequestBody DiagnoseItems diagnoseItems) {
 		diagnoseItemsService.save(diagnoseItems);
@@ -96,7 +95,6 @@ public class DiagnoseItemsController extends JeecgController<DiagnoseItems, IDia
 	 */
 	@AutoLog(value = "diagnose_items-编辑")
 	@ApiOperation(value="diagnose_items-编辑", notes="diagnose_items-编辑")
-	@RequiresPermissions("medical:diagnose_items:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
 	public Result<String> edit(@RequestBody DiagnoseItems diagnoseItems) {
 		diagnoseItemsService.updateById(diagnoseItems);
@@ -111,7 +109,6 @@ public class DiagnoseItemsController extends JeecgController<DiagnoseItems, IDia
 	 */
 	@AutoLog(value = "diagnose_items-通过id删除")
 	@ApiOperation(value="diagnose_items-通过id删除", notes="diagnose_items-通过id删除")
-	@RequiresPermissions("medical:diagnose_items:delete")
 	@DeleteMapping(value = "/delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
 		diagnoseItemsService.removeById(id);
@@ -126,7 +123,6 @@ public class DiagnoseItemsController extends JeecgController<DiagnoseItems, IDia
 	 */
 	@AutoLog(value = "diagnose_items-批量删除")
 	@ApiOperation(value="diagnose_items-批量删除", notes="diagnose_items-批量删除")
-	@RequiresPermissions("medical:diagnose_items:deleteBatch")
 	@DeleteMapping(value = "/deleteBatch")
 	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
 		this.diagnoseItemsService.removeByIds(Arrays.asList(ids.split(",")));
@@ -156,7 +152,6 @@ public class DiagnoseItemsController extends JeecgController<DiagnoseItems, IDia
     * @param request
     * @param diagnoseItems
     */
-    @RequiresPermissions("medical:diagnose_items:exportXls")
     @RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(HttpServletRequest request, DiagnoseItems diagnoseItems) {
         return super.exportXls(request, diagnoseItems, DiagnoseItems.class, "diagnose_items");
@@ -169,7 +164,6 @@ public class DiagnoseItemsController extends JeecgController<DiagnoseItems, IDia
     * @param response
     * @return
     */
-    @RequiresPermissions("medical:diagnose_items:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
         return super.importExcel(request, response, DiagnoseItems.class);

+ 56 - 18
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MedicalInsRuleProjectServiceImpl.java

@@ -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: 导入数据重复增加提示