Explorar el Código

更新事前、事中、事后提醒表

0027005599 hace 2 años
padre
commit
9606aeb5c2
Se han modificado 88 ficheros con 6195 adiciones y 49 borrados
  1. 178 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/AdvanceWarningAuditController.java
  2. 178 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/AdvanceWarningAuditDetailController.java
  3. 178 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/AfterwardsAuditController.java
  4. 178 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/AfterwardsAuditDetailController.java
  5. 17 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/HisController.java
  6. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/MedicalInsRuleProjectController.java
  7. 178 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/MidIncidentAuditController.java
  8. 178 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/MidIncidentAuditDetailController.java
  9. 131 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdvanceWarningAudit.java
  10. 127 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdvanceWarningAuditDetail.java
  11. 28 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdvanceWarningVO.java
  12. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdviceDetails.java
  13. 23 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdviceDetailsVO.java
  14. 131 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterwardsAudit.java
  15. 127 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterwardsAuditDetail.java
  16. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/Diagnoses.java
  17. 6 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/DiagnosesVO.java
  18. 30 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MedicalInsRuleProject.java
  19. 131 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MidIncidentAudit.java
  20. 127 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MidIncidentAuditDetail.java
  21. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MidIncidentWarningVO.java
  22. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AdvanceWarningAuditDetailMapper.java
  23. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AdvanceWarningAuditMapper.java
  24. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterwardsAuditDetailMapper.java
  25. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterwardsAuditMapper.java
  26. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MedicalInsRuleProjectMapper.java
  27. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MidIncidentAuditDetailMapper.java
  28. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MidIncidentAuditMapper.java
  29. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AdvanceWarningAuditDetailMapper.xml
  30. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AdvanceWarningAuditMapper.xml
  31. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditDetailMapper.xml
  32. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditMapper.xml
  33. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditDetailMapper.xml
  34. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml
  35. 39 31
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/RuleEngine.java
  36. 80 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/plugin/InterfItemListPlugin.java
  37. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAdvanceWarningAuditDetailService.java
  38. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAdvanceWarningAuditService.java
  39. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterwardsAuditDetailService.java
  40. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterwardsAuditService.java
  41. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMedicalInsRuleProjectService.java
  42. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMidIncidentAuditDetailService.java
  43. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMidIncidentAuditService.java
  44. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AdvanceWarningAuditDetailServiceImpl.java
  45. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AdvanceWarningAuditServiceImpl.java
  46. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterwardsAuditDetailServiceImpl.java
  47. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterwardsAuditServiceImpl.java
  48. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MedicalInsRuleProjectServiceImpl.java
  49. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MidIncidentAuditDetailServiceImpl.java
  50. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MidIncidentAuditServiceImpl.java
  51. 64 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAudit.api.ts
  52. 221 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAudit.data.ts
  53. 64 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditDetail.api.ts
  54. 211 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditDetail.data.ts
  55. 173 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditDetailList.vue
  56. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditDetail_menu_insert.sql
  57. 173 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditList.vue
  58. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAudit_menu_insert.sql
  59. 64 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAudit.api.ts
  60. 221 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAudit.data.ts
  61. 64 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditDetail.api.ts
  62. 211 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditDetail.data.ts
  63. 173 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditDetailList.vue
  64. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditDetail_menu_insert.sql
  65. 173 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditList.vue
  66. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAudit_menu_insert.sql
  67. 71 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MedicalInsRuleProject.data.ts
  68. 7 7
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MedicalInsRuleProject_menu_insert.sql
  69. 64 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAudit.api.ts
  70. 221 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAudit.data.ts
  71. 64 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditDetail.api.ts
  72. 211 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditDetail.data.ts
  73. 173 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditDetailList.vue
  74. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditDetail_menu_insert.sql
  75. 173 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditList.vue
  76. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAudit_menu_insert.sql
  77. 70 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AdvanceWarningAuditDetailForm.vue
  78. 66 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AdvanceWarningAuditDetailModal.vue
  79. 70 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AdvanceWarningAuditForm.vue
  80. 66 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AdvanceWarningAuditModal.vue
  81. 70 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AfterwardsAuditDetailForm.vue
  82. 66 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AfterwardsAuditDetailModal.vue
  83. 70 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AfterwardsAuditForm.vue
  84. 66 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AfterwardsAuditModal.vue
  85. 70 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/MidIncidentAuditDetailForm.vue
  86. 66 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/MidIncidentAuditDetailModal.vue
  87. 70 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/MidIncidentAuditForm.vue
  88. 66 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/MidIncidentAuditModal.vue

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

@@ -0,0 +1,178 @@
+package org.jeecg.modules.medical.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.entity.AdvanceWarningAudit;
+import org.jeecg.modules.medical.service.IAdvanceWarningAuditService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: advance_warning_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:15
+ * @Version: V1.0
+ */
+@Api(tags="advance_warning_audit")
+@RestController
+@RequestMapping("/medical/advanceWarningAudit")
+@Slf4j
+public class AdvanceWarningAuditController extends JeecgController<AdvanceWarningAudit, IAdvanceWarningAuditService> {
+	@Autowired
+	private IAdvanceWarningAuditService advanceWarningAuditService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param advanceWarningAudit
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "advance_warning_audit-分页列表查询")
+	@ApiOperation(value="advance_warning_audit-分页列表查询", notes="advance_warning_audit-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<AdvanceWarningAudit>> queryPageList(AdvanceWarningAudit advanceWarningAudit,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<AdvanceWarningAudit> queryWrapper = QueryGenerator.initQueryWrapper(advanceWarningAudit, req.getParameterMap());
+		Page<AdvanceWarningAudit> page = new Page<AdvanceWarningAudit>(pageNo, pageSize);
+		IPage<AdvanceWarningAudit> pageList = advanceWarningAuditService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param advanceWarningAudit
+	 * @return
+	 */
+	@AutoLog(value = "advance_warning_audit-添加")
+	@ApiOperation(value="advance_warning_audit-添加", notes="advance_warning_audit-添加")
+	@RequiresPermissions("medical:advance_warning_audit:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody AdvanceWarningAudit advanceWarningAudit) {
+		advanceWarningAuditService.save(advanceWarningAudit);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param advanceWarningAudit
+	 * @return
+	 */
+	@AutoLog(value = "advance_warning_audit-编辑")
+	@ApiOperation(value="advance_warning_audit-编辑", notes="advance_warning_audit-编辑")
+	@RequiresPermissions("medical:advance_warning_audit:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody AdvanceWarningAudit advanceWarningAudit) {
+		advanceWarningAuditService.updateById(advanceWarningAudit);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "advance_warning_audit-通过id删除")
+	@ApiOperation(value="advance_warning_audit-通过id删除", notes="advance_warning_audit-通过id删除")
+	@RequiresPermissions("medical:advance_warning_audit:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		advanceWarningAuditService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "advance_warning_audit-批量删除")
+	@ApiOperation(value="advance_warning_audit-批量删除", notes="advance_warning_audit-批量删除")
+	@RequiresPermissions("medical:advance_warning_audit:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.advanceWarningAuditService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "advance_warning_audit-通过id查询")
+	@ApiOperation(value="advance_warning_audit-通过id查询", notes="advance_warning_audit-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<AdvanceWarningAudit> queryById(@RequestParam(name="id",required=true) String id) {
+		AdvanceWarningAudit advanceWarningAudit = advanceWarningAuditService.getById(id);
+		if(advanceWarningAudit==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(advanceWarningAudit);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param advanceWarningAudit
+    */
+    @RequiresPermissions("medical:advance_warning_audit:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, AdvanceWarningAudit advanceWarningAudit) {
+        return super.exportXls(request, advanceWarningAudit, AdvanceWarningAudit.class, "advance_warning_audit");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("medical:advance_warning_audit:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, AdvanceWarningAudit.class);
+    }
+
+}

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

@@ -0,0 +1,178 @@
+package org.jeecg.modules.medical.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.entity.AdvanceWarningAuditDetail;
+import org.jeecg.modules.medical.service.IAdvanceWarningAuditDetailService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: advance_warning_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:22
+ * @Version: V1.0
+ */
+@Api(tags="advance_warning_audit_detail")
+@RestController
+@RequestMapping("/medical/advanceWarningAuditDetail")
+@Slf4j
+public class AdvanceWarningAuditDetailController extends JeecgController<AdvanceWarningAuditDetail, IAdvanceWarningAuditDetailService> {
+	@Autowired
+	private IAdvanceWarningAuditDetailService advanceWarningAuditDetailService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param advanceWarningAuditDetail
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "advance_warning_audit_detail-分页列表查询")
+	@ApiOperation(value="advance_warning_audit_detail-分页列表查询", notes="advance_warning_audit_detail-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<AdvanceWarningAuditDetail>> queryPageList(AdvanceWarningAuditDetail advanceWarningAuditDetail,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<AdvanceWarningAuditDetail> queryWrapper = QueryGenerator.initQueryWrapper(advanceWarningAuditDetail, req.getParameterMap());
+		Page<AdvanceWarningAuditDetail> page = new Page<AdvanceWarningAuditDetail>(pageNo, pageSize);
+		IPage<AdvanceWarningAuditDetail> pageList = advanceWarningAuditDetailService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param advanceWarningAuditDetail
+	 * @return
+	 */
+	@AutoLog(value = "advance_warning_audit_detail-添加")
+	@ApiOperation(value="advance_warning_audit_detail-添加", notes="advance_warning_audit_detail-添加")
+	@RequiresPermissions("medical:advance_warning_audit_detail:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody AdvanceWarningAuditDetail advanceWarningAuditDetail) {
+		advanceWarningAuditDetailService.save(advanceWarningAuditDetail);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param advanceWarningAuditDetail
+	 * @return
+	 */
+	@AutoLog(value = "advance_warning_audit_detail-编辑")
+	@ApiOperation(value="advance_warning_audit_detail-编辑", notes="advance_warning_audit_detail-编辑")
+	@RequiresPermissions("medical:advance_warning_audit_detail:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody AdvanceWarningAuditDetail advanceWarningAuditDetail) {
+		advanceWarningAuditDetailService.updateById(advanceWarningAuditDetail);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "advance_warning_audit_detail-通过id删除")
+	@ApiOperation(value="advance_warning_audit_detail-通过id删除", notes="advance_warning_audit_detail-通过id删除")
+	@RequiresPermissions("medical:advance_warning_audit_detail:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		advanceWarningAuditDetailService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "advance_warning_audit_detail-批量删除")
+	@ApiOperation(value="advance_warning_audit_detail-批量删除", notes="advance_warning_audit_detail-批量删除")
+	@RequiresPermissions("medical:advance_warning_audit_detail:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.advanceWarningAuditDetailService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "advance_warning_audit_detail-通过id查询")
+	@ApiOperation(value="advance_warning_audit_detail-通过id查询", notes="advance_warning_audit_detail-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<AdvanceWarningAuditDetail> queryById(@RequestParam(name="id",required=true) String id) {
+		AdvanceWarningAuditDetail advanceWarningAuditDetail = advanceWarningAuditDetailService.getById(id);
+		if(advanceWarningAuditDetail==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(advanceWarningAuditDetail);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param advanceWarningAuditDetail
+    */
+    @RequiresPermissions("medical:advance_warning_audit_detail:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, AdvanceWarningAuditDetail advanceWarningAuditDetail) {
+        return super.exportXls(request, advanceWarningAuditDetail, AdvanceWarningAuditDetail.class, "advance_warning_audit_detail");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("medical:advance_warning_audit_detail:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, AdvanceWarningAuditDetail.class);
+    }
+
+}

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

@@ -0,0 +1,178 @@
+package org.jeecg.modules.medical.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.entity.AfterwardsAudit;
+import org.jeecg.modules.medical.service.IAfterwardsAuditService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: afterwards_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:31
+ * @Version: V1.0
+ */
+@Api(tags="afterwards_audit")
+@RestController
+@RequestMapping("/medical/afterwardsAudit")
+@Slf4j
+public class AfterwardsAuditController extends JeecgController<AfterwardsAudit, IAfterwardsAuditService> {
+	@Autowired
+	private IAfterwardsAuditService afterwardsAuditService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param afterwardsAudit
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "afterwards_audit-分页列表查询")
+	@ApiOperation(value="afterwards_audit-分页列表查询", notes="afterwards_audit-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<AfterwardsAudit>> queryPageList(AfterwardsAudit afterwardsAudit,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<AfterwardsAudit> queryWrapper = QueryGenerator.initQueryWrapper(afterwardsAudit, req.getParameterMap());
+		Page<AfterwardsAudit> page = new Page<AfterwardsAudit>(pageNo, pageSize);
+		IPage<AfterwardsAudit> pageList = afterwardsAuditService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param afterwardsAudit
+	 * @return
+	 */
+	@AutoLog(value = "afterwards_audit-添加")
+	@ApiOperation(value="afterwards_audit-添加", notes="afterwards_audit-添加")
+	@RequiresPermissions("medical:afterwards_audit:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody AfterwardsAudit afterwardsAudit) {
+		afterwardsAuditService.save(afterwardsAudit);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param afterwardsAudit
+	 * @return
+	 */
+	@AutoLog(value = "afterwards_audit-编辑")
+	@ApiOperation(value="afterwards_audit-编辑", notes="afterwards_audit-编辑")
+	@RequiresPermissions("medical:afterwards_audit:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody AfterwardsAudit afterwardsAudit) {
+		afterwardsAuditService.updateById(afterwardsAudit);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "afterwards_audit-通过id删除")
+	@ApiOperation(value="afterwards_audit-通过id删除", notes="afterwards_audit-通过id删除")
+	@RequiresPermissions("medical:afterwards_audit:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		afterwardsAuditService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "afterwards_audit-批量删除")
+	@ApiOperation(value="afterwards_audit-批量删除", notes="afterwards_audit-批量删除")
+	@RequiresPermissions("medical:afterwards_audit:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.afterwardsAuditService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "afterwards_audit-通过id查询")
+	@ApiOperation(value="afterwards_audit-通过id查询", notes="afterwards_audit-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<AfterwardsAudit> queryById(@RequestParam(name="id",required=true) String id) {
+		AfterwardsAudit afterwardsAudit = afterwardsAuditService.getById(id);
+		if(afterwardsAudit==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(afterwardsAudit);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param afterwardsAudit
+    */
+    @RequiresPermissions("medical:afterwards_audit:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, AfterwardsAudit afterwardsAudit) {
+        return super.exportXls(request, afterwardsAudit, AfterwardsAudit.class, "afterwards_audit");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("medical:afterwards_audit:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, AfterwardsAudit.class);
+    }
+
+}

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

@@ -0,0 +1,178 @@
+package org.jeecg.modules.medical.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.entity.AfterwardsAuditDetail;
+import org.jeecg.modules.medical.service.IAfterwardsAuditDetailService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: afterwards_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:49
+ * @Version: V1.0
+ */
+@Api(tags="afterwards_audit_detail")
+@RestController
+@RequestMapping("/medical/afterwardsAuditDetail")
+@Slf4j
+public class AfterwardsAuditDetailController extends JeecgController<AfterwardsAuditDetail, IAfterwardsAuditDetailService> {
+	@Autowired
+	private IAfterwardsAuditDetailService afterwardsAuditDetailService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param afterwardsAuditDetail
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "afterwards_audit_detail-分页列表查询")
+	@ApiOperation(value="afterwards_audit_detail-分页列表查询", notes="afterwards_audit_detail-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<AfterwardsAuditDetail>> queryPageList(AfterwardsAuditDetail afterwardsAuditDetail,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<AfterwardsAuditDetail> queryWrapper = QueryGenerator.initQueryWrapper(afterwardsAuditDetail, req.getParameterMap());
+		Page<AfterwardsAuditDetail> page = new Page<AfterwardsAuditDetail>(pageNo, pageSize);
+		IPage<AfterwardsAuditDetail> pageList = afterwardsAuditDetailService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param afterwardsAuditDetail
+	 * @return
+	 */
+	@AutoLog(value = "afterwards_audit_detail-添加")
+	@ApiOperation(value="afterwards_audit_detail-添加", notes="afterwards_audit_detail-添加")
+	@RequiresPermissions("medical:afterwards_audit_detail:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody AfterwardsAuditDetail afterwardsAuditDetail) {
+		afterwardsAuditDetailService.save(afterwardsAuditDetail);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param afterwardsAuditDetail
+	 * @return
+	 */
+	@AutoLog(value = "afterwards_audit_detail-编辑")
+	@ApiOperation(value="afterwards_audit_detail-编辑", notes="afterwards_audit_detail-编辑")
+	@RequiresPermissions("medical:afterwards_audit_detail:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody AfterwardsAuditDetail afterwardsAuditDetail) {
+		afterwardsAuditDetailService.updateById(afterwardsAuditDetail);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "afterwards_audit_detail-通过id删除")
+	@ApiOperation(value="afterwards_audit_detail-通过id删除", notes="afterwards_audit_detail-通过id删除")
+	@RequiresPermissions("medical:afterwards_audit_detail:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		afterwardsAuditDetailService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "afterwards_audit_detail-批量删除")
+	@ApiOperation(value="afterwards_audit_detail-批量删除", notes="afterwards_audit_detail-批量删除")
+	@RequiresPermissions("medical:afterwards_audit_detail:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.afterwardsAuditDetailService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "afterwards_audit_detail-通过id查询")
+	@ApiOperation(value="afterwards_audit_detail-通过id查询", notes="afterwards_audit_detail-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<AfterwardsAuditDetail> queryById(@RequestParam(name="id",required=true) String id) {
+		AfterwardsAuditDetail afterwardsAuditDetail = afterwardsAuditDetailService.getById(id);
+		if(afterwardsAuditDetail==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(afterwardsAuditDetail);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param afterwardsAuditDetail
+    */
+    @RequiresPermissions("medical:afterwards_audit_detail:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, AfterwardsAuditDetail afterwardsAuditDetail) {
+        return super.exportXls(request, afterwardsAuditDetail, AfterwardsAuditDetail.class, "afterwards_audit_detail");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("medical:afterwards_audit_detail:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, AfterwardsAuditDetail.class);
+    }
+
+}

+ 17 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/HisController.java

@@ -11,7 +11,9 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.medical.entity.AdvanceWarningVO;
 import org.jeecg.modules.medical.entity.Audit;
+import org.jeecg.modules.medical.entity.MidIncidentWarningVO;
 import org.jeecg.modules.medical.service.IAuditService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -67,17 +69,30 @@ public class HisController extends JeecgController<Audit, IAuditService> {
    /**
     *   事前提醒
     *
-    * @param audit
+    * @param advanceWarningVO
     * @return
     */
    @AutoLog(value = "事前提醒")
    @ApiOperation(value="事前提醒接口", notes="事前提醒接口调用")
    @PostMapping(value = "/advanceWarning")
-   public Result<String> advanceWarning(@RequestBody Audit audit) {
+   public Result<String> advanceWarning(@RequestBody AdvanceWarningVO advanceWarningVO) {
 
        return Result.OK("添加成功!");
    }
 
 
+    /**
+     *   事中提醒
+     *
+     * @param midIncidentWarningVO
+     * @return
+     */
+    @AutoLog(value = "事中提醒")
+    @ApiOperation(value="事中提醒接口", notes="事中提醒接口调用")
+    @PostMapping(value = "/midIncidentWarning")
+    public Result<String> midIncidentWarning(@RequestBody MidIncidentWarningVO midIncidentWarningVO) {
+
+        return Result.OK("添加成功!");
+    }
 
 }

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/MedicalInsRuleProjectController.java

@@ -40,7 +40,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
  /**
  * @Description: medical_ins_rule_project
  * @Author: jeecg-boot
- * @Date:   2023-05-07 16:33:12
+ * @Date:   2023-05-09 14:39:13
  * @Version: V1.0
  */
 @Api(tags="medical_ins_rule_project")

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

@@ -0,0 +1,178 @@
+package org.jeecg.modules.medical.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.entity.MidIncidentAudit;
+import org.jeecg.modules.medical.service.IMidIncidentAuditService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: mid_incident_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:57
+ * @Version: V1.0
+ */
+@Api(tags="mid_incident_audit")
+@RestController
+@RequestMapping("/medical/midIncidentAudit")
+@Slf4j
+public class MidIncidentAuditController extends JeecgController<MidIncidentAudit, IMidIncidentAuditService> {
+	@Autowired
+	private IMidIncidentAuditService midIncidentAuditService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param midIncidentAudit
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "mid_incident_audit-分页列表查询")
+	@ApiOperation(value="mid_incident_audit-分页列表查询", notes="mid_incident_audit-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<MidIncidentAudit>> queryPageList(MidIncidentAudit midIncidentAudit,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<MidIncidentAudit> queryWrapper = QueryGenerator.initQueryWrapper(midIncidentAudit, req.getParameterMap());
+		Page<MidIncidentAudit> page = new Page<MidIncidentAudit>(pageNo, pageSize);
+		IPage<MidIncidentAudit> pageList = midIncidentAuditService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param midIncidentAudit
+	 * @return
+	 */
+	@AutoLog(value = "mid_incident_audit-添加")
+	@ApiOperation(value="mid_incident_audit-添加", notes="mid_incident_audit-添加")
+	@RequiresPermissions("medical:mid_incident_audit:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody MidIncidentAudit midIncidentAudit) {
+		midIncidentAuditService.save(midIncidentAudit);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param midIncidentAudit
+	 * @return
+	 */
+	@AutoLog(value = "mid_incident_audit-编辑")
+	@ApiOperation(value="mid_incident_audit-编辑", notes="mid_incident_audit-编辑")
+	@RequiresPermissions("medical:mid_incident_audit:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody MidIncidentAudit midIncidentAudit) {
+		midIncidentAuditService.updateById(midIncidentAudit);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "mid_incident_audit-通过id删除")
+	@ApiOperation(value="mid_incident_audit-通过id删除", notes="mid_incident_audit-通过id删除")
+	@RequiresPermissions("medical:mid_incident_audit:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		midIncidentAuditService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "mid_incident_audit-批量删除")
+	@ApiOperation(value="mid_incident_audit-批量删除", notes="mid_incident_audit-批量删除")
+	@RequiresPermissions("medical:mid_incident_audit:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.midIncidentAuditService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "mid_incident_audit-通过id查询")
+	@ApiOperation(value="mid_incident_audit-通过id查询", notes="mid_incident_audit-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<MidIncidentAudit> queryById(@RequestParam(name="id",required=true) String id) {
+		MidIncidentAudit midIncidentAudit = midIncidentAuditService.getById(id);
+		if(midIncidentAudit==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(midIncidentAudit);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param midIncidentAudit
+    */
+    @RequiresPermissions("medical:mid_incident_audit:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, MidIncidentAudit midIncidentAudit) {
+        return super.exportXls(request, midIncidentAudit, MidIncidentAudit.class, "mid_incident_audit");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("medical:mid_incident_audit:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, MidIncidentAudit.class);
+    }
+
+}

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

@@ -0,0 +1,178 @@
+package org.jeecg.modules.medical.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.medical.entity.MidIncidentAuditDetail;
+import org.jeecg.modules.medical.service.IMidIncidentAuditDetailService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: mid_incident_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:06
+ * @Version: V1.0
+ */
+@Api(tags="mid_incident_audit_detail")
+@RestController
+@RequestMapping("/medical/midIncidentAuditDetail")
+@Slf4j
+public class MidIncidentAuditDetailController extends JeecgController<MidIncidentAuditDetail, IMidIncidentAuditDetailService> {
+	@Autowired
+	private IMidIncidentAuditDetailService midIncidentAuditDetailService;
+	
+	/**
+	 * 分页列表查询
+	 *
+	 * @param midIncidentAuditDetail
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "mid_incident_audit_detail-分页列表查询")
+	@ApiOperation(value="mid_incident_audit_detail-分页列表查询", notes="mid_incident_audit_detail-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<MidIncidentAuditDetail>> queryPageList(MidIncidentAuditDetail midIncidentAuditDetail,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<MidIncidentAuditDetail> queryWrapper = QueryGenerator.initQueryWrapper(midIncidentAuditDetail, req.getParameterMap());
+		Page<MidIncidentAuditDetail> page = new Page<MidIncidentAuditDetail>(pageNo, pageSize);
+		IPage<MidIncidentAuditDetail> pageList = midIncidentAuditDetailService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   添加
+	 *
+	 * @param midIncidentAuditDetail
+	 * @return
+	 */
+	@AutoLog(value = "mid_incident_audit_detail-添加")
+	@ApiOperation(value="mid_incident_audit_detail-添加", notes="mid_incident_audit_detail-添加")
+	@RequiresPermissions("medical:mid_incident_audit_detail:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody MidIncidentAuditDetail midIncidentAuditDetail) {
+		midIncidentAuditDetailService.save(midIncidentAuditDetail);
+		return Result.OK("添加成功!");
+	}
+	
+	/**
+	 *  编辑
+	 *
+	 * @param midIncidentAuditDetail
+	 * @return
+	 */
+	@AutoLog(value = "mid_incident_audit_detail-编辑")
+	@ApiOperation(value="mid_incident_audit_detail-编辑", notes="mid_incident_audit_detail-编辑")
+	@RequiresPermissions("medical:mid_incident_audit_detail:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody MidIncidentAuditDetail midIncidentAuditDetail) {
+		midIncidentAuditDetailService.updateById(midIncidentAuditDetail);
+		return Result.OK("编辑成功!");
+	}
+	
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "mid_incident_audit_detail-通过id删除")
+	@ApiOperation(value="mid_incident_audit_detail-通过id删除", notes="mid_incident_audit_detail-通过id删除")
+	@RequiresPermissions("medical:mid_incident_audit_detail:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		midIncidentAuditDetailService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+	
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "mid_incident_audit_detail-批量删除")
+	@ApiOperation(value="mid_incident_audit_detail-批量删除", notes="mid_incident_audit_detail-批量删除")
+	@RequiresPermissions("medical:mid_incident_audit_detail:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.midIncidentAuditDetailService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "mid_incident_audit_detail-通过id查询")
+	@ApiOperation(value="mid_incident_audit_detail-通过id查询", notes="mid_incident_audit_detail-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<MidIncidentAuditDetail> queryById(@RequestParam(name="id",required=true) String id) {
+		MidIncidentAuditDetail midIncidentAuditDetail = midIncidentAuditDetailService.getById(id);
+		if(midIncidentAuditDetail==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(midIncidentAuditDetail);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param midIncidentAuditDetail
+    */
+    @RequiresPermissions("medical:mid_incident_audit_detail:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, MidIncidentAuditDetail midIncidentAuditDetail) {
+        return super.exportXls(request, midIncidentAuditDetail, MidIncidentAuditDetail.class, "mid_incident_audit_detail");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("medical:mid_incident_audit_detail:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, MidIncidentAuditDetail.class);
+    }
+
+}

+ 131 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdvanceWarningAudit.java

@@ -0,0 +1,131 @@
+package org.jeecg.modules.medical.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: advance_warning_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:15
+ * @Version: V1.0
+ */
+@Data
+@TableName("advance_warning_audit")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="advance_warning_audit对象", description="advance_warning_audit")
+public class AdvanceWarningAudit implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键ID*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键ID")
+    private java.lang.Integer id;
+	/**医保规则ID*/
+	@Excel(name = "医保规则ID", width = 15)
+    @ApiModelProperty(value = "医保规则ID")
+    private java.lang.Integer medicalInsRuleInfoId;
+	/**医保规则编码*/
+	@Excel(name = "医保规则编码", width = 15)
+    @ApiModelProperty(value = "医保规则编码")
+    private java.lang.String medicalInsRuleInfoCode;
+	/**医保规则名称*/
+	@Excel(name = "医保规则名称", width = 15)
+    @ApiModelProperty(value = "医保规则名称")
+    private java.lang.String medicalInsRuleInfoName;
+	/**就诊类别;住院/门诊*/
+	@Excel(name = "就诊类别;住院/门诊", width = 15)
+    @ApiModelProperty(value = "就诊类别;住院/门诊")
+    private java.lang.String treatmentType;
+	/**警示级别*/
+	@Excel(name = "警示级别", width = 15)
+    @ApiModelProperty(value = "警示级别")
+    private java.lang.String reminderLevel;
+	/**提醒类别;事前提醒,事中预警,事后监管*/
+	@Excel(name = "提醒类别;事前提醒,事中预警,事后监管", width = 15)
+    @ApiModelProperty(value = "提醒类别;事前提醒,事中预警,事后监管")
+    private java.lang.String noticeType;
+	/**科室编码*/
+	@Excel(name = "科室编码", width = 15)
+    @ApiModelProperty(value = "科室编码")
+    private java.lang.String medicalDeptCode;
+	/**科室名称*/
+	@Excel(name = "科室名称", width = 15)
+    @ApiModelProperty(value = "科室名称")
+    private java.lang.String medicalDeptName;
+	/**医生姓名*/
+	@Excel(name = "医生姓名", width = 15)
+    @ApiModelProperty(value = "医生姓名")
+    private java.lang.String dockerName;
+	/**主诊医师编码*/
+	@Excel(name = "主诊医师编码", width = 15)
+    @ApiModelProperty(value = "主诊医师编码")
+    private java.lang.String doctorId;
+	/**个人编号*/
+	@Excel(name = "个人编号", width = 15)
+    @ApiModelProperty(value = "个人编号")
+    private java.lang.String patientId;
+	/**患者姓名*/
+	@Excel(name = "患者姓名", width = 15)
+    @ApiModelProperty(value = "患者姓名")
+    private java.lang.String patientName;
+	/**住院号/门诊号*/
+	@Excel(name = "住院号/门诊号", width = 15)
+    @ApiModelProperty(value = "住院号/门诊号")
+    private java.lang.String outpatientNumber;
+	/**医嘱号/处方号*/
+	@Excel(name = "医嘱号/处方号", width = 15)
+    @ApiModelProperty(value = "医嘱号/处方号")
+    private java.lang.String prescriptionNumber;
+	/**反馈结果*/
+	@Excel(name = "反馈结果", width = 15)
+    @ApiModelProperty(value = "反馈结果")
+    private java.lang.String feedbackResult;
+	/**反馈编码*/
+	@Excel(name = "反馈编码", width = 15)
+    @ApiModelProperty(value = "反馈编码")
+    private java.lang.String feedbackCode;
+	/**上个审核人员*/
+	@Excel(name = "上个审核人员", width = 15)
+    @ApiModelProperty(value = "上个审核人员")
+    private java.lang.String preCheckBy;
+	/**审核人*/
+	@Excel(name = "审核人", width = 15)
+    @ApiModelProperty(value = "审核人")
+    private java.lang.String checkBy;
+	/**审核状态*/
+	@Excel(name = "审核状态", width = 15)
+    @ApiModelProperty(value = "审核状态")
+    private java.lang.String checkState;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updateTime;
+}

+ 127 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdvanceWarningAuditDetail.java

@@ -0,0 +1,127 @@
+package org.jeecg.modules.medical.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: advance_warning_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:22
+ * @Version: V1.0
+ */
+@Data
+@TableName("advance_warning_audit_detail")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="advance_warning_audit_detail对象", description="advance_warning_audit_detail")
+public class AdvanceWarningAuditDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键ID*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键ID")
+    private java.lang.Integer id;
+	/**医保规则ID*/
+	@Excel(name = "医保规则ID", width = 15)
+    @ApiModelProperty(value = "医保规则ID")
+    private java.lang.Integer medicalInsRuleInfoId;
+	/**医保规则编码*/
+	@Excel(name = "医保规则编码", width = 15)
+    @ApiModelProperty(value = "医保规则编码")
+    private java.lang.String medicalInsRuleInfoCode;
+	/**医保规则名称*/
+	@Excel(name = "医保规则名称", width = 15)
+    @ApiModelProperty(value = "医保规则名称")
+    private java.lang.String medicalInsRuleInfoName;
+	/**就诊类别;住院/门诊*/
+	@Excel(name = "就诊类别;住院/门诊", width = 15)
+    @ApiModelProperty(value = "就诊类别;住院/门诊")
+    private java.lang.String treatmentType;
+	/**警示级别*/
+	@Excel(name = "警示级别", width = 15)
+    @ApiModelProperty(value = "警示级别")
+    private java.lang.String reminderLevel;
+	/**提醒类别;事前提醒,事中预警,事后监管*/
+	@Excel(name = "提醒类别;事前提醒,事中预警,事后监管", width = 15)
+    @ApiModelProperty(value = "提醒类别;事前提醒,事中预警,事后监管")
+    private java.lang.String noticeType;
+	/**科室编码*/
+	@Excel(name = "科室编码", width = 15)
+    @ApiModelProperty(value = "科室编码")
+    private java.lang.String medicalDeptCode;
+	/**科室名称*/
+	@Excel(name = "科室名称", width = 15)
+    @ApiModelProperty(value = "科室名称")
+    private java.lang.String medicalDeptName;
+	/**医生姓名*/
+	@Excel(name = "医生姓名", width = 15)
+    @ApiModelProperty(value = "医生姓名")
+    private java.lang.String dockerName;
+	/**主诊医师编码*/
+	@Excel(name = "主诊医师编码", width = 15)
+    @ApiModelProperty(value = "主诊医师编码")
+    private java.lang.String doctorId;
+	/**个人编号*/
+	@Excel(name = "个人编号", width = 15)
+    @ApiModelProperty(value = "个人编号")
+    private java.lang.String patientId;
+	/**患者姓名*/
+	@Excel(name = "患者姓名", width = 15)
+    @ApiModelProperty(value = "患者姓名")
+    private java.lang.String patientName;
+	/**住院号/门诊号*/
+	@Excel(name = "住院号/门诊号", width = 15)
+    @ApiModelProperty(value = "住院号/门诊号")
+    private java.lang.String outpatientNumber;
+	/**医嘱号/处方号*/
+	@Excel(name = "医嘱号/处方号", width = 15)
+    @ApiModelProperty(value = "医嘱号/处方号")
+    private java.lang.String prescriptionNumber;
+	/**项目类型*/
+	@Excel(name = "项目类型", width = 15)
+    @ApiModelProperty(value = "项目类型")
+    private java.lang.String projectType;
+	/**项目编码*/
+	@Excel(name = "项目编码", width = 15)
+    @ApiModelProperty(value = "项目编码")
+    private java.lang.String proejctCode;
+	/**项目名称*/
+	@Excel(name = "项目名称", width = 15)
+    @ApiModelProperty(value = "项目名称")
+    private java.lang.String proejctName;
+	/**规则处理结果*/
+	@Excel(name = "规则处理结果", width = 15)
+    @ApiModelProperty(value = "规则处理结果")
+    private java.lang.String description;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updateTime;
+}

+ 28 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdvanceWarningVO.java

@@ -0,0 +1,28 @@
+package org.jeecg.modules.medical.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 事前提醒接口类
+ * @author 林栋
+ */
+@Data
+@ApiModel(value="事前提醒接口参数类", description="advanceWarning")
+public class AdvanceWarningVO {
+//    病人ID
+
+    private String patient_id;
+
+//    科室编码
+
+    private String medical_dept_code;
+//    科室名称
+
+    private String medical_dept_name;
+//    医师编号
+
+    private String doctor_code;
+//    医师姓名
+    private String doctor_name;
+}

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdviceDetails.java

@@ -33,7 +33,7 @@ public class AdviceDetails implements Serializable {
     private static final long serialVersionUID = 1L;
 
 	/**主键ID*/
-	@TableId(type = IdType.ASSIGN_ID)
+	@TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "主键ID")
     private java.lang.Integer id;
 	/**项目编码;正常情况必填,特殊情况,如生化全套等没有医保编码,可放空。*/

+ 23 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AdviceDetailsVO.java

@@ -0,0 +1,23 @@
+package org.jeecg.modules.medical.entity;
+
+/**
+ * 医嘱明细接口入参
+ */
+public class AdviceDetailsVO {
+    private String project_code;		//char	项目编码,正常情况必填,特殊情况,如生化全套等没有医保编码,可放空。
+    private String hospital_code;//	true	char	院内项目编码
+    private String project_name;//	true	char	项目名称
+    private String recipe_no;//		char	处方号
+    private String invoice_project;//	true	char	发票项目编码
+    private String dose_form;//		char	剂型
+    private String medical_specification;//		char	规格
+    private Double price;//	true	float	单价,必须使用数值型,如”12.5”
+    private Integer medical_number;//	true	float	数量,必须使用数值型,如”10”
+    private String dose_unit;//	true	char	单位
+    private Double amount;//	true	float	金额,必须使用数值型,如”50.5”
+    private Integer use_day;//		float	用药天数(项目为药品时非空),医嘱服用该药品天数,必须使用数值型,如”15”
+    private Integer single_dose_number;//		float	单次用药量(项目为药品时非空),配合下一个字段的单位,如 50 mg,必须使用数值型,如”50”
+    private String single_dose_unit;//		char	单次用药量剂量单位(项目为药品时非空)
+    private Integer dose_day;//		float	药量天数(项目为药品时非空),依据医嘱服药要求,所配药品患者可以服用的天数,必须使用数值型,如”5”
+    private String take_frequence;//		char	服用频次
+}

+ 131 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterwardsAudit.java

@@ -0,0 +1,131 @@
+package org.jeecg.modules.medical.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: afterwards_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:31
+ * @Version: V1.0
+ */
+@Data
+@TableName("afterwards_audit")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="afterwards_audit对象", description="afterwards_audit")
+public class AfterwardsAudit implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键ID*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键ID")
+    private java.lang.Integer id;
+	/**医保规则ID*/
+	@Excel(name = "医保规则ID", width = 15)
+    @ApiModelProperty(value = "医保规则ID")
+    private java.lang.Integer medicalInsRuleInfoId;
+	/**医保规则编码*/
+	@Excel(name = "医保规则编码", width = 15)
+    @ApiModelProperty(value = "医保规则编码")
+    private java.lang.String medicalInsRuleInfoCode;
+	/**医保规则名称*/
+	@Excel(name = "医保规则名称", width = 15)
+    @ApiModelProperty(value = "医保规则名称")
+    private java.lang.String medicalInsRuleInfoName;
+	/**就诊类别;住院/门诊*/
+	@Excel(name = "就诊类别;住院/门诊", width = 15)
+    @ApiModelProperty(value = "就诊类别;住院/门诊")
+    private java.lang.String treatmentType;
+	/**警示级别*/
+	@Excel(name = "警示级别", width = 15)
+    @ApiModelProperty(value = "警示级别")
+    private java.lang.String reminderLevel;
+	/**提醒类别;事前提醒,事中预警,事后监管*/
+	@Excel(name = "提醒类别;事前提醒,事中预警,事后监管", width = 15)
+    @ApiModelProperty(value = "提醒类别;事前提醒,事中预警,事后监管")
+    private java.lang.String noticeType;
+	/**科室编码*/
+	@Excel(name = "科室编码", width = 15)
+    @ApiModelProperty(value = "科室编码")
+    private java.lang.String medicalDeptCode;
+	/**科室名称*/
+	@Excel(name = "科室名称", width = 15)
+    @ApiModelProperty(value = "科室名称")
+    private java.lang.String medicalDeptName;
+	/**医生姓名*/
+	@Excel(name = "医生姓名", width = 15)
+    @ApiModelProperty(value = "医生姓名")
+    private java.lang.String dockerName;
+	/**主诊医师编码*/
+	@Excel(name = "主诊医师编码", width = 15)
+    @ApiModelProperty(value = "主诊医师编码")
+    private java.lang.String doctorId;
+	/**个人编号*/
+	@Excel(name = "个人编号", width = 15)
+    @ApiModelProperty(value = "个人编号")
+    private java.lang.String patientId;
+	/**患者姓名*/
+	@Excel(name = "患者姓名", width = 15)
+    @ApiModelProperty(value = "患者姓名")
+    private java.lang.String patientName;
+	/**住院号/门诊号*/
+	@Excel(name = "住院号/门诊号", width = 15)
+    @ApiModelProperty(value = "住院号/门诊号")
+    private java.lang.String outpatientNumber;
+	/**医嘱号/处方号*/
+	@Excel(name = "医嘱号/处方号", width = 15)
+    @ApiModelProperty(value = "医嘱号/处方号")
+    private java.lang.String prescriptionNumber;
+	/**反馈结果*/
+	@Excel(name = "反馈结果", width = 15)
+    @ApiModelProperty(value = "反馈结果")
+    private java.lang.String feedbackResult;
+	/**反馈编码*/
+	@Excel(name = "反馈编码", width = 15)
+    @ApiModelProperty(value = "反馈编码")
+    private java.lang.String feedbackCode;
+	/**上个审核人员*/
+	@Excel(name = "上个审核人员", width = 15)
+    @ApiModelProperty(value = "上个审核人员")
+    private java.lang.String preCheckBy;
+	/**审核人*/
+	@Excel(name = "审核人", width = 15)
+    @ApiModelProperty(value = "审核人")
+    private java.lang.String checkBy;
+	/**审核状态*/
+	@Excel(name = "审核状态", width = 15)
+    @ApiModelProperty(value = "审核状态")
+    private java.lang.String checkState;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updateTime;
+}

+ 127 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterwardsAuditDetail.java

@@ -0,0 +1,127 @@
+package org.jeecg.modules.medical.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: afterwards_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:49
+ * @Version: V1.0
+ */
+@Data
+@TableName("afterwards_audit_detail")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="afterwards_audit_detail对象", description="afterwards_audit_detail")
+public class AfterwardsAuditDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键ID*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键ID")
+    private java.lang.Integer id;
+	/**医保规则ID*/
+	@Excel(name = "医保规则ID", width = 15)
+    @ApiModelProperty(value = "医保规则ID")
+    private java.lang.Integer medicalInsRuleInfoId;
+	/**医保规则编码*/
+	@Excel(name = "医保规则编码", width = 15)
+    @ApiModelProperty(value = "医保规则编码")
+    private java.lang.String medicalInsRuleInfoCode;
+	/**医保规则名称*/
+	@Excel(name = "医保规则名称", width = 15)
+    @ApiModelProperty(value = "医保规则名称")
+    private java.lang.String medicalInsRuleInfoName;
+	/**就诊类别;住院/门诊*/
+	@Excel(name = "就诊类别;住院/门诊", width = 15)
+    @ApiModelProperty(value = "就诊类别;住院/门诊")
+    private java.lang.String treatmentType;
+	/**警示级别*/
+	@Excel(name = "警示级别", width = 15)
+    @ApiModelProperty(value = "警示级别")
+    private java.lang.String reminderLevel;
+	/**提醒类别;事前提醒,事中预警,事后监管*/
+	@Excel(name = "提醒类别;事前提醒,事中预警,事后监管", width = 15)
+    @ApiModelProperty(value = "提醒类别;事前提醒,事中预警,事后监管")
+    private java.lang.String noticeType;
+	/**科室编码*/
+	@Excel(name = "科室编码", width = 15)
+    @ApiModelProperty(value = "科室编码")
+    private java.lang.String medicalDeptCode;
+	/**科室名称*/
+	@Excel(name = "科室名称", width = 15)
+    @ApiModelProperty(value = "科室名称")
+    private java.lang.String medicalDeptName;
+	/**医生姓名*/
+	@Excel(name = "医生姓名", width = 15)
+    @ApiModelProperty(value = "医生姓名")
+    private java.lang.String dockerName;
+	/**主诊医师编码*/
+	@Excel(name = "主诊医师编码", width = 15)
+    @ApiModelProperty(value = "主诊医师编码")
+    private java.lang.String doctorId;
+	/**个人编号*/
+	@Excel(name = "个人编号", width = 15)
+    @ApiModelProperty(value = "个人编号")
+    private java.lang.String patientId;
+	/**患者姓名*/
+	@Excel(name = "患者姓名", width = 15)
+    @ApiModelProperty(value = "患者姓名")
+    private java.lang.String patientName;
+	/**住院号/门诊号*/
+	@Excel(name = "住院号/门诊号", width = 15)
+    @ApiModelProperty(value = "住院号/门诊号")
+    private java.lang.String outpatientNumber;
+	/**医嘱号/处方号*/
+	@Excel(name = "医嘱号/处方号", width = 15)
+    @ApiModelProperty(value = "医嘱号/处方号")
+    private java.lang.String prescriptionNumber;
+	/**项目类型*/
+	@Excel(name = "项目类型", width = 15)
+    @ApiModelProperty(value = "项目类型")
+    private java.lang.String projectType;
+	/**项目编码*/
+	@Excel(name = "项目编码", width = 15)
+    @ApiModelProperty(value = "项目编码")
+    private java.lang.String proejctCode;
+	/**项目名称*/
+	@Excel(name = "项目名称", width = 15)
+    @ApiModelProperty(value = "项目名称")
+    private java.lang.String proejctName;
+	/**规则处理结果*/
+	@Excel(name = "规则处理结果", width = 15)
+    @ApiModelProperty(value = "规则处理结果")
+    private java.lang.String description;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updateTime;
+}

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/Diagnoses.java

@@ -33,7 +33,7 @@ public class Diagnoses implements Serializable {
     private static final long serialVersionUID = 1L;
 
 	/**主键ID*/
-	@TableId(type = IdType.ASSIGN_ID)
+	@TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "主键ID")
     private java.lang.Integer id;
 	/**诊断名称*/

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

@@ -0,0 +1,6 @@
+package org.jeecg.modules.medical.entity;
+
+public class DiagnosesVO {
+    private String diagnose_code;    //true	char	诊断代码(使用医保下发诊断代码(ICD-10))
+    private String diagnose_desc;    //true	char	诊断描述
+}

+ 30 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MedicalInsRuleProject.java

@@ -21,7 +21,7 @@ import lombok.experimental.Accessors;
 /**
  * @Description: medical_ins_rule_project
  * @Author: jeecg-boot
- * @Date:   2023-05-07 16:33:12
+ * @Date:   2023-05-09 14:39:13
  * @Version: V1.0
  */
 @Data
@@ -39,7 +39,7 @@ public class MedicalInsRuleProject implements Serializable {
 	/**医保规则ID*/
 	@Excel(name = "医保规则ID", width = 15)
     @ApiModelProperty(value = "医保规则ID")
-    private java.lang.String medicineInsRuleInfoId;
+    private java.lang.Integer medicineInsRuleInfoId;
 	/**医保主数据类型;MEDICINE(药品主数据表)、CONSUMABLE_METERIAL(耗材主数据表)、DIAGNOSIS_TREATMENT(诊疗主数据表)、DIAGNOSIS(诊断主数据表)、OPERATIVE(手术主数据表)*/
 	@Excel(name = "医保主数据类型;MEDICINE(药品主数据表)、CONSUMABLE_METERIAL(耗材主数据表)、DIAGNOSIS_TREATMENT(诊疗主数据表)、DIAGNOSIS(诊断主数据表)、OPERATIVE(手术主数据表)", width = 15)
     @ApiModelProperty(value = "医保主数据类型;MEDICINE(药品主数据表)、CONSUMABLE_METERIAL(耗材主数据表)、DIAGNOSIS_TREATMENT(诊疗主数据表)、DIAGNOSIS(诊断主数据表)、OPERATIVE(手术主数据表)")
@@ -64,6 +64,34 @@ public class MedicalInsRuleProject implements Serializable {
 	@Excel(name = "关联项目名称", width = 15)
     @ApiModelProperty(value = "关联项目名称")
     private java.lang.String correlationProjectName;
+	/**收费等级;01 甲类 02 乙类 03 丙类 04 可报丙类*/
+	@Excel(name = "收费等级;01 甲类 02 乙类 03 丙类 04 可报丙类", width = 15)
+    @ApiModelProperty(value = "收费等级;01 甲类 02 乙类 03 丙类 04 可报丙类")
+    private java.lang.String changeClass;
+	/**年龄;*/
+	@Excel(name = "年龄;", width = 15)
+    @ApiModelProperty(value = "年龄;")
+    private java.lang.Integer age;
+	/**医疗机构等级;*/
+	@Excel(name = "医疗机构等级;", width = 15)
+    @ApiModelProperty(value = "医疗机构等级;")
+    private java.lang.String medicalInsLevel;
+	/**医师级别;*/
+	@Excel(name = "医师级别;", width = 15)
+    @ApiModelProperty(value = "医师级别;")
+    private java.lang.String doctorLevel;
+	/**参保类型;*/
+	@Excel(name = "参保类型;", width = 15)
+    @ApiModelProperty(value = "参保类型;")
+    private java.lang.String insType;
+	/**科室;*/
+	@Excel(name = "科室;", width = 15)
+    @ApiModelProperty(value = "科室;")
+    private java.lang.String medicalDeptCode;
+	/**用药天数;*/
+	@Excel(name = "用药天数;", width = 15)
+    @ApiModelProperty(value = "用药天数;")
+    private java.lang.String doseDay;
 	/**状态*/
 	@Excel(name = "状态", width = 15)
     @ApiModelProperty(value = "状态")

+ 131 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MidIncidentAudit.java

@@ -0,0 +1,131 @@
+package org.jeecg.modules.medical.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: mid_incident_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:57
+ * @Version: V1.0
+ */
+@Data
+@TableName("mid_incident_audit")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="mid_incident_audit对象", description="mid_incident_audit")
+public class MidIncidentAudit implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键ID*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键ID")
+    private java.lang.Integer id;
+	/**医保规则ID*/
+	@Excel(name = "医保规则ID", width = 15)
+    @ApiModelProperty(value = "医保规则ID")
+    private java.lang.Integer medicalInsRuleInfoId;
+	/**医保规则编码*/
+	@Excel(name = "医保规则编码", width = 15)
+    @ApiModelProperty(value = "医保规则编码")
+    private java.lang.String medicalInsRuleInfoCode;
+	/**医保规则名称*/
+	@Excel(name = "医保规则名称", width = 15)
+    @ApiModelProperty(value = "医保规则名称")
+    private java.lang.String medicalInsRuleInfoName;
+	/**就诊类别;住院/门诊*/
+	@Excel(name = "就诊类别;住院/门诊", width = 15)
+    @ApiModelProperty(value = "就诊类别;住院/门诊")
+    private java.lang.String treatmentType;
+	/**警示级别*/
+	@Excel(name = "警示级别", width = 15)
+    @ApiModelProperty(value = "警示级别")
+    private java.lang.String reminderLevel;
+	/**提醒类别;事前提醒,事中预警,事后监管*/
+	@Excel(name = "提醒类别;事前提醒,事中预警,事后监管", width = 15)
+    @ApiModelProperty(value = "提醒类别;事前提醒,事中预警,事后监管")
+    private java.lang.String noticeType;
+	/**科室编码*/
+	@Excel(name = "科室编码", width = 15)
+    @ApiModelProperty(value = "科室编码")
+    private java.lang.String medicalDeptCode;
+	/**科室名称*/
+	@Excel(name = "科室名称", width = 15)
+    @ApiModelProperty(value = "科室名称")
+    private java.lang.String medicalDeptName;
+	/**医生姓名*/
+	@Excel(name = "医生姓名", width = 15)
+    @ApiModelProperty(value = "医生姓名")
+    private java.lang.String dockerName;
+	/**主诊医师编码*/
+	@Excel(name = "主诊医师编码", width = 15)
+    @ApiModelProperty(value = "主诊医师编码")
+    private java.lang.String doctorId;
+	/**个人编号*/
+	@Excel(name = "个人编号", width = 15)
+    @ApiModelProperty(value = "个人编号")
+    private java.lang.String patientId;
+	/**患者姓名*/
+	@Excel(name = "患者姓名", width = 15)
+    @ApiModelProperty(value = "患者姓名")
+    private java.lang.String patientName;
+	/**住院号/门诊号*/
+	@Excel(name = "住院号/门诊号", width = 15)
+    @ApiModelProperty(value = "住院号/门诊号")
+    private java.lang.String outpatientNumber;
+	/**医嘱号/处方号*/
+	@Excel(name = "医嘱号/处方号", width = 15)
+    @ApiModelProperty(value = "医嘱号/处方号")
+    private java.lang.String prescriptionNumber;
+	/**反馈结果*/
+	@Excel(name = "反馈结果", width = 15)
+    @ApiModelProperty(value = "反馈结果")
+    private java.lang.String feedbackResult;
+	/**反馈编码*/
+	@Excel(name = "反馈编码", width = 15)
+    @ApiModelProperty(value = "反馈编码")
+    private java.lang.String feedbackCode;
+	/**上个审核人员*/
+	@Excel(name = "上个审核人员", width = 15)
+    @ApiModelProperty(value = "上个审核人员")
+    private java.lang.String preCheckBy;
+	/**审核人*/
+	@Excel(name = "审核人", width = 15)
+    @ApiModelProperty(value = "审核人")
+    private java.lang.String checkBy;
+	/**审核状态*/
+	@Excel(name = "审核状态", width = 15)
+    @ApiModelProperty(value = "审核状态")
+    private java.lang.String checkState;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updateTime;
+}

+ 127 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MidIncidentAuditDetail.java

@@ -0,0 +1,127 @@
+package org.jeecg.modules.medical.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: mid_incident_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:06
+ * @Version: V1.0
+ */
+@Data
+@TableName("mid_incident_audit_detail")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="mid_incident_audit_detail对象", description="mid_incident_audit_detail")
+public class MidIncidentAuditDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键ID*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键ID")
+    private java.lang.Integer id;
+	/**医保规则ID*/
+	@Excel(name = "医保规则ID", width = 15)
+    @ApiModelProperty(value = "医保规则ID")
+    private java.lang.Integer medicalInsRuleInfoId;
+	/**医保规则编码*/
+	@Excel(name = "医保规则编码", width = 15)
+    @ApiModelProperty(value = "医保规则编码")
+    private java.lang.String medicalInsRuleInfoCode;
+	/**医保规则名称*/
+	@Excel(name = "医保规则名称", width = 15)
+    @ApiModelProperty(value = "医保规则名称")
+    private java.lang.String medicalInsRuleInfoName;
+	/**就诊类别;住院/门诊*/
+	@Excel(name = "就诊类别;住院/门诊", width = 15)
+    @ApiModelProperty(value = "就诊类别;住院/门诊")
+    private java.lang.String treatmentType;
+	/**警示级别*/
+	@Excel(name = "警示级别", width = 15)
+    @ApiModelProperty(value = "警示级别")
+    private java.lang.String reminderLevel;
+	/**提醒类别;事前提醒,事中预警,事后监管*/
+	@Excel(name = "提醒类别;事前提醒,事中预警,事后监管", width = 15)
+    @ApiModelProperty(value = "提醒类别;事前提醒,事中预警,事后监管")
+    private java.lang.String noticeType;
+	/**科室编码*/
+	@Excel(name = "科室编码", width = 15)
+    @ApiModelProperty(value = "科室编码")
+    private java.lang.String medicalDeptCode;
+	/**科室名称*/
+	@Excel(name = "科室名称", width = 15)
+    @ApiModelProperty(value = "科室名称")
+    private java.lang.String medicalDeptName;
+	/**医生姓名*/
+	@Excel(name = "医生姓名", width = 15)
+    @ApiModelProperty(value = "医生姓名")
+    private java.lang.String dockerName;
+	/**主诊医师编码*/
+	@Excel(name = "主诊医师编码", width = 15)
+    @ApiModelProperty(value = "主诊医师编码")
+    private java.lang.String doctorId;
+	/**个人编号*/
+	@Excel(name = "个人编号", width = 15)
+    @ApiModelProperty(value = "个人编号")
+    private java.lang.String patientId;
+	/**患者姓名*/
+	@Excel(name = "患者姓名", width = 15)
+    @ApiModelProperty(value = "患者姓名")
+    private java.lang.String patientName;
+	/**住院号/门诊号*/
+	@Excel(name = "住院号/门诊号", width = 15)
+    @ApiModelProperty(value = "住院号/门诊号")
+    private java.lang.String outpatientNumber;
+	/**医嘱号/处方号*/
+	@Excel(name = "医嘱号/处方号", width = 15)
+    @ApiModelProperty(value = "医嘱号/处方号")
+    private java.lang.String prescriptionNumber;
+	/**项目类型*/
+	@Excel(name = "项目类型", width = 15)
+    @ApiModelProperty(value = "项目类型")
+    private java.lang.String projectType;
+	/**项目编码*/
+	@Excel(name = "项目编码", width = 15)
+    @ApiModelProperty(value = "项目编码")
+    private java.lang.String proejctCode;
+	/**项目名称*/
+	@Excel(name = "项目名称", width = 15)
+    @ApiModelProperty(value = "项目名称")
+    private java.lang.String proejctName;
+	/**规则处理结果*/
+	@Excel(name = "规则处理结果", width = 15)
+    @ApiModelProperty(value = "规则处理结果")
+    private java.lang.String description;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private java.lang.String createBy;
+	/**创建时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private java.lang.String updateBy;
+	/**更新时间*/
+	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新时间")
+    private java.util.Date updateTime;
+}

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MidIncidentWarningVO.java

@@ -0,0 +1,26 @@
+package org.jeecg.modules.medical.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 事中预警接口类
+ * @author 林栋
+ */
+@Data
+@ApiModel(value="事中预警接口参数类", description="midIncidentWarning")
+public class MidIncidentWarningVO {
+    private String visit_no;//门诊挂号号/住院登记号
+    private String medical_dept_code;//科室编码
+    private String medical_dept_name;//科室名称
+    private String visit_type;//就诊类型(1住院、2门诊)
+    private String in_hosp_date;//入院日期(就诊类型是住院的非空,格式:YYYYMMDD)
+    private String patient_id;//病人ID
+    private List<DiagnosesVO> diagnoses;	//true	Array	诊断信息(多项)(内容说明参见Diagnoses(诊断信息说明)
+    private String doctor_advice_no;//true	char	处方流水号(医院内部唯一号)
+    private String doctor_code;//	true	char	医师编号
+    private String doctor_name;//	true	char	医师姓名
+    private List<AdviceDetailsVO> advice_details;//	true	Array	医嘱明细信息(多项)(内容说明参见advice_details(医嘱明细信息说明))
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AdvanceWarningAuditDetailMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.medical.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.medical.entity.AdvanceWarningAuditDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: advance_warning_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:22
+ * @Version: V1.0
+ */
+public interface AdvanceWarningAuditDetailMapper extends BaseMapper<AdvanceWarningAuditDetail> {
+
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AdvanceWarningAuditMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.medical.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.medical.entity.AdvanceWarningAudit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: advance_warning_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:15
+ * @Version: V1.0
+ */
+public interface AdvanceWarningAuditMapper extends BaseMapper<AdvanceWarningAudit> {
+
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterwardsAuditDetailMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.medical.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.medical.entity.AfterwardsAuditDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: afterwards_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:49
+ * @Version: V1.0
+ */
+public interface AfterwardsAuditDetailMapper extends BaseMapper<AfterwardsAuditDetail> {
+
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/AfterwardsAuditMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.medical.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.medical.entity.AfterwardsAudit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: afterwards_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:31
+ * @Version: V1.0
+ */
+public interface AfterwardsAuditMapper extends BaseMapper<AfterwardsAudit> {
+
+}

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MedicalInsRuleProjectMapper.java

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 /**
  * @Description: medical_ins_rule_project
  * @Author: jeecg-boot
- * @Date:   2023-05-07 16:33:13
+ * @Date:   2023-05-09 14:39:13
  * @Version: V1.0
  */
 public interface MedicalInsRuleProjectMapper extends BaseMapper<MedicalInsRuleProject> {

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MidIncidentAuditDetailMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.medical.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.medical.entity.MidIncidentAuditDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: mid_incident_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:06
+ * @Version: V1.0
+ */
+public interface MidIncidentAuditDetailMapper extends BaseMapper<MidIncidentAuditDetail> {
+
+}

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MidIncidentAuditMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.medical.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.medical.entity.MidIncidentAudit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: mid_incident_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:57
+ * @Version: V1.0
+ */
+public interface MidIncidentAuditMapper extends BaseMapper<MidIncidentAudit> {
+
+}

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AdvanceWarningAuditDetailMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.medical.mapper.AdvanceWarningAuditDetailMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AdvanceWarningAuditMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.medical.mapper.AdvanceWarningAuditMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditDetailMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.medical.mapper.AfterwardsAuditDetailMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/AfterwardsAuditMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.medical.mapper.AfterwardsAuditMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditDetailMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.medical.mapper.MidIncidentAuditDetailMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.medical.mapper.MidIncidentAuditMapper">
+
+</mapper>

+ 39 - 31
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/RuleEngine.java

@@ -7,12 +7,12 @@ import org.apache.commons.lang.StringUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.modules.medical.Constant;
-import org.jeecg.modules.medical.EnchanceTypeEnum;
 import org.jeecg.modules.medical.entity.FactorEnchance;
 import org.jeecg.modules.medical.entity.MedicalInsRuleInfo;
 import org.jeecg.modules.medical.entity.MedicalInsRuleProject;
 import org.jeecg.modules.medical.entity.RuleAttr;
 import org.jeecg.modules.medical.entity.RuleFactorRela;
+import org.jeecg.modules.medical.ruleengine.plugin.InterfItemListPlugin;
 import org.jeecg.modules.medical.service.IEventAttrService;
 import org.jeecg.modules.medical.service.IFactorAttrRelaService;
 import org.jeecg.modules.medical.service.IFactorCondRelaService;
@@ -21,10 +21,8 @@ import org.jeecg.modules.medical.service.IMedicalInsRuleInfoService;
 import org.jeecg.modules.medical.service.IMedicalInsRuleProjectService;
 import org.jeecg.modules.medical.service.IRuleAttrService;
 import org.jeecg.modules.medical.service.IRuleFactorRelaService;
-import org.jeecg.modules.system.entity.SysPermission;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.Conditional;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
@@ -61,6 +59,8 @@ public class RuleEngine {
 
     @Autowired
     private RedisTemplate redisTemplate;
+    @Autowired
+    InterfItemListPlugin interfItemListPlugin;
 
     @PostConstruct
     public void initMedicalInsRule() {
@@ -76,13 +76,13 @@ public class RuleEngine {
          * 后续提醒通过redis加载id,把id传入规则引擎,迅速调用对应规则
          */
         List<Integer> medicalInsRuleInfoIdList = new ArrayList<>();
-        Map<Integer,MedicalInsRuleInfo> medicalMap = new HashMap<>();
+        Map<Integer, MedicalInsRuleInfo> medicalMap = new HashMap<>();
         for (MedicalInsRuleInfo medicalInsRuleInfo : medicalInsRuleInfoList) {
             medicalMap.put(medicalInsRuleInfo.getId(), medicalInsRuleInfo);
             if (Constant.TREATMEN_TYPE_ADVANCE_WARNING.equals(medicalInsRuleInfo.getCallScenario())) {
                 redisTemplate.opsForHash().put(Constant.MEDICAL_RULE_CACHE_KEY + "_" + Constant.TREATMEN_TYPE_ADVANCE_WARNING,
                         medicalInsRuleInfo.getId(), medicalInsRuleInfo.getDegreeSuspicion());
-            } else if(Constant.TREATMEN_TYPE_MID_INCIDENT_WARNING.equals(medicalInsRuleInfo.getCallScenario())){
+            } else if (Constant.TREATMEN_TYPE_MID_INCIDENT_WARNING.equals(medicalInsRuleInfo.getCallScenario())) {
                 medicalInsRuleInfoIdList.add(medicalInsRuleInfo.getId());
             }
         }
@@ -107,75 +107,82 @@ public class RuleEngine {
      * 根据关联的规则项目设置redis规则缓存
      * 后续作为处方/医嘱快速匹配的索引
      */
-    public void setMIDProjectCodeToRedis(MedicalInsRuleProject medicalInsRuleProject){
+    public void setMIDProjectCodeToRedis(MedicalInsRuleProject medicalInsRuleProject) {
         redisTemplate.opsForHash().put(Constant.MEDICAL_RULE_CACHE_KEY + "_" + Constant.TREATMEN_TYPE_MID_INCIDENT_WARNING,
                 medicalInsRuleProject.getProejctCode(), medicalInsRuleProject.getMedicineInsRuleInfoId());
-        if(StringUtils.isNotBlank(medicalInsRuleProject.getCorrelationProjectCode())) {
+        if (StringUtils.isNotBlank(medicalInsRuleProject.getCorrelationProjectCode())) {
             redisTemplate.opsForHash().put(Constant.MEDICAL_RULE_CACHE_KEY + "_" + Constant.TREATMEN_TYPE_MID_INCIDENT_WARNING,
                     medicalInsRuleProject.getCorrelationProjectCode(), medicalInsRuleProject.getMedicineInsRuleInfoId());
         }
     }
 
-    public Integer getMIDMedicalId(String itemCode){
+    public Integer getMIDMedicalId(String itemCode) {
         Object medicineInsRuleId = redisTemplate.opsForHash().get(Constant.MEDICAL_RULE_CACHE_KEY, itemCode);
-        if(null != medicineInsRuleId){
+        if (null != medicineInsRuleId) {
             return (Integer) medicineInsRuleId;
         }
         return null;
     }
 
-    public Result dealInterfaceEngin(String intefName, Map<String,Object> paramMap){
-        List<Integer> medicalInsRuleInfoIdList =  getMedicalInsRuleInfoIdByIntef(intefName, paramMap);
-        runEngine(paramMap, medicalInsRuleInfoIdList);
+    public Result dealInterfaceEngin(String intefName, Map<String, Object> paramMap) {
+        List<RuleAttr> ruleAttrList = ruleAttrService.lambdaQuery().eq(RuleAttr::getInterfName, intefName).list();
+        List<Integer> medicalInsRuleInfoIdList = getMedicalInsRuleInfoIdByIntef(intefName, paramMap, ruleAttrList);
+        List<Map<String, Object>> itemList = interfItemListPlugin.findProIntersection(paramMap, ruleAttrList);
+        for(Map<String, Object> itemMap : itemList){
+            runEngine(itemMap, medicalInsRuleInfoIdList);
+        }
+
         return Result.ok();
     }
 
-    public List<Integer> getMedicalInsRuleInfoIdByIntef(String intefName, Map<String,Object> paramMap){
-        List<RuleAttr> ruleAttrList = ruleAttrService.lambdaQuery().eq(RuleAttr::getInterfName, intefName).list();
+    public List<Integer> getMedicalInsRuleInfoIdByIntef(String intefName, Map<String, Object> paramMap, List<RuleAttr> ruleAttrList) {
+
         List<Integer> medicalIdList = new ArrayList<>();
-        for(RuleAttr ruleAttr : ruleAttrList){
+
+        for (RuleAttr ruleAttr : ruleAttrList) {
             String itemCode = null;
-            if(StringUtils.isNotBlank(ruleAttr.getAttrPath())){
+            if (StringUtils.isNotBlank(ruleAttr.getAttrPath())) {
                 Object value = paramMap.get(ruleAttr.getAttrPath());
-                if(null == value){
+                if (null == value) {
                     log.error("接口调用:{} 不存在 属性路径:{}", intefName, ruleAttr.getAttrPath());
                     break;
                 }
                 String attrName = ruleAttr.getRuleAttr();
-                if(value instanceof List){
-                    List<Map<String,Object>> pathValueList = (List<Map<String, Object>>) value;
-                    for(Map<String,Object> itemMap : pathValueList){
+                if (value instanceof List) {
+                    List<Map<String, Object>> pathValueList = (List<Map<String, Object>>) value;
+                    for (Map<String, Object> itemMap : pathValueList) {
                         Object itemCodeTemp = itemMap.get(attrName);
-                        if(null != itemCodeTemp){
+                        if (null != itemCodeTemp) {
                             itemCode = (String) itemCodeTemp;
                             Integer medicineInsRuleId = getMIDMedicalId(itemCode);
-                            if(null != medicineInsRuleId){
+                            if (null != medicineInsRuleId) {
                                 medicalIdList.add(medicineInsRuleId);
                             }
                         }
                     }
-                }else if (value instanceof Map){
-                    Map<String,Object> pathValueMap = (Map) value;
+                } else if (value instanceof Map) {
+                    Map<String, Object> pathValueMap = (Map) value;
                     Object itemCodeTemp = pathValueMap.get(attrName);
-                    if(null != itemCodeTemp){
+                    if (null != itemCodeTemp) {
                         itemCode = (String) itemCodeTemp;
                         Integer medicineInsRuleId = getMIDMedicalId(itemCode);
-                        if(null != medicineInsRuleId){
+                        if (null != medicineInsRuleId) {
                             medicalIdList.add(medicineInsRuleId);
                         }
                     }
                 }
-            }else{
+            } else {
                 Object itemCodeObject = paramMap.get(ruleAttr.getRuleAttr());
-                if(null != itemCodeObject){
+                if (null != itemCodeObject) {
                     Integer medicineInsRuleId = getMIDMedicalId(itemCodeObject.toString());
-                    if(null != medicineInsRuleId){
+                    if (null != medicineInsRuleId) {
                         medicalIdList.add(medicineInsRuleId);
                     }
                 }
             }
         }
 
+//        paramMap.put("itemList", itemList);
         return medicalIdList;
     }
 
@@ -192,7 +199,7 @@ public class RuleEngine {
         query.orderByAsc(RuleFactorRela::getSeqNum);
         List<RuleFactorRela> ruleFactorRelaList = ruleFactorRelaService.list(query);
 
-        if(CollectionUtil.isNotEmpty(ruleFactorRelaList)){
+        if (CollectionUtil.isNotEmpty(ruleFactorRelaList)) {
 //            Map<Integer, RuleFactorRela> factorEnchanceRuleIdMap = ruleFactorRelaList.stream().collect(Collectors.toMap(RuleFactorRela::getFactorEnhanceId, v -> v, (v1, v2) -> v1));
             List<Integer> factorEnchangeIdList = ruleFactorRelaList.stream().map(RuleFactorRela::getFactorEnhanceId).collect(Collectors.toList());
             List<FactorEnchance> factorEnchanceList = factorEnchanceService.lambdaQuery().in(FactorEnchance::getId, factorEnchangeIdList).list();
@@ -209,9 +216,10 @@ public class RuleEngine {
 
     /**
      * 调用规则引擎之后需要异步通知websocket服务
+     *
      * @param paramMap
      */
-    public void sendEnginResultToWebSocket(Map<String,Object> paramMap){
+    public void sendEnginResultToWebSocket(Map<String, Object> paramMap) {
 
     }
 

+ 80 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/plugin/InterfItemListPlugin.java

@@ -0,0 +1,80 @@
+package org.jeecg.modules.medical.ruleengine.plugin;
+
+import cn.hutool.core.collection.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.modules.medical.entity.RuleAttr;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 对各个接口生成规则明细
+ */
+@Slf4j
+@Component("interfItemListPlugin")
+public class InterfItemListPlugin {
+
+    public List<Map<String,Object>> findProIntersection(Map<String,Object> paramMap, List<RuleAttr> ruleAttrList){
+        List<Map<String,Object>> itemList = new ArrayList<>();
+
+        for(RuleAttr ruleAttr : ruleAttrList){
+
+            if(StringUtils.isNotBlank(ruleAttr.getAttrPath())) {
+                Object value = paramMap.get(ruleAttr.getAttrPath());
+                if (null == value) {
+                    log.error(" 不存在 属性路径:{}", ruleAttr.getAttrPath());
+                    break;
+                }
+                String attrName = ruleAttr.getRuleAttr();
+                if (value instanceof List) {
+                    List<Map<String, Object>> pathValueList = (List<Map<String, Object>>) value;
+                    if(CollectionUtil.isEmpty(itemList)){
+                        itemList = pathValueList;
+                    }else {
+                        setListToList(itemList, pathValueList, attrName);
+                    }
+                }else if(value instanceof Map){
+                    Map<String,Object> pathValueMap = (Map) value;
+                    Object itemCodeTemp = pathValueMap.get(attrName);
+                    if(CollectionUtil.isEmpty(itemList)){
+                        if(null != itemCodeTemp) {
+                            Map<String,Object> itemTempMap = new HashMap<>();
+                            itemTempMap.put(attrName, itemCodeTemp);
+                            itemList.add(itemTempMap);
+                        }
+                    }else {
+                        setItemToList(itemList, itemCodeTemp, attrName);
+                    }
+                }else{
+                    setItemToList(itemList, paramMap.get(attrName), attrName);
+                }
+            }
+        }
+        return itemList;
+    }
+
+    public List<Map<String,Object>> setListToList(List<Map<String,Object>> itemList, List<Map<String,Object>> itemTempList, String attrName){
+        List<Map<String,Object>> resultList = new ArrayList<>();
+        Map<String,Object> temMap = null;
+        for(Map<String,Object> itemMap : itemList){
+
+            for(Map<String,Object> itemTempMap : itemTempList){
+                temMap = new HashMap<>();
+                temMap.putAll(itemMap);
+                temMap.put(attrName, itemTempMap.get(attrName));
+                resultList.add(temMap);
+            }
+        }
+        return resultList;
+    }
+
+    public void setItemToList(List<Map<String,Object>> itemList, Object itemName, String attrName){
+        for(Map<String,Object> itemMap : itemList){
+            itemMap.put(attrName, itemName);
+        }
+    }
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAdvanceWarningAuditDetailService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.medical.service;
+
+import org.jeecg.modules.medical.entity.AdvanceWarningAuditDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: advance_warning_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:22
+ * @Version: V1.0
+ */
+public interface IAdvanceWarningAuditDetailService extends IService<AdvanceWarningAuditDetail> {
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAdvanceWarningAuditService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.medical.service;
+
+import org.jeecg.modules.medical.entity.AdvanceWarningAudit;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: advance_warning_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:15
+ * @Version: V1.0
+ */
+public interface IAdvanceWarningAuditService extends IService<AdvanceWarningAudit> {
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterwardsAuditDetailService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.medical.service;
+
+import org.jeecg.modules.medical.entity.AfterwardsAuditDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: afterwards_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:49
+ * @Version: V1.0
+ */
+public interface IAfterwardsAuditDetailService extends IService<AfterwardsAuditDetail> {
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IAfterwardsAuditService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.medical.service;
+
+import org.jeecg.modules.medical.entity.AfterwardsAudit;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: afterwards_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:31
+ * @Version: V1.0
+ */
+public interface IAfterwardsAuditService extends IService<AfterwardsAudit> {
+
+}

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMedicalInsRuleProjectService.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 /**
  * @Description: medical_ins_rule_project
  * @Author: jeecg-boot
- * @Date:   2023-05-07 16:33:13
+ * @Date:   2023-05-09 14:39:13
  * @Version: V1.0
  */
 public interface IMedicalInsRuleProjectService extends IService<MedicalInsRuleProject> {

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMidIncidentAuditDetailService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.medical.service;
+
+import org.jeecg.modules.medical.entity.MidIncidentAuditDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: mid_incident_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:06
+ * @Version: V1.0
+ */
+public interface IMidIncidentAuditDetailService extends IService<MidIncidentAuditDetail> {
+
+}

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMidIncidentAuditService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.medical.service;
+
+import org.jeecg.modules.medical.entity.MidIncidentAudit;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: mid_incident_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:57
+ * @Version: V1.0
+ */
+public interface IMidIncidentAuditService extends IService<MidIncidentAudit> {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AdvanceWarningAuditDetailServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.medical.service.impl;
+
+import org.jeecg.modules.medical.entity.AdvanceWarningAuditDetail;
+import org.jeecg.modules.medical.mapper.AdvanceWarningAuditDetailMapper;
+import org.jeecg.modules.medical.service.IAdvanceWarningAuditDetailService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: advance_warning_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:22
+ * @Version: V1.0
+ */
+@Service
+public class AdvanceWarningAuditDetailServiceImpl extends ServiceImpl<AdvanceWarningAuditDetailMapper, AdvanceWarningAuditDetail> implements IAdvanceWarningAuditDetailService {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AdvanceWarningAuditServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.medical.service.impl;
+
+import org.jeecg.modules.medical.entity.AdvanceWarningAudit;
+import org.jeecg.modules.medical.mapper.AdvanceWarningAuditMapper;
+import org.jeecg.modules.medical.service.IAdvanceWarningAuditService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: advance_warning_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:15
+ * @Version: V1.0
+ */
+@Service
+public class AdvanceWarningAuditServiceImpl extends ServiceImpl<AdvanceWarningAuditMapper, AdvanceWarningAudit> implements IAdvanceWarningAuditService {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterwardsAuditDetailServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.medical.service.impl;
+
+import org.jeecg.modules.medical.entity.AfterwardsAuditDetail;
+import org.jeecg.modules.medical.mapper.AfterwardsAuditDetailMapper;
+import org.jeecg.modules.medical.service.IAfterwardsAuditDetailService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: afterwards_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:49
+ * @Version: V1.0
+ */
+@Service
+public class AfterwardsAuditDetailServiceImpl extends ServiceImpl<AfterwardsAuditDetailMapper, AfterwardsAuditDetail> implements IAfterwardsAuditDetailService {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/AfterwardsAuditServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.medical.service.impl;
+
+import org.jeecg.modules.medical.entity.AfterwardsAudit;
+import org.jeecg.modules.medical.mapper.AfterwardsAuditMapper;
+import org.jeecg.modules.medical.service.IAfterwardsAuditService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: afterwards_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:31
+ * @Version: V1.0
+ */
+@Service
+public class AfterwardsAuditServiceImpl extends ServiceImpl<AfterwardsAuditMapper, AfterwardsAudit> implements IAfterwardsAuditService {
+
+}

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

@@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 /**
  * @Description: medical_ins_rule_project
  * @Author: jeecg-boot
- * @Date:   2023-05-07 16:33:13
+ * @Date:   2023-05-09 14:39:13
  * @Version: V1.0
  */
 @Service

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MidIncidentAuditDetailServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.medical.service.impl;
+
+import org.jeecg.modules.medical.entity.MidIncidentAuditDetail;
+import org.jeecg.modules.medical.mapper.MidIncidentAuditDetailMapper;
+import org.jeecg.modules.medical.service.IMidIncidentAuditDetailService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: mid_incident_audit_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:37:06
+ * @Version: V1.0
+ */
+@Service
+public class MidIncidentAuditDetailServiceImpl extends ServiceImpl<MidIncidentAuditDetailMapper, MidIncidentAuditDetail> implements IMidIncidentAuditDetailService {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MidIncidentAuditServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.medical.service.impl;
+
+import org.jeecg.modules.medical.entity.MidIncidentAudit;
+import org.jeecg.modules.medical.mapper.MidIncidentAuditMapper;
+import org.jeecg.modules.medical.service.IMidIncidentAuditService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: mid_incident_audit
+ * @Author: jeecg-boot
+ * @Date:   2023-05-09 14:36:57
+ * @Version: V1.0
+ */
+@Service
+public class MidIncidentAuditServiceImpl extends ServiceImpl<MidIncidentAuditMapper, MidIncidentAudit> implements IMidIncidentAuditService {
+
+}

+ 64 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAudit.api.ts

@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+  list = '/medical/advanceWarningAudit/list',
+  save='/medical/advanceWarningAudit/add',
+  edit='/medical/advanceWarningAudit/edit',
+  deleteOne = '/medical/advanceWarningAudit/delete',
+  deleteBatch = '/medical/advanceWarningAudit/deleteBatch',
+  importExcel = '/medical/advanceWarningAudit/importExcel',
+  exportXls = '/medical/advanceWarningAudit/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+  defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+    handleSuccess();
+  });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+  createConfirm({
+    iconType: 'warning',
+    title: '确认删除',
+    content: '是否删除选中数据',
+    okText: '确认',
+    cancelText: '取消',
+    onOk: () => {
+      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+        handleSuccess();
+      });
+    }
+  });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+  let url = isUpdate ? Api.edit : Api.save;
+  return defHttp.post({url: url, params});
+}

+ 221 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAudit.data.ts

@@ -0,0 +1,221 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+   {
+    title: '医保规则ID',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoId'
+   },
+   {
+    title: '医保规则编码',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoCode'
+   },
+   {
+    title: '医保规则名称',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoName'
+   },
+   {
+    title: '就诊类别;住院/门诊',
+    align:"center",
+    dataIndex: 'treatmentType'
+   },
+   {
+    title: '警示级别',
+    align:"center",
+    dataIndex: 'reminderLevel'
+   },
+   {
+    title: '提醒类别;事前提醒,事中预警,事后监管',
+    align:"center",
+    dataIndex: 'noticeType'
+   },
+   {
+    title: '科室编码',
+    align:"center",
+    dataIndex: 'medicalDeptCode'
+   },
+   {
+    title: '科室名称',
+    align:"center",
+    dataIndex: 'medicalDeptName'
+   },
+   {
+    title: '医生姓名',
+    align:"center",
+    dataIndex: 'dockerName'
+   },
+   {
+    title: '主诊医师编码',
+    align:"center",
+    dataIndex: 'doctorId'
+   },
+   {
+    title: '个人编号',
+    align:"center",
+    dataIndex: 'patientId'
+   },
+   {
+    title: '患者姓名',
+    align:"center",
+    dataIndex: 'patientName'
+   },
+   {
+    title: '住院号/门诊号',
+    align:"center",
+    dataIndex: 'outpatientNumber'
+   },
+   {
+    title: '医嘱号/处方号',
+    align:"center",
+    dataIndex: 'prescriptionNumber'
+   },
+   {
+    title: '反馈结果',
+    align:"center",
+    dataIndex: 'feedbackResult'
+   },
+   {
+    title: '反馈编码',
+    align:"center",
+    dataIndex: 'feedbackCode'
+   },
+   {
+    title: '上个审核人员',
+    align:"center",
+    dataIndex: 'preCheckBy'
+   },
+   {
+    title: '审核人',
+    align:"center",
+    dataIndex: 'checkBy'
+   },
+   {
+    title: '审核状态',
+    align:"center",
+    dataIndex: 'checkState'
+   },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+  {
+    label: '医保规则ID',
+    field: 'medicalInsRuleInfoId',
+    component: 'InputNumber',
+  },
+  {
+    label: '医保规则编码',
+    field: 'medicalInsRuleInfoCode',
+    component: 'Input',
+  },
+  {
+    label: '医保规则名称',
+    field: 'medicalInsRuleInfoName',
+    component: 'Input',
+  },
+  {
+    label: '就诊类别;住院/门诊',
+    field: 'treatmentType',
+    component: 'Input',
+  },
+  {
+    label: '警示级别',
+    field: 'reminderLevel',
+    component: 'Input',
+  },
+  {
+    label: '提醒类别;事前提醒,事中预警,事后监管',
+    field: 'noticeType',
+    component: 'Input',
+  },
+  {
+    label: '科室编码',
+    field: 'medicalDeptCode',
+    component: 'Input',
+  },
+  {
+    label: '科室名称',
+    field: 'medicalDeptName',
+    component: 'Input',
+  },
+  {
+    label: '医生姓名',
+    field: 'dockerName',
+    component: 'Input',
+  },
+  {
+    label: '主诊医师编码',
+    field: 'doctorId',
+    component: 'Input',
+  },
+  {
+    label: '个人编号',
+    field: 'patientId',
+    component: 'Input',
+  },
+  {
+    label: '患者姓名',
+    field: 'patientName',
+    component: 'Input',
+  },
+  {
+    label: '住院号/门诊号',
+    field: 'outpatientNumber',
+    component: 'Input',
+  },
+  {
+    label: '医嘱号/处方号',
+    field: 'prescriptionNumber',
+    component: 'Input',
+  },
+  {
+    label: '反馈结果',
+    field: 'feedbackResult',
+    component: 'Input',
+  },
+  {
+    label: '反馈编码',
+    field: 'feedbackCode',
+    component: 'Input',
+  },
+  {
+    label: '上个审核人员',
+    field: 'preCheckBy',
+    component: 'Input',
+  },
+  {
+    label: '审核人',
+    field: 'checkBy',
+    component: 'Input',
+  },
+  {
+    label: '审核状态',
+    field: 'checkState',
+    component: 'Input',
+  },
+	// TODO 主键隐藏字段,目前写死为ID
+	{
+	  label: '',
+	  field: 'id',
+	  component: 'Input',
+	  show: false
+	},
+];
+
+
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+  // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+  return formSchema;
+}

+ 64 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditDetail.api.ts

@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+  list = '/medical/advanceWarningAuditDetail/list',
+  save='/medical/advanceWarningAuditDetail/add',
+  edit='/medical/advanceWarningAuditDetail/edit',
+  deleteOne = '/medical/advanceWarningAuditDetail/delete',
+  deleteBatch = '/medical/advanceWarningAuditDetail/deleteBatch',
+  importExcel = '/medical/advanceWarningAuditDetail/importExcel',
+  exportXls = '/medical/advanceWarningAuditDetail/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+  defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+    handleSuccess();
+  });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+  createConfirm({
+    iconType: 'warning',
+    title: '确认删除',
+    content: '是否删除选中数据',
+    okText: '确认',
+    cancelText: '取消',
+    onOk: () => {
+      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+        handleSuccess();
+      });
+    }
+  });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+  let url = isUpdate ? Api.edit : Api.save;
+  return defHttp.post({url: url, params});
+}

+ 211 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditDetail.data.ts

@@ -0,0 +1,211 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+   {
+    title: '医保规则ID',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoId'
+   },
+   {
+    title: '医保规则编码',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoCode'
+   },
+   {
+    title: '医保规则名称',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoName'
+   },
+   {
+    title: '就诊类别;住院/门诊',
+    align:"center",
+    dataIndex: 'treatmentType'
+   },
+   {
+    title: '警示级别',
+    align:"center",
+    dataIndex: 'reminderLevel'
+   },
+   {
+    title: '提醒类别;事前提醒,事中预警,事后监管',
+    align:"center",
+    dataIndex: 'noticeType'
+   },
+   {
+    title: '科室编码',
+    align:"center",
+    dataIndex: 'medicalDeptCode'
+   },
+   {
+    title: '科室名称',
+    align:"center",
+    dataIndex: 'medicalDeptName'
+   },
+   {
+    title: '医生姓名',
+    align:"center",
+    dataIndex: 'dockerName'
+   },
+   {
+    title: '主诊医师编码',
+    align:"center",
+    dataIndex: 'doctorId'
+   },
+   {
+    title: '个人编号',
+    align:"center",
+    dataIndex: 'patientId'
+   },
+   {
+    title: '患者姓名',
+    align:"center",
+    dataIndex: 'patientName'
+   },
+   {
+    title: '住院号/门诊号',
+    align:"center",
+    dataIndex: 'outpatientNumber'
+   },
+   {
+    title: '医嘱号/处方号',
+    align:"center",
+    dataIndex: 'prescriptionNumber'
+   },
+   {
+    title: '项目类型',
+    align:"center",
+    dataIndex: 'projectType'
+   },
+   {
+    title: '项目编码',
+    align:"center",
+    dataIndex: 'proejctCode'
+   },
+   {
+    title: '项目名称',
+    align:"center",
+    dataIndex: 'proejctName'
+   },
+   {
+    title: '规则处理结果',
+    align:"center",
+    dataIndex: 'description'
+   },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+  {
+    label: '医保规则ID',
+    field: 'medicalInsRuleInfoId',
+    component: 'InputNumber',
+  },
+  {
+    label: '医保规则编码',
+    field: 'medicalInsRuleInfoCode',
+    component: 'Input',
+  },
+  {
+    label: '医保规则名称',
+    field: 'medicalInsRuleInfoName',
+    component: 'Input',
+  },
+  {
+    label: '就诊类别;住院/门诊',
+    field: 'treatmentType',
+    component: 'Input',
+  },
+  {
+    label: '警示级别',
+    field: 'reminderLevel',
+    component: 'Input',
+  },
+  {
+    label: '提醒类别;事前提醒,事中预警,事后监管',
+    field: 'noticeType',
+    component: 'Input',
+  },
+  {
+    label: '科室编码',
+    field: 'medicalDeptCode',
+    component: 'Input',
+  },
+  {
+    label: '科室名称',
+    field: 'medicalDeptName',
+    component: 'Input',
+  },
+  {
+    label: '医生姓名',
+    field: 'dockerName',
+    component: 'Input',
+  },
+  {
+    label: '主诊医师编码',
+    field: 'doctorId',
+    component: 'Input',
+  },
+  {
+    label: '个人编号',
+    field: 'patientId',
+    component: 'Input',
+  },
+  {
+    label: '患者姓名',
+    field: 'patientName',
+    component: 'Input',
+  },
+  {
+    label: '住院号/门诊号',
+    field: 'outpatientNumber',
+    component: 'Input',
+  },
+  {
+    label: '医嘱号/处方号',
+    field: 'prescriptionNumber',
+    component: 'Input',
+  },
+  {
+    label: '项目类型',
+    field: 'projectType',
+    component: 'Input',
+  },
+  {
+    label: '项目编码',
+    field: 'proejctCode',
+    component: 'Input',
+  },
+  {
+    label: '项目名称',
+    field: 'proejctName',
+    component: 'Input',
+  },
+  {
+    label: '规则处理结果',
+    field: 'description',
+    component: 'Input',
+  },
+	// TODO 主键隐藏字段,目前写死为ID
+	{
+	  label: '',
+	  field: 'id',
+	  component: 'Input',
+	  show: false
+	},
+];
+
+
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+  // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+  return formSchema;
+}

+ 173 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditDetailList.vue

@@ -0,0 +1,173 @@
+<template>
+  <div>
+    <!--引用表格-->
+   <BasicTable @register="registerTable" :rowSelection="rowSelection">
+     <!--插槽:table标题-->
+      <template #tableTitle>
+          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
+          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
+          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
+          <a-dropdown v-if="selectedRowKeys.length > 0">
+              <template #overlay>
+                <a-menu>
+                  <a-menu-item key="1" @click="batchHandleDelete">
+                    <Icon icon="ant-design:delete-outlined"></Icon>
+                    删除
+                  </a-menu-item>
+                </a-menu>
+              </template>
+              <a-button>批量操作
+                <Icon icon="mdi:chevron-down"></Icon>
+              </a-button>
+        </a-dropdown>
+      </template>
+       <!--操作栏-->
+      <template #action="{ record }">
+        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
+      </template>
+      <!--字段回显插槽-->
+      <template #htmlSlot="{text}">
+         <div v-html="text"></div>
+      </template>
+      <!--省市区字段回显插槽-->
+      <template #pcaSlot="{text}">
+         {{ getAreaTextByCode(text) }}
+      </template>
+      <template #fileSlot="{text}">
+         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
+      </template>
+    </BasicTable>
+    <!-- 表单区域 -->
+    <AdvanceWarningAuditDetailModal @register="registerModal" @success="handleSuccess"></AdvanceWarningAuditDetailModal>
+  </div>
+</template>
+
+<script lang="ts" name="medical-advanceWarningAuditDetail" setup>
+  import {ref, computed, unref} from 'vue';
+  import {BasicTable, useTable, TableAction} from '/@/components/Table';
+  import {useModal} from '/@/components/Modal';
+  import { useListPage } from '/@/hooks/system/useListPage'
+  import AdvanceWarningAuditDetailModal from './components/AdvanceWarningAuditDetailModal.vue'
+  import {columns, searchFormSchema} from './AdvanceWarningAuditDetail.data';
+  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './AdvanceWarningAuditDetail.api';
+  import { downloadFile } from '/@/utils/common/renderUtils';
+  const checkedKeys = ref<Array<string | number>>([]);
+  //注册model
+  const [registerModal, {openModal}] = useModal();
+  //注册table数据
+  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
+      tableProps:{
+           title: 'advance_warning_audit_detail',
+           api: list,
+           columns,
+           canResize:false,
+           formConfig: {
+              //labelWidth: 120,
+              schemas: searchFormSchema,
+              autoSubmitOnEnter:true,
+              showAdvancedButton:true,
+              fieldMapToNumber: [
+              ],
+              fieldMapToTime: [
+              ],
+            },
+           actionColumn: {
+               width: 120,
+               fixed:'right'
+            },
+      },
+       exportConfig: {
+            name:"advance_warning_audit_detail",
+            url: getExportUrl,
+          },
+          importConfig: {
+            url: getImportUrl,
+            success: handleSuccess
+          },
+  })
+
+  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
+
+   /**
+    * 新增事件
+    */
+  function handleAdd() {
+     openModal(true, {
+       isUpdate: false,
+       showFooter: true,
+     });
+  }
+   /**
+    * 编辑事件
+    */
+  function handleEdit(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: true,
+     });
+   }
+   /**
+    * 详情
+   */
+  function handleDetail(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: false,
+     });
+   }
+   /**
+    * 删除事件
+    */
+  async function handleDelete(record) {
+     await deleteOne({id: record.id}, handleSuccess);
+   }
+   /**
+    * 批量删除事件
+    */
+  async function batchHandleDelete() {
+     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
+   }
+   /**
+    * 成功回调
+    */
+  function handleSuccess() {
+      (selectedRowKeys.value = []) && reload();
+   }
+   /**
+      * 操作栏
+      */
+  function getTableAction(record){
+       return [
+         {
+           label: '编辑',
+           onClick: handleEdit.bind(null, record),
+         }
+       ]
+   }
+     /**
+        * 下拉操作栏
+        */
+  function getDropDownAction(record){
+       return [
+         {
+           label: '详情',
+           onClick: handleDetail.bind(null, record),
+         }, {
+           label: '删除',
+           popConfirm: {
+             title: '是否确认删除',
+             confirm: handleDelete.bind(null, record),
+           }
+         }
+       ]
+   }
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditDetail_menu_insert.sql

@@ -0,0 +1,26 @@
+-- 注意:该页面对应的前台目录为views/medical文件夹下
+-- 如果你想更改到其他目录,请修改sql中component字段对应的值
+
+
+INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
+VALUES ('202305090237980230', NULL, 'advance_warning_audit_detail', '/medical/advanceWarningAuditDetailList', 'medical/AdvanceWarningAuditDetailList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-05-09 14:37:23', NULL, NULL, 0);
+
+-- 权限控制sql
+-- 新增
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237980231', '202305090237980230', '添加advance_warning_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit_detail:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:23', NULL, NULL, 0, 0, '1', 0);
+-- 编辑
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237980232', '202305090237980230', '编辑advance_warning_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit_detail:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:23', NULL, NULL, 0, 0, '1', 0);
+-- 删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237980233', '202305090237980230', '删除advance_warning_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit_detail:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:23', NULL, NULL, 0, 0, '1', 0);
+-- 批量删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237980234', '202305090237980230', '批量删除advance_warning_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit_detail:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:23', NULL, NULL, 0, 0, '1', 0);
+-- 导出excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237980235', '202305090237980230', '导出excel_advance_warning_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit_detail:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:23', NULL, NULL, 0, 0, '1', 0);
+-- 导入excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237980236', '202305090237980230', '导入excel_advance_warning_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit_detail:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:23', NULL, NULL, 0, 0, '1', 0);

+ 173 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAuditList.vue

@@ -0,0 +1,173 @@
+<template>
+  <div>
+    <!--引用表格-->
+   <BasicTable @register="registerTable" :rowSelection="rowSelection">
+     <!--插槽:table标题-->
+      <template #tableTitle>
+          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
+          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
+          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
+          <a-dropdown v-if="selectedRowKeys.length > 0">
+              <template #overlay>
+                <a-menu>
+                  <a-menu-item key="1" @click="batchHandleDelete">
+                    <Icon icon="ant-design:delete-outlined"></Icon>
+                    删除
+                  </a-menu-item>
+                </a-menu>
+              </template>
+              <a-button>批量操作
+                <Icon icon="mdi:chevron-down"></Icon>
+              </a-button>
+        </a-dropdown>
+      </template>
+       <!--操作栏-->
+      <template #action="{ record }">
+        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
+      </template>
+      <!--字段回显插槽-->
+      <template #htmlSlot="{text}">
+         <div v-html="text"></div>
+      </template>
+      <!--省市区字段回显插槽-->
+      <template #pcaSlot="{text}">
+         {{ getAreaTextByCode(text) }}
+      </template>
+      <template #fileSlot="{text}">
+         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
+      </template>
+    </BasicTable>
+    <!-- 表单区域 -->
+    <AdvanceWarningAuditModal @register="registerModal" @success="handleSuccess"></AdvanceWarningAuditModal>
+  </div>
+</template>
+
+<script lang="ts" name="medical-advanceWarningAudit" setup>
+  import {ref, computed, unref} from 'vue';
+  import {BasicTable, useTable, TableAction} from '/@/components/Table';
+  import {useModal} from '/@/components/Modal';
+  import { useListPage } from '/@/hooks/system/useListPage'
+  import AdvanceWarningAuditModal from './components/AdvanceWarningAuditModal.vue'
+  import {columns, searchFormSchema} from './AdvanceWarningAudit.data';
+  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './AdvanceWarningAudit.api';
+  import { downloadFile } from '/@/utils/common/renderUtils';
+  const checkedKeys = ref<Array<string | number>>([]);
+  //注册model
+  const [registerModal, {openModal}] = useModal();
+  //注册table数据
+  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
+      tableProps:{
+           title: 'advance_warning_audit',
+           api: list,
+           columns,
+           canResize:false,
+           formConfig: {
+              //labelWidth: 120,
+              schemas: searchFormSchema,
+              autoSubmitOnEnter:true,
+              showAdvancedButton:true,
+              fieldMapToNumber: [
+              ],
+              fieldMapToTime: [
+              ],
+            },
+           actionColumn: {
+               width: 120,
+               fixed:'right'
+            },
+      },
+       exportConfig: {
+            name:"advance_warning_audit",
+            url: getExportUrl,
+          },
+          importConfig: {
+            url: getImportUrl,
+            success: handleSuccess
+          },
+  })
+
+  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
+
+   /**
+    * 新增事件
+    */
+  function handleAdd() {
+     openModal(true, {
+       isUpdate: false,
+       showFooter: true,
+     });
+  }
+   /**
+    * 编辑事件
+    */
+  function handleEdit(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: true,
+     });
+   }
+   /**
+    * 详情
+   */
+  function handleDetail(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: false,
+     });
+   }
+   /**
+    * 删除事件
+    */
+  async function handleDelete(record) {
+     await deleteOne({id: record.id}, handleSuccess);
+   }
+   /**
+    * 批量删除事件
+    */
+  async function batchHandleDelete() {
+     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
+   }
+   /**
+    * 成功回调
+    */
+  function handleSuccess() {
+      (selectedRowKeys.value = []) && reload();
+   }
+   /**
+      * 操作栏
+      */
+  function getTableAction(record){
+       return [
+         {
+           label: '编辑',
+           onClick: handleEdit.bind(null, record),
+         }
+       ]
+   }
+     /**
+        * 下拉操作栏
+        */
+  function getDropDownAction(record){
+       return [
+         {
+           label: '详情',
+           onClick: handleDetail.bind(null, record),
+         }, {
+           label: '删除',
+           popConfirm: {
+             title: '是否确认删除',
+             confirm: handleDelete.bind(null, record),
+           }
+         }
+       ]
+   }
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AdvanceWarningAudit_menu_insert.sql

@@ -0,0 +1,26 @@
+-- 注意:该页面对应的前台目录为views/medical文件夹下
+-- 如果你想更改到其他目录,请修改sql中component字段对应的值
+
+
+INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
+VALUES ('2023050902373750150', NULL, 'advance_warning_audit', '/medical/advanceWarningAuditList', 'medical/AdvanceWarningAuditList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-05-09 14:37:15', NULL, NULL, 0);
+
+-- 权限控制sql
+-- 新增
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902373760151', '2023050902373750150', '添加advance_warning_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:15', NULL, NULL, 0, 0, '1', 0);
+-- 编辑
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902373760152', '2023050902373750150', '编辑advance_warning_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:15', NULL, NULL, 0, 0, '1', 0);
+-- 删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902373760153', '2023050902373750150', '删除advance_warning_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:15', NULL, NULL, 0, 0, '1', 0);
+-- 批量删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902373760154', '2023050902373750150', '批量删除advance_warning_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:15', NULL, NULL, 0, 0, '1', 0);
+-- 导出excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902373760155', '2023050902373750150', '导出excel_advance_warning_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:15', NULL, NULL, 0, 0, '1', 0);
+-- 导入excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902373760156', '2023050902373750150', '导入excel_advance_warning_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:advance_warning_audit:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:15', NULL, NULL, 0, 0, '1', 0);

+ 64 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAudit.api.ts

@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+  list = '/medical/afterwardsAudit/list',
+  save='/medical/afterwardsAudit/add',
+  edit='/medical/afterwardsAudit/edit',
+  deleteOne = '/medical/afterwardsAudit/delete',
+  deleteBatch = '/medical/afterwardsAudit/deleteBatch',
+  importExcel = '/medical/afterwardsAudit/importExcel',
+  exportXls = '/medical/afterwardsAudit/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+  defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+    handleSuccess();
+  });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+  createConfirm({
+    iconType: 'warning',
+    title: '确认删除',
+    content: '是否删除选中数据',
+    okText: '确认',
+    cancelText: '取消',
+    onOk: () => {
+      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+        handleSuccess();
+      });
+    }
+  });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+  let url = isUpdate ? Api.edit : Api.save;
+  return defHttp.post({url: url, params});
+}

+ 221 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAudit.data.ts

@@ -0,0 +1,221 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+   {
+    title: '医保规则ID',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoId'
+   },
+   {
+    title: '医保规则编码',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoCode'
+   },
+   {
+    title: '医保规则名称',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoName'
+   },
+   {
+    title: '就诊类别;住院/门诊',
+    align:"center",
+    dataIndex: 'treatmentType'
+   },
+   {
+    title: '警示级别',
+    align:"center",
+    dataIndex: 'reminderLevel'
+   },
+   {
+    title: '提醒类别;事前提醒,事中预警,事后监管',
+    align:"center",
+    dataIndex: 'noticeType'
+   },
+   {
+    title: '科室编码',
+    align:"center",
+    dataIndex: 'medicalDeptCode'
+   },
+   {
+    title: '科室名称',
+    align:"center",
+    dataIndex: 'medicalDeptName'
+   },
+   {
+    title: '医生姓名',
+    align:"center",
+    dataIndex: 'dockerName'
+   },
+   {
+    title: '主诊医师编码',
+    align:"center",
+    dataIndex: 'doctorId'
+   },
+   {
+    title: '个人编号',
+    align:"center",
+    dataIndex: 'patientId'
+   },
+   {
+    title: '患者姓名',
+    align:"center",
+    dataIndex: 'patientName'
+   },
+   {
+    title: '住院号/门诊号',
+    align:"center",
+    dataIndex: 'outpatientNumber'
+   },
+   {
+    title: '医嘱号/处方号',
+    align:"center",
+    dataIndex: 'prescriptionNumber'
+   },
+   {
+    title: '反馈结果',
+    align:"center",
+    dataIndex: 'feedbackResult'
+   },
+   {
+    title: '反馈编码',
+    align:"center",
+    dataIndex: 'feedbackCode'
+   },
+   {
+    title: '上个审核人员',
+    align:"center",
+    dataIndex: 'preCheckBy'
+   },
+   {
+    title: '审核人',
+    align:"center",
+    dataIndex: 'checkBy'
+   },
+   {
+    title: '审核状态',
+    align:"center",
+    dataIndex: 'checkState'
+   },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+  {
+    label: '医保规则ID',
+    field: 'medicalInsRuleInfoId',
+    component: 'InputNumber',
+  },
+  {
+    label: '医保规则编码',
+    field: 'medicalInsRuleInfoCode',
+    component: 'Input',
+  },
+  {
+    label: '医保规则名称',
+    field: 'medicalInsRuleInfoName',
+    component: 'Input',
+  },
+  {
+    label: '就诊类别;住院/门诊',
+    field: 'treatmentType',
+    component: 'Input',
+  },
+  {
+    label: '警示级别',
+    field: 'reminderLevel',
+    component: 'Input',
+  },
+  {
+    label: '提醒类别;事前提醒,事中预警,事后监管',
+    field: 'noticeType',
+    component: 'Input',
+  },
+  {
+    label: '科室编码',
+    field: 'medicalDeptCode',
+    component: 'Input',
+  },
+  {
+    label: '科室名称',
+    field: 'medicalDeptName',
+    component: 'Input',
+  },
+  {
+    label: '医生姓名',
+    field: 'dockerName',
+    component: 'Input',
+  },
+  {
+    label: '主诊医师编码',
+    field: 'doctorId',
+    component: 'Input',
+  },
+  {
+    label: '个人编号',
+    field: 'patientId',
+    component: 'Input',
+  },
+  {
+    label: '患者姓名',
+    field: 'patientName',
+    component: 'Input',
+  },
+  {
+    label: '住院号/门诊号',
+    field: 'outpatientNumber',
+    component: 'Input',
+  },
+  {
+    label: '医嘱号/处方号',
+    field: 'prescriptionNumber',
+    component: 'Input',
+  },
+  {
+    label: '反馈结果',
+    field: 'feedbackResult',
+    component: 'Input',
+  },
+  {
+    label: '反馈编码',
+    field: 'feedbackCode',
+    component: 'Input',
+  },
+  {
+    label: '上个审核人员',
+    field: 'preCheckBy',
+    component: 'Input',
+  },
+  {
+    label: '审核人',
+    field: 'checkBy',
+    component: 'Input',
+  },
+  {
+    label: '审核状态',
+    field: 'checkState',
+    component: 'Input',
+  },
+	// TODO 主键隐藏字段,目前写死为ID
+	{
+	  label: '',
+	  field: 'id',
+	  component: 'Input',
+	  show: false
+	},
+];
+
+
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+  // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+  return formSchema;
+}

+ 64 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditDetail.api.ts

@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+  list = '/medical/afterwardsAuditDetail/list',
+  save='/medical/afterwardsAuditDetail/add',
+  edit='/medical/afterwardsAuditDetail/edit',
+  deleteOne = '/medical/afterwardsAuditDetail/delete',
+  deleteBatch = '/medical/afterwardsAuditDetail/deleteBatch',
+  importExcel = '/medical/afterwardsAuditDetail/importExcel',
+  exportXls = '/medical/afterwardsAuditDetail/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+  defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+    handleSuccess();
+  });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+  createConfirm({
+    iconType: 'warning',
+    title: '确认删除',
+    content: '是否删除选中数据',
+    okText: '确认',
+    cancelText: '取消',
+    onOk: () => {
+      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+        handleSuccess();
+      });
+    }
+  });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+  let url = isUpdate ? Api.edit : Api.save;
+  return defHttp.post({url: url, params});
+}

+ 211 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditDetail.data.ts

@@ -0,0 +1,211 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+   {
+    title: '医保规则ID',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoId'
+   },
+   {
+    title: '医保规则编码',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoCode'
+   },
+   {
+    title: '医保规则名称',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoName'
+   },
+   {
+    title: '就诊类别;住院/门诊',
+    align:"center",
+    dataIndex: 'treatmentType'
+   },
+   {
+    title: '警示级别',
+    align:"center",
+    dataIndex: 'reminderLevel'
+   },
+   {
+    title: '提醒类别;事前提醒,事中预警,事后监管',
+    align:"center",
+    dataIndex: 'noticeType'
+   },
+   {
+    title: '科室编码',
+    align:"center",
+    dataIndex: 'medicalDeptCode'
+   },
+   {
+    title: '科室名称',
+    align:"center",
+    dataIndex: 'medicalDeptName'
+   },
+   {
+    title: '医生姓名',
+    align:"center",
+    dataIndex: 'dockerName'
+   },
+   {
+    title: '主诊医师编码',
+    align:"center",
+    dataIndex: 'doctorId'
+   },
+   {
+    title: '个人编号',
+    align:"center",
+    dataIndex: 'patientId'
+   },
+   {
+    title: '患者姓名',
+    align:"center",
+    dataIndex: 'patientName'
+   },
+   {
+    title: '住院号/门诊号',
+    align:"center",
+    dataIndex: 'outpatientNumber'
+   },
+   {
+    title: '医嘱号/处方号',
+    align:"center",
+    dataIndex: 'prescriptionNumber'
+   },
+   {
+    title: '项目类型',
+    align:"center",
+    dataIndex: 'projectType'
+   },
+   {
+    title: '项目编码',
+    align:"center",
+    dataIndex: 'proejctCode'
+   },
+   {
+    title: '项目名称',
+    align:"center",
+    dataIndex: 'proejctName'
+   },
+   {
+    title: '规则处理结果',
+    align:"center",
+    dataIndex: 'description'
+   },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+  {
+    label: '医保规则ID',
+    field: 'medicalInsRuleInfoId',
+    component: 'InputNumber',
+  },
+  {
+    label: '医保规则编码',
+    field: 'medicalInsRuleInfoCode',
+    component: 'Input',
+  },
+  {
+    label: '医保规则名称',
+    field: 'medicalInsRuleInfoName',
+    component: 'Input',
+  },
+  {
+    label: '就诊类别;住院/门诊',
+    field: 'treatmentType',
+    component: 'Input',
+  },
+  {
+    label: '警示级别',
+    field: 'reminderLevel',
+    component: 'Input',
+  },
+  {
+    label: '提醒类别;事前提醒,事中预警,事后监管',
+    field: 'noticeType',
+    component: 'Input',
+  },
+  {
+    label: '科室编码',
+    field: 'medicalDeptCode',
+    component: 'Input',
+  },
+  {
+    label: '科室名称',
+    field: 'medicalDeptName',
+    component: 'Input',
+  },
+  {
+    label: '医生姓名',
+    field: 'dockerName',
+    component: 'Input',
+  },
+  {
+    label: '主诊医师编码',
+    field: 'doctorId',
+    component: 'Input',
+  },
+  {
+    label: '个人编号',
+    field: 'patientId',
+    component: 'Input',
+  },
+  {
+    label: '患者姓名',
+    field: 'patientName',
+    component: 'Input',
+  },
+  {
+    label: '住院号/门诊号',
+    field: 'outpatientNumber',
+    component: 'Input',
+  },
+  {
+    label: '医嘱号/处方号',
+    field: 'prescriptionNumber',
+    component: 'Input',
+  },
+  {
+    label: '项目类型',
+    field: 'projectType',
+    component: 'Input',
+  },
+  {
+    label: '项目编码',
+    field: 'proejctCode',
+    component: 'Input',
+  },
+  {
+    label: '项目名称',
+    field: 'proejctName',
+    component: 'Input',
+  },
+  {
+    label: '规则处理结果',
+    field: 'description',
+    component: 'Input',
+  },
+	// TODO 主键隐藏字段,目前写死为ID
+	{
+	  label: '',
+	  field: 'id',
+	  component: 'Input',
+	  show: false
+	},
+];
+
+
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+  // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+  return formSchema;
+}

+ 173 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditDetailList.vue

@@ -0,0 +1,173 @@
+<template>
+  <div>
+    <!--引用表格-->
+   <BasicTable @register="registerTable" :rowSelection="rowSelection">
+     <!--插槽:table标题-->
+      <template #tableTitle>
+          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
+          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
+          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
+          <a-dropdown v-if="selectedRowKeys.length > 0">
+              <template #overlay>
+                <a-menu>
+                  <a-menu-item key="1" @click="batchHandleDelete">
+                    <Icon icon="ant-design:delete-outlined"></Icon>
+                    删除
+                  </a-menu-item>
+                </a-menu>
+              </template>
+              <a-button>批量操作
+                <Icon icon="mdi:chevron-down"></Icon>
+              </a-button>
+        </a-dropdown>
+      </template>
+       <!--操作栏-->
+      <template #action="{ record }">
+        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
+      </template>
+      <!--字段回显插槽-->
+      <template #htmlSlot="{text}">
+         <div v-html="text"></div>
+      </template>
+      <!--省市区字段回显插槽-->
+      <template #pcaSlot="{text}">
+         {{ getAreaTextByCode(text) }}
+      </template>
+      <template #fileSlot="{text}">
+         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
+      </template>
+    </BasicTable>
+    <!-- 表单区域 -->
+    <AfterwardsAuditDetailModal @register="registerModal" @success="handleSuccess"></AfterwardsAuditDetailModal>
+  </div>
+</template>
+
+<script lang="ts" name="medical-afterwardsAuditDetail" setup>
+  import {ref, computed, unref} from 'vue';
+  import {BasicTable, useTable, TableAction} from '/@/components/Table';
+  import {useModal} from '/@/components/Modal';
+  import { useListPage } from '/@/hooks/system/useListPage'
+  import AfterwardsAuditDetailModal from './components/AfterwardsAuditDetailModal.vue'
+  import {columns, searchFormSchema} from './AfterwardsAuditDetail.data';
+  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './AfterwardsAuditDetail.api';
+  import { downloadFile } from '/@/utils/common/renderUtils';
+  const checkedKeys = ref<Array<string | number>>([]);
+  //注册model
+  const [registerModal, {openModal}] = useModal();
+  //注册table数据
+  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
+      tableProps:{
+           title: 'afterwards_audit_detail',
+           api: list,
+           columns,
+           canResize:false,
+           formConfig: {
+              //labelWidth: 120,
+              schemas: searchFormSchema,
+              autoSubmitOnEnter:true,
+              showAdvancedButton:true,
+              fieldMapToNumber: [
+              ],
+              fieldMapToTime: [
+              ],
+            },
+           actionColumn: {
+               width: 120,
+               fixed:'right'
+            },
+      },
+       exportConfig: {
+            name:"afterwards_audit_detail",
+            url: getExportUrl,
+          },
+          importConfig: {
+            url: getImportUrl,
+            success: handleSuccess
+          },
+  })
+
+  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
+
+   /**
+    * 新增事件
+    */
+  function handleAdd() {
+     openModal(true, {
+       isUpdate: false,
+       showFooter: true,
+     });
+  }
+   /**
+    * 编辑事件
+    */
+  function handleEdit(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: true,
+     });
+   }
+   /**
+    * 详情
+   */
+  function handleDetail(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: false,
+     });
+   }
+   /**
+    * 删除事件
+    */
+  async function handleDelete(record) {
+     await deleteOne({id: record.id}, handleSuccess);
+   }
+   /**
+    * 批量删除事件
+    */
+  async function batchHandleDelete() {
+     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
+   }
+   /**
+    * 成功回调
+    */
+  function handleSuccess() {
+      (selectedRowKeys.value = []) && reload();
+   }
+   /**
+      * 操作栏
+      */
+  function getTableAction(record){
+       return [
+         {
+           label: '编辑',
+           onClick: handleEdit.bind(null, record),
+         }
+       ]
+   }
+     /**
+        * 下拉操作栏
+        */
+  function getDropDownAction(record){
+       return [
+         {
+           label: '详情',
+           onClick: handleDetail.bind(null, record),
+         }, {
+           label: '删除',
+           popConfirm: {
+             title: '是否确认删除',
+             confirm: handleDelete.bind(null, record),
+           }
+         }
+       ]
+   }
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditDetail_menu_insert.sql

@@ -0,0 +1,26 @@
+-- 注意:该页面对应的前台目录为views/medical文件夹下
+-- 如果你想更改到其他目录,请修改sql中component字段对应的值
+
+
+INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
+VALUES ('2023050902366170490', NULL, 'afterwards_audit_detail', '/medical/afterwardsAuditDetailList', 'medical/AfterwardsAuditDetailList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-05-09 14:36:49', NULL, NULL, 0);
+
+-- 权限控制sql
+-- 新增
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902366170491', '2023050902366170490', '添加afterwards_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit_detail:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:49', NULL, NULL, 0, 0, '1', 0);
+-- 编辑
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902366170492', '2023050902366170490', '编辑afterwards_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit_detail:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:49', NULL, NULL, 0, 0, '1', 0);
+-- 删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902366170493', '2023050902366170490', '删除afterwards_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit_detail:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:49', NULL, NULL, 0, 0, '1', 0);
+-- 批量删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902366170494', '2023050902366170490', '批量删除afterwards_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit_detail:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:49', NULL, NULL, 0, 0, '1', 0);
+-- 导出excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902366170495', '2023050902366170490', '导出excel_afterwards_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit_detail:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:49', NULL, NULL, 0, 0, '1', 0);
+-- 导入excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902366170496', '2023050902366170490', '导入excel_afterwards_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit_detail:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:49', NULL, NULL, 0, 0, '1', 0);

+ 173 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAuditList.vue

@@ -0,0 +1,173 @@
+<template>
+  <div>
+    <!--引用表格-->
+   <BasicTable @register="registerTable" :rowSelection="rowSelection">
+     <!--插槽:table标题-->
+      <template #tableTitle>
+          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
+          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
+          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
+          <a-dropdown v-if="selectedRowKeys.length > 0">
+              <template #overlay>
+                <a-menu>
+                  <a-menu-item key="1" @click="batchHandleDelete">
+                    <Icon icon="ant-design:delete-outlined"></Icon>
+                    删除
+                  </a-menu-item>
+                </a-menu>
+              </template>
+              <a-button>批量操作
+                <Icon icon="mdi:chevron-down"></Icon>
+              </a-button>
+        </a-dropdown>
+      </template>
+       <!--操作栏-->
+      <template #action="{ record }">
+        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
+      </template>
+      <!--字段回显插槽-->
+      <template #htmlSlot="{text}">
+         <div v-html="text"></div>
+      </template>
+      <!--省市区字段回显插槽-->
+      <template #pcaSlot="{text}">
+         {{ getAreaTextByCode(text) }}
+      </template>
+      <template #fileSlot="{text}">
+         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
+      </template>
+    </BasicTable>
+    <!-- 表单区域 -->
+    <AfterwardsAuditModal @register="registerModal" @success="handleSuccess"></AfterwardsAuditModal>
+  </div>
+</template>
+
+<script lang="ts" name="medical-afterwardsAudit" setup>
+  import {ref, computed, unref} from 'vue';
+  import {BasicTable, useTable, TableAction} from '/@/components/Table';
+  import {useModal} from '/@/components/Modal';
+  import { useListPage } from '/@/hooks/system/useListPage'
+  import AfterwardsAuditModal from './components/AfterwardsAuditModal.vue'
+  import {columns, searchFormSchema} from './AfterwardsAudit.data';
+  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './AfterwardsAudit.api';
+  import { downloadFile } from '/@/utils/common/renderUtils';
+  const checkedKeys = ref<Array<string | number>>([]);
+  //注册model
+  const [registerModal, {openModal}] = useModal();
+  //注册table数据
+  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
+      tableProps:{
+           title: 'afterwards_audit',
+           api: list,
+           columns,
+           canResize:false,
+           formConfig: {
+              //labelWidth: 120,
+              schemas: searchFormSchema,
+              autoSubmitOnEnter:true,
+              showAdvancedButton:true,
+              fieldMapToNumber: [
+              ],
+              fieldMapToTime: [
+              ],
+            },
+           actionColumn: {
+               width: 120,
+               fixed:'right'
+            },
+      },
+       exportConfig: {
+            name:"afterwards_audit",
+            url: getExportUrl,
+          },
+          importConfig: {
+            url: getImportUrl,
+            success: handleSuccess
+          },
+  })
+
+  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
+
+   /**
+    * 新增事件
+    */
+  function handleAdd() {
+     openModal(true, {
+       isUpdate: false,
+       showFooter: true,
+     });
+  }
+   /**
+    * 编辑事件
+    */
+  function handleEdit(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: true,
+     });
+   }
+   /**
+    * 详情
+   */
+  function handleDetail(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: false,
+     });
+   }
+   /**
+    * 删除事件
+    */
+  async function handleDelete(record) {
+     await deleteOne({id: record.id}, handleSuccess);
+   }
+   /**
+    * 批量删除事件
+    */
+  async function batchHandleDelete() {
+     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
+   }
+   /**
+    * 成功回调
+    */
+  function handleSuccess() {
+      (selectedRowKeys.value = []) && reload();
+   }
+   /**
+      * 操作栏
+      */
+  function getTableAction(record){
+       return [
+         {
+           label: '编辑',
+           onClick: handleEdit.bind(null, record),
+         }
+       ]
+   }
+     /**
+        * 下拉操作栏
+        */
+  function getDropDownAction(record){
+       return [
+         {
+           label: '详情',
+           onClick: handleDetail.bind(null, record),
+         }, {
+           label: '删除',
+           popConfirm: {
+             title: '是否确认删除',
+             confirm: handleDelete.bind(null, record),
+           }
+         }
+       ]
+   }
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/AfterwardsAudit_menu_insert.sql

@@ -0,0 +1,26 @@
+-- 注意:该页面对应的前台目录为views/medical文件夹下
+-- 如果你想更改到其他目录,请修改sql中component字段对应的值
+
+
+INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
+VALUES ('202305090237180320', NULL, 'afterwards_audit', '/medical/afterwardsAuditList', 'medical/AfterwardsAuditList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-05-09 14:37:32', NULL, NULL, 0);
+
+-- 权限控制sql
+-- 新增
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237180321', '202305090237180320', '添加afterwards_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:32', NULL, NULL, 0, 0, '1', 0);
+-- 编辑
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237180322', '202305090237180320', '编辑afterwards_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:32', NULL, NULL, 0, 0, '1', 0);
+-- 删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237180323', '202305090237180320', '删除afterwards_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:32', NULL, NULL, 0, 0, '1', 0);
+-- 批量删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237180324', '202305090237180320', '批量删除afterwards_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:32', NULL, NULL, 0, 0, '1', 0);
+-- 导出excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237180325', '202305090237180320', '导出excel_afterwards_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:32', NULL, NULL, 0, 0, '1', 0);
+-- 导入excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('202305090237180326', '202305090237180320', '导入excel_afterwards_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:afterwards_audit:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:32', NULL, NULL, 0, 0, '1', 0);

+ 71 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MedicalInsRuleProject.data.ts

@@ -39,6 +39,41 @@ export const columns: BasicColumn[] = [
     align:"center",
     dataIndex: 'correlationProjectName'
    },
+   {
+    title: '收费等级;01 甲类 02 乙类 03 丙类 04 可报丙类',
+    align:"center",
+    dataIndex: 'changeClass'
+   },
+   {
+    title: '年龄;',
+    align:"center",
+    dataIndex: 'age'
+   },
+   {
+    title: '医疗机构等级;',
+    align:"center",
+    dataIndex: 'medicalInsLevel'
+   },
+   {
+    title: '医师级别;',
+    align:"center",
+    dataIndex: 'doctorLevel'
+   },
+   {
+    title: '参保类型;',
+    align:"center",
+    dataIndex: 'insType'
+   },
+   {
+    title: '科室;',
+    align:"center",
+    dataIndex: 'medicalDeptCode'
+   },
+   {
+    title: '用药天数;',
+    align:"center",
+    dataIndex: 'doseDay'
+   },
    {
     title: '状态',
     align:"center",
@@ -58,7 +93,7 @@ export const formSchema: FormSchema[] = [
   {
     label: '医保规则ID',
     field: 'medicineInsRuleInfoId',
-    component: 'Input',
+    component: 'InputNumber',
   },
   {
     label: '医保主数据类型;MEDICINE(药品主数据表)、CONSUMABLE_METERIAL(耗材主数据表)、DIAGNOSIS_TREATMENT(诊疗主数据表)、DIAGNOSIS(诊断主数据表)、OPERATIVE(手术主数据表)',
@@ -90,6 +125,41 @@ export const formSchema: FormSchema[] = [
     field: 'correlationProjectName',
     component: 'Input',
   },
+  {
+    label: '收费等级;01 甲类 02 乙类 03 丙类 04 可报丙类',
+    field: 'changeClass',
+    component: 'Input',
+  },
+  {
+    label: '年龄;',
+    field: 'age',
+    component: 'InputNumber',
+  },
+  {
+    label: '医疗机构等级;',
+    field: 'medicalInsLevel',
+    component: 'Input',
+  },
+  {
+    label: '医师级别;',
+    field: 'doctorLevel',
+    component: 'Input',
+  },
+  {
+    label: '参保类型;',
+    field: 'insType',
+    component: 'Input',
+  },
+  {
+    label: '科室;',
+    field: 'medicalDeptCode',
+    component: 'Input',
+  },
+  {
+    label: '用药天数;',
+    field: 'doseDay',
+    component: 'Input',
+  },
   {
     label: '状态',
     field: 'state',

+ 7 - 7
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MedicalInsRuleProject_menu_insert.sql

@@ -3,24 +3,24 @@
 
 
 INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
-VALUES ('202305070433680130', NULL, 'medical_ins_rule_project', '/medical/medicalInsRuleProjectList', 'medical/MedicalInsRuleProjectList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-05-07 16:33:13', NULL, NULL, 0);
+VALUES ('2023050902399540130', NULL, 'medical_ins_rule_project', '/medical/medicalInsRuleProjectList', 'medical/MedicalInsRuleProjectList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-05-09 14:39:13', NULL, NULL, 0);
 
 -- 权限控制sql
 -- 新增
 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('202305070433690131', '202305070433680130', '添加medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-07 16:33:13', NULL, NULL, 0, 0, '1', 0);
+VALUES ('2023050902399540131', '2023050902399540130', '添加medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:39:13', NULL, NULL, 0, 0, '1', 0);
 -- 编辑
 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('202305070433690132', '202305070433680130', '编辑medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-07 16:33:13', NULL, NULL, 0, 0, '1', 0);
+VALUES ('2023050902399540132', '2023050902399540130', '编辑medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:39:13', NULL, NULL, 0, 0, '1', 0);
 -- 删除
 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('202305070433690133', '202305070433680130', '删除medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-07 16:33:13', NULL, NULL, 0, 0, '1', 0);
+VALUES ('2023050902399540133', '2023050902399540130', '删除medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:39:13', NULL, NULL, 0, 0, '1', 0);
 -- 批量删除
 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('202305070433690134', '202305070433680130', '批量删除medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-07 16:33:13', NULL, NULL, 0, 0, '1', 0);
+VALUES ('2023050902399540134', '2023050902399540130', '批量删除medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:39:13', NULL, NULL, 0, 0, '1', 0);
 -- 导出excel
 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('202305070433690135', '202305070433680130', '导出excel_medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-07 16:33:13', NULL, NULL, 0, 0, '1', 0);
+VALUES ('2023050902399540135', '2023050902399540130', '导出excel_medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:39:13', NULL, NULL, 0, 0, '1', 0);
 -- 导入excel
 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
-VALUES ('202305070433690136', '202305070433680130', '导入excel_medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-07 16:33:13', NULL, NULL, 0, 0, '1', 0);
+VALUES ('2023050902399540136', '2023050902399540130', '导入excel_medical_ins_rule_project', NULL, NULL, 0, NULL, NULL, 2, 'medical:medical_ins_rule_project:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:39:13', NULL, NULL, 0, 0, '1', 0);

+ 64 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAudit.api.ts

@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+  list = '/medical/midIncidentAudit/list',
+  save='/medical/midIncidentAudit/add',
+  edit='/medical/midIncidentAudit/edit',
+  deleteOne = '/medical/midIncidentAudit/delete',
+  deleteBatch = '/medical/midIncidentAudit/deleteBatch',
+  importExcel = '/medical/midIncidentAudit/importExcel',
+  exportXls = '/medical/midIncidentAudit/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+  defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+    handleSuccess();
+  });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+  createConfirm({
+    iconType: 'warning',
+    title: '确认删除',
+    content: '是否删除选中数据',
+    okText: '确认',
+    cancelText: '取消',
+    onOk: () => {
+      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+        handleSuccess();
+      });
+    }
+  });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+  let url = isUpdate ? Api.edit : Api.save;
+  return defHttp.post({url: url, params});
+}

+ 221 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAudit.data.ts

@@ -0,0 +1,221 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+   {
+    title: '医保规则ID',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoId'
+   },
+   {
+    title: '医保规则编码',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoCode'
+   },
+   {
+    title: '医保规则名称',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoName'
+   },
+   {
+    title: '就诊类别;住院/门诊',
+    align:"center",
+    dataIndex: 'treatmentType'
+   },
+   {
+    title: '警示级别',
+    align:"center",
+    dataIndex: 'reminderLevel'
+   },
+   {
+    title: '提醒类别;事前提醒,事中预警,事后监管',
+    align:"center",
+    dataIndex: 'noticeType'
+   },
+   {
+    title: '科室编码',
+    align:"center",
+    dataIndex: 'medicalDeptCode'
+   },
+   {
+    title: '科室名称',
+    align:"center",
+    dataIndex: 'medicalDeptName'
+   },
+   {
+    title: '医生姓名',
+    align:"center",
+    dataIndex: 'dockerName'
+   },
+   {
+    title: '主诊医师编码',
+    align:"center",
+    dataIndex: 'doctorId'
+   },
+   {
+    title: '个人编号',
+    align:"center",
+    dataIndex: 'patientId'
+   },
+   {
+    title: '患者姓名',
+    align:"center",
+    dataIndex: 'patientName'
+   },
+   {
+    title: '住院号/门诊号',
+    align:"center",
+    dataIndex: 'outpatientNumber'
+   },
+   {
+    title: '医嘱号/处方号',
+    align:"center",
+    dataIndex: 'prescriptionNumber'
+   },
+   {
+    title: '反馈结果',
+    align:"center",
+    dataIndex: 'feedbackResult'
+   },
+   {
+    title: '反馈编码',
+    align:"center",
+    dataIndex: 'feedbackCode'
+   },
+   {
+    title: '上个审核人员',
+    align:"center",
+    dataIndex: 'preCheckBy'
+   },
+   {
+    title: '审核人',
+    align:"center",
+    dataIndex: 'checkBy'
+   },
+   {
+    title: '审核状态',
+    align:"center",
+    dataIndex: 'checkState'
+   },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+  {
+    label: '医保规则ID',
+    field: 'medicalInsRuleInfoId',
+    component: 'InputNumber',
+  },
+  {
+    label: '医保规则编码',
+    field: 'medicalInsRuleInfoCode',
+    component: 'Input',
+  },
+  {
+    label: '医保规则名称',
+    field: 'medicalInsRuleInfoName',
+    component: 'Input',
+  },
+  {
+    label: '就诊类别;住院/门诊',
+    field: 'treatmentType',
+    component: 'Input',
+  },
+  {
+    label: '警示级别',
+    field: 'reminderLevel',
+    component: 'Input',
+  },
+  {
+    label: '提醒类别;事前提醒,事中预警,事后监管',
+    field: 'noticeType',
+    component: 'Input',
+  },
+  {
+    label: '科室编码',
+    field: 'medicalDeptCode',
+    component: 'Input',
+  },
+  {
+    label: '科室名称',
+    field: 'medicalDeptName',
+    component: 'Input',
+  },
+  {
+    label: '医生姓名',
+    field: 'dockerName',
+    component: 'Input',
+  },
+  {
+    label: '主诊医师编码',
+    field: 'doctorId',
+    component: 'Input',
+  },
+  {
+    label: '个人编号',
+    field: 'patientId',
+    component: 'Input',
+  },
+  {
+    label: '患者姓名',
+    field: 'patientName',
+    component: 'Input',
+  },
+  {
+    label: '住院号/门诊号',
+    field: 'outpatientNumber',
+    component: 'Input',
+  },
+  {
+    label: '医嘱号/处方号',
+    field: 'prescriptionNumber',
+    component: 'Input',
+  },
+  {
+    label: '反馈结果',
+    field: 'feedbackResult',
+    component: 'Input',
+  },
+  {
+    label: '反馈编码',
+    field: 'feedbackCode',
+    component: 'Input',
+  },
+  {
+    label: '上个审核人员',
+    field: 'preCheckBy',
+    component: 'Input',
+  },
+  {
+    label: '审核人',
+    field: 'checkBy',
+    component: 'Input',
+  },
+  {
+    label: '审核状态',
+    field: 'checkState',
+    component: 'Input',
+  },
+	// TODO 主键隐藏字段,目前写死为ID
+	{
+	  label: '',
+	  field: 'id',
+	  component: 'Input',
+	  show: false
+	},
+];
+
+
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+  // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+  return formSchema;
+}

+ 64 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditDetail.api.ts

@@ -0,0 +1,64 @@
+import {defHttp} from '/@/utils/http/axios';
+import { useMessage } from "/@/hooks/web/useMessage";
+
+const { createConfirm } = useMessage();
+
+enum Api {
+  list = '/medical/midIncidentAuditDetail/list',
+  save='/medical/midIncidentAuditDetail/add',
+  edit='/medical/midIncidentAuditDetail/edit',
+  deleteOne = '/medical/midIncidentAuditDetail/delete',
+  deleteBatch = '/medical/midIncidentAuditDetail/deleteBatch',
+  importExcel = '/medical/midIncidentAuditDetail/importExcel',
+  exportXls = '/medical/midIncidentAuditDetail/exportXls',
+}
+/**
+ * 导出api
+ * @param params
+ */
+export const getExportUrl = Api.exportXls;
+/**
+ * 导入api
+ */
+export const getImportUrl = Api.importExcel;
+/**
+ * 列表接口
+ * @param params
+ */
+export const list = (params) =>
+  defHttp.get({url: Api.list, params});
+
+/**
+ * 删除单个
+ */
+export const deleteOne = (params,handleSuccess) => {
+  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
+    handleSuccess();
+  });
+}
+/**
+ * 批量删除
+ * @param params
+ */
+export const batchDelete = (params, handleSuccess) => {
+  createConfirm({
+    iconType: 'warning',
+    title: '确认删除',
+    content: '是否删除选中数据',
+    okText: '确认',
+    cancelText: '取消',
+    onOk: () => {
+      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
+        handleSuccess();
+      });
+    }
+  });
+}
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params, isUpdate) => {
+  let url = isUpdate ? Api.edit : Api.save;
+  return defHttp.post({url: url, params});
+}

+ 211 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditDetail.data.ts

@@ -0,0 +1,211 @@
+import {BasicColumn} from '/@/components/Table';
+import {FormSchema} from '/@/components/Table';
+import { rules} from '/@/utils/helper/validator';
+import { render } from '/@/utils/common/renderUtils';
+//列表数据
+export const columns: BasicColumn[] = [
+   {
+    title: '医保规则ID',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoId'
+   },
+   {
+    title: '医保规则编码',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoCode'
+   },
+   {
+    title: '医保规则名称',
+    align:"center",
+    dataIndex: 'medicalInsRuleInfoName'
+   },
+   {
+    title: '就诊类别;住院/门诊',
+    align:"center",
+    dataIndex: 'treatmentType'
+   },
+   {
+    title: '警示级别',
+    align:"center",
+    dataIndex: 'reminderLevel'
+   },
+   {
+    title: '提醒类别;事前提醒,事中预警,事后监管',
+    align:"center",
+    dataIndex: 'noticeType'
+   },
+   {
+    title: '科室编码',
+    align:"center",
+    dataIndex: 'medicalDeptCode'
+   },
+   {
+    title: '科室名称',
+    align:"center",
+    dataIndex: 'medicalDeptName'
+   },
+   {
+    title: '医生姓名',
+    align:"center",
+    dataIndex: 'dockerName'
+   },
+   {
+    title: '主诊医师编码',
+    align:"center",
+    dataIndex: 'doctorId'
+   },
+   {
+    title: '个人编号',
+    align:"center",
+    dataIndex: 'patientId'
+   },
+   {
+    title: '患者姓名',
+    align:"center",
+    dataIndex: 'patientName'
+   },
+   {
+    title: '住院号/门诊号',
+    align:"center",
+    dataIndex: 'outpatientNumber'
+   },
+   {
+    title: '医嘱号/处方号',
+    align:"center",
+    dataIndex: 'prescriptionNumber'
+   },
+   {
+    title: '项目类型',
+    align:"center",
+    dataIndex: 'projectType'
+   },
+   {
+    title: '项目编码',
+    align:"center",
+    dataIndex: 'proejctCode'
+   },
+   {
+    title: '项目名称',
+    align:"center",
+    dataIndex: 'proejctName'
+   },
+   {
+    title: '规则处理结果',
+    align:"center",
+    dataIndex: 'description'
+   },
+];
+//查询数据
+export const searchFormSchema: FormSchema[] = [
+];
+//表单数据
+export const formSchema: FormSchema[] = [
+  {
+    label: '医保规则ID',
+    field: 'medicalInsRuleInfoId',
+    component: 'InputNumber',
+  },
+  {
+    label: '医保规则编码',
+    field: 'medicalInsRuleInfoCode',
+    component: 'Input',
+  },
+  {
+    label: '医保规则名称',
+    field: 'medicalInsRuleInfoName',
+    component: 'Input',
+  },
+  {
+    label: '就诊类别;住院/门诊',
+    field: 'treatmentType',
+    component: 'Input',
+  },
+  {
+    label: '警示级别',
+    field: 'reminderLevel',
+    component: 'Input',
+  },
+  {
+    label: '提醒类别;事前提醒,事中预警,事后监管',
+    field: 'noticeType',
+    component: 'Input',
+  },
+  {
+    label: '科室编码',
+    field: 'medicalDeptCode',
+    component: 'Input',
+  },
+  {
+    label: '科室名称',
+    field: 'medicalDeptName',
+    component: 'Input',
+  },
+  {
+    label: '医生姓名',
+    field: 'dockerName',
+    component: 'Input',
+  },
+  {
+    label: '主诊医师编码',
+    field: 'doctorId',
+    component: 'Input',
+  },
+  {
+    label: '个人编号',
+    field: 'patientId',
+    component: 'Input',
+  },
+  {
+    label: '患者姓名',
+    field: 'patientName',
+    component: 'Input',
+  },
+  {
+    label: '住院号/门诊号',
+    field: 'outpatientNumber',
+    component: 'Input',
+  },
+  {
+    label: '医嘱号/处方号',
+    field: 'prescriptionNumber',
+    component: 'Input',
+  },
+  {
+    label: '项目类型',
+    field: 'projectType',
+    component: 'Input',
+  },
+  {
+    label: '项目编码',
+    field: 'proejctCode',
+    component: 'Input',
+  },
+  {
+    label: '项目名称',
+    field: 'proejctName',
+    component: 'Input',
+  },
+  {
+    label: '规则处理结果',
+    field: 'description',
+    component: 'Input',
+  },
+	// TODO 主键隐藏字段,目前写死为ID
+	{
+	  label: '',
+	  field: 'id',
+	  component: 'Input',
+	  show: false
+	},
+];
+
+
+
+/**
+* 流程表单调用这个方法获取formSchema
+* @param param
+*/
+export function getBpmFormSchema(_formData): FormSchema[]{
+  // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
+  return formSchema;
+}

+ 173 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditDetailList.vue

@@ -0,0 +1,173 @@
+<template>
+  <div>
+    <!--引用表格-->
+   <BasicTable @register="registerTable" :rowSelection="rowSelection">
+     <!--插槽:table标题-->
+      <template #tableTitle>
+          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
+          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
+          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
+          <a-dropdown v-if="selectedRowKeys.length > 0">
+              <template #overlay>
+                <a-menu>
+                  <a-menu-item key="1" @click="batchHandleDelete">
+                    <Icon icon="ant-design:delete-outlined"></Icon>
+                    删除
+                  </a-menu-item>
+                </a-menu>
+              </template>
+              <a-button>批量操作
+                <Icon icon="mdi:chevron-down"></Icon>
+              </a-button>
+        </a-dropdown>
+      </template>
+       <!--操作栏-->
+      <template #action="{ record }">
+        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
+      </template>
+      <!--字段回显插槽-->
+      <template #htmlSlot="{text}">
+         <div v-html="text"></div>
+      </template>
+      <!--省市区字段回显插槽-->
+      <template #pcaSlot="{text}">
+         {{ getAreaTextByCode(text) }}
+      </template>
+      <template #fileSlot="{text}">
+         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
+      </template>
+    </BasicTable>
+    <!-- 表单区域 -->
+    <MidIncidentAuditDetailModal @register="registerModal" @success="handleSuccess"></MidIncidentAuditDetailModal>
+  </div>
+</template>
+
+<script lang="ts" name="medical-midIncidentAuditDetail" setup>
+  import {ref, computed, unref} from 'vue';
+  import {BasicTable, useTable, TableAction} from '/@/components/Table';
+  import {useModal} from '/@/components/Modal';
+  import { useListPage } from '/@/hooks/system/useListPage'
+  import MidIncidentAuditDetailModal from './components/MidIncidentAuditDetailModal.vue'
+  import {columns, searchFormSchema} from './MidIncidentAuditDetail.data';
+  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './MidIncidentAuditDetail.api';
+  import { downloadFile } from '/@/utils/common/renderUtils';
+  const checkedKeys = ref<Array<string | number>>([]);
+  //注册model
+  const [registerModal, {openModal}] = useModal();
+  //注册table数据
+  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
+      tableProps:{
+           title: 'mid_incident_audit_detail',
+           api: list,
+           columns,
+           canResize:false,
+           formConfig: {
+              //labelWidth: 120,
+              schemas: searchFormSchema,
+              autoSubmitOnEnter:true,
+              showAdvancedButton:true,
+              fieldMapToNumber: [
+              ],
+              fieldMapToTime: [
+              ],
+            },
+           actionColumn: {
+               width: 120,
+               fixed:'right'
+            },
+      },
+       exportConfig: {
+            name:"mid_incident_audit_detail",
+            url: getExportUrl,
+          },
+          importConfig: {
+            url: getImportUrl,
+            success: handleSuccess
+          },
+  })
+
+  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
+
+   /**
+    * 新增事件
+    */
+  function handleAdd() {
+     openModal(true, {
+       isUpdate: false,
+       showFooter: true,
+     });
+  }
+   /**
+    * 编辑事件
+    */
+  function handleEdit(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: true,
+     });
+   }
+   /**
+    * 详情
+   */
+  function handleDetail(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: false,
+     });
+   }
+   /**
+    * 删除事件
+    */
+  async function handleDelete(record) {
+     await deleteOne({id: record.id}, handleSuccess);
+   }
+   /**
+    * 批量删除事件
+    */
+  async function batchHandleDelete() {
+     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
+   }
+   /**
+    * 成功回调
+    */
+  function handleSuccess() {
+      (selectedRowKeys.value = []) && reload();
+   }
+   /**
+      * 操作栏
+      */
+  function getTableAction(record){
+       return [
+         {
+           label: '编辑',
+           onClick: handleEdit.bind(null, record),
+         }
+       ]
+   }
+     /**
+        * 下拉操作栏
+        */
+  function getDropDownAction(record){
+       return [
+         {
+           label: '详情',
+           onClick: handleDetail.bind(null, record),
+         }, {
+           label: '删除',
+           popConfirm: {
+             title: '是否确认删除',
+             confirm: handleDelete.bind(null, record),
+           }
+         }
+       ]
+   }
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditDetail_menu_insert.sql

@@ -0,0 +1,26 @@
+-- 注意:该页面对应的前台目录为views/medical文件夹下
+-- 如果你想更改到其他目录,请修改sql中component字段对应的值
+
+
+INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
+VALUES ('2023050902378190060', NULL, 'mid_incident_audit_detail', '/medical/midIncidentAuditDetailList', 'medical/MidIncidentAuditDetailList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-05-09 14:37:06', NULL, NULL, 0);
+
+-- 权限控制sql
+-- 新增
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902378200061', '2023050902378190060', '添加mid_incident_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit_detail:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:06', NULL, NULL, 0, 0, '1', 0);
+-- 编辑
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902378200062', '2023050902378190060', '编辑mid_incident_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit_detail:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:06', NULL, NULL, 0, 0, '1', 0);
+-- 删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902378200063', '2023050902378190060', '删除mid_incident_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit_detail:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:06', NULL, NULL, 0, 0, '1', 0);
+-- 批量删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902378200064', '2023050902378190060', '批量删除mid_incident_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit_detail:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:06', NULL, NULL, 0, 0, '1', 0);
+-- 导出excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902378200065', '2023050902378190060', '导出excel_mid_incident_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit_detail:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:06', NULL, NULL, 0, 0, '1', 0);
+-- 导入excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902378200066', '2023050902378190060', '导入excel_mid_incident_audit_detail', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit_detail:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:37:06', NULL, NULL, 0, 0, '1', 0);

+ 173 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAuditList.vue

@@ -0,0 +1,173 @@
+<template>
+  <div>
+    <!--引用表格-->
+   <BasicTable @register="registerTable" :rowSelection="rowSelection">
+     <!--插槽:table标题-->
+      <template #tableTitle>
+          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
+          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
+          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
+          <a-dropdown v-if="selectedRowKeys.length > 0">
+              <template #overlay>
+                <a-menu>
+                  <a-menu-item key="1" @click="batchHandleDelete">
+                    <Icon icon="ant-design:delete-outlined"></Icon>
+                    删除
+                  </a-menu-item>
+                </a-menu>
+              </template>
+              <a-button>批量操作
+                <Icon icon="mdi:chevron-down"></Icon>
+              </a-button>
+        </a-dropdown>
+      </template>
+       <!--操作栏-->
+      <template #action="{ record }">
+        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
+      </template>
+      <!--字段回显插槽-->
+      <template #htmlSlot="{text}">
+         <div v-html="text"></div>
+      </template>
+      <!--省市区字段回显插槽-->
+      <template #pcaSlot="{text}">
+         {{ getAreaTextByCode(text) }}
+      </template>
+      <template #fileSlot="{text}">
+         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
+         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
+      </template>
+    </BasicTable>
+    <!-- 表单区域 -->
+    <MidIncidentAuditModal @register="registerModal" @success="handleSuccess"></MidIncidentAuditModal>
+  </div>
+</template>
+
+<script lang="ts" name="medical-midIncidentAudit" setup>
+  import {ref, computed, unref} from 'vue';
+  import {BasicTable, useTable, TableAction} from '/@/components/Table';
+  import {useModal} from '/@/components/Modal';
+  import { useListPage } from '/@/hooks/system/useListPage'
+  import MidIncidentAuditModal from './components/MidIncidentAuditModal.vue'
+  import {columns, searchFormSchema} from './MidIncidentAudit.data';
+  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './MidIncidentAudit.api';
+  import { downloadFile } from '/@/utils/common/renderUtils';
+  const checkedKeys = ref<Array<string | number>>([]);
+  //注册model
+  const [registerModal, {openModal}] = useModal();
+  //注册table数据
+  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
+      tableProps:{
+           title: 'mid_incident_audit',
+           api: list,
+           columns,
+           canResize:false,
+           formConfig: {
+              //labelWidth: 120,
+              schemas: searchFormSchema,
+              autoSubmitOnEnter:true,
+              showAdvancedButton:true,
+              fieldMapToNumber: [
+              ],
+              fieldMapToTime: [
+              ],
+            },
+           actionColumn: {
+               width: 120,
+               fixed:'right'
+            },
+      },
+       exportConfig: {
+            name:"mid_incident_audit",
+            url: getExportUrl,
+          },
+          importConfig: {
+            url: getImportUrl,
+            success: handleSuccess
+          },
+  })
+
+  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
+
+   /**
+    * 新增事件
+    */
+  function handleAdd() {
+     openModal(true, {
+       isUpdate: false,
+       showFooter: true,
+     });
+  }
+   /**
+    * 编辑事件
+    */
+  function handleEdit(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: true,
+     });
+   }
+   /**
+    * 详情
+   */
+  function handleDetail(record: Recordable) {
+     openModal(true, {
+       record,
+       isUpdate: true,
+       showFooter: false,
+     });
+   }
+   /**
+    * 删除事件
+    */
+  async function handleDelete(record) {
+     await deleteOne({id: record.id}, handleSuccess);
+   }
+   /**
+    * 批量删除事件
+    */
+  async function batchHandleDelete() {
+     await batchDelete({ids: selectedRowKeys.value}, handleSuccess);
+   }
+   /**
+    * 成功回调
+    */
+  function handleSuccess() {
+      (selectedRowKeys.value = []) && reload();
+   }
+   /**
+      * 操作栏
+      */
+  function getTableAction(record){
+       return [
+         {
+           label: '编辑',
+           onClick: handleEdit.bind(null, record),
+         }
+       ]
+   }
+     /**
+        * 下拉操作栏
+        */
+  function getDropDownAction(record){
+       return [
+         {
+           label: '详情',
+           onClick: handleDetail.bind(null, record),
+         }, {
+           label: '删除',
+           popConfirm: {
+             title: '是否确认删除',
+             confirm: handleDelete.bind(null, record),
+           }
+         }
+       ]
+   }
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/MidIncidentAudit_menu_insert.sql

@@ -0,0 +1,26 @@
+-- 注意:该页面对应的前台目录为views/medical文件夹下
+-- 如果你想更改到其他目录,请修改sql中component字段对应的值
+
+
+INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) 
+VALUES ('2023050902365470570', NULL, 'mid_incident_audit', '/medical/midIncidentAuditList', 'medical/MidIncidentAuditList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2023-05-09 14:36:57', NULL, NULL, 0);
+
+-- 权限控制sql
+-- 新增
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902365470571', '2023050902365470570', '添加mid_incident_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:57', NULL, NULL, 0, 0, '1', 0);
+-- 编辑
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902365470572', '2023050902365470570', '编辑mid_incident_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:57', NULL, NULL, 0, 0, '1', 0);
+-- 删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902365470573', '2023050902365470570', '删除mid_incident_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:57', NULL, NULL, 0, 0, '1', 0);
+-- 批量删除
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902365470574', '2023050902365470570', '批量删除mid_incident_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:57', NULL, NULL, 0, 0, '1', 0);
+-- 导出excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902365470575', '2023050902365470570', '导出excel_mid_incident_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:57', NULL, NULL, 0, 0, '1', 0);
+-- 导入excel
+INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external)
+VALUES ('2023050902365470576', '2023050902365470570', '导入excel_mid_incident_audit', NULL, NULL, 0, NULL, NULL, 2, 'medical:mid_incident_audit:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2023-05-09 14:36:57', NULL, NULL, 0, 0, '1', 0);

+ 70 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AdvanceWarningAuditDetailForm.vue

@@ -0,0 +1,70 @@
+<template>
+    <div style="min-height: 400px">
+        <BasicForm @register="registerForm"></BasicForm>
+        <div style="width: 100%;text-align: center" v-if="!formDisabled">
+            <a-button @click="submitForm" pre-icon="ant-design:check" type="primary">提 交</a-button>
+        </div>
+    </div>
+</template>
+
+<script lang="ts">
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {computed, defineComponent} from 'vue';
+    import {defHttp} from '/@/utils/http/axios';
+    import { propTypes } from '/@/utils/propTypes';
+    import {getBpmFormSchema} from '../AdvanceWarningAuditDetail.data';
+    import {saveOrUpdate} from '../AdvanceWarningAuditDetail.api';
+    
+    export default defineComponent({
+        name: "AdvanceWarningAuditDetailForm",
+        components:{
+            BasicForm
+        },
+        props:{
+            formData: propTypes.object.def({}),
+            formBpm: propTypes.bool.def(true),
+        },
+        setup(props){
+            const [registerForm, { setFieldsValue, setProps, getFieldsValue }] = useForm({
+                labelWidth: 150,
+                schemas: getBpmFormSchema(props.formData),
+                showActionButtonGroup: false,
+                baseColProps: {span: 24}
+            });
+
+            const formDisabled = computed(()=>{
+                if(props.formData.disabled === false){
+                    return false;
+                }
+                return true;
+            });
+
+            let formData = {};
+            const queryByIdUrl = '/medical/advanceWarningAuditDetail/queryById';
+            async function initFormData(){
+                let params = {id: props.formData.dataId};
+                const data = await defHttp.get({url: queryByIdUrl, params});
+                formData = {...data}
+                //设置表单的值
+                await setFieldsValue(formData);
+                //默认是禁用
+                await setProps({disabled: formDisabled.value})
+            }
+
+            async function submitForm() {
+                let data = getFieldsValue();
+                let params = Object.assign({}, formData, data);
+                console.log('表单数据', params)
+                await saveOrUpdate(params, true)
+            }
+
+            initFormData();
+            
+            return {
+                registerForm,
+                formDisabled,
+                submitForm,
+            }
+        }
+    });
+</script>

+ 66 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AdvanceWarningAuditDetailModal.vue

@@ -0,0 +1,66 @@
+<template>
+  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit">
+      <BasicForm @register="registerForm"/>
+  </BasicModal>
+</template>
+
+<script lang="ts" setup>
+    import {ref, computed, unref} from 'vue';
+    import {BasicModal, useModalInner} from '/@/components/Modal';
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {formSchema} from '../AdvanceWarningAuditDetail.data';
+    import {saveOrUpdate} from '../AdvanceWarningAuditDetail.api';
+    // Emits声明
+    const emit = defineEmits(['register','success']);
+    const isUpdate = ref(true);
+    //表单配置
+    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
+        //labelWidth: 150,
+        schemas: formSchema,
+        showActionButtonGroup: false,
+        baseColProps: {span: 24}
+    });
+    //表单赋值
+    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
+        //重置表单
+        await resetFields();
+        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
+        isUpdate.value = !!data?.isUpdate;
+        if (unref(isUpdate)) {
+            //表单赋值
+            await setFieldsValue({
+                ...data.record,
+            });
+        }
+        // 隐藏底部时禁用整个表单
+       setProps({ disabled: !data?.showFooter })
+    });
+    //设置标题
+    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
+    //表单提交事件
+    async function handleSubmit(v) {
+        try {
+            let values = await validate();
+            setModalProps({confirmLoading: true});
+            //提交表单
+            await saveOrUpdate(values, isUpdate.value);
+            //关闭弹窗
+            closeModal();
+            //刷新列表
+            emit('success');
+        } finally {
+            setModalProps({confirmLoading: false});
+        }
+    }
+</script>
+
+<style lang="less" scoped>
+	/** 时间和数字输入框样式 */
+  :deep(.ant-input-number){
+		width: 100%
+	}
+
+	:deep(.ant-calendar-picker){
+		width: 100%
+	}
+</style>

+ 70 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AdvanceWarningAuditForm.vue

@@ -0,0 +1,70 @@
+<template>
+    <div style="min-height: 400px">
+        <BasicForm @register="registerForm"></BasicForm>
+        <div style="width: 100%;text-align: center" v-if="!formDisabled">
+            <a-button @click="submitForm" pre-icon="ant-design:check" type="primary">提 交</a-button>
+        </div>
+    </div>
+</template>
+
+<script lang="ts">
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {computed, defineComponent} from 'vue';
+    import {defHttp} from '/@/utils/http/axios';
+    import { propTypes } from '/@/utils/propTypes';
+    import {getBpmFormSchema} from '../AdvanceWarningAudit.data';
+    import {saveOrUpdate} from '../AdvanceWarningAudit.api';
+    
+    export default defineComponent({
+        name: "AdvanceWarningAuditForm",
+        components:{
+            BasicForm
+        },
+        props:{
+            formData: propTypes.object.def({}),
+            formBpm: propTypes.bool.def(true),
+        },
+        setup(props){
+            const [registerForm, { setFieldsValue, setProps, getFieldsValue }] = useForm({
+                labelWidth: 150,
+                schemas: getBpmFormSchema(props.formData),
+                showActionButtonGroup: false,
+                baseColProps: {span: 24}
+            });
+
+            const formDisabled = computed(()=>{
+                if(props.formData.disabled === false){
+                    return false;
+                }
+                return true;
+            });
+
+            let formData = {};
+            const queryByIdUrl = '/medical/advanceWarningAudit/queryById';
+            async function initFormData(){
+                let params = {id: props.formData.dataId};
+                const data = await defHttp.get({url: queryByIdUrl, params});
+                formData = {...data}
+                //设置表单的值
+                await setFieldsValue(formData);
+                //默认是禁用
+                await setProps({disabled: formDisabled.value})
+            }
+
+            async function submitForm() {
+                let data = getFieldsValue();
+                let params = Object.assign({}, formData, data);
+                console.log('表单数据', params)
+                await saveOrUpdate(params, true)
+            }
+
+            initFormData();
+            
+            return {
+                registerForm,
+                formDisabled,
+                submitForm,
+            }
+        }
+    });
+</script>

+ 66 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AdvanceWarningAuditModal.vue

@@ -0,0 +1,66 @@
+<template>
+  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit">
+      <BasicForm @register="registerForm"/>
+  </BasicModal>
+</template>
+
+<script lang="ts" setup>
+    import {ref, computed, unref} from 'vue';
+    import {BasicModal, useModalInner} from '/@/components/Modal';
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {formSchema} from '../AdvanceWarningAudit.data';
+    import {saveOrUpdate} from '../AdvanceWarningAudit.api';
+    // Emits声明
+    const emit = defineEmits(['register','success']);
+    const isUpdate = ref(true);
+    //表单配置
+    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
+        //labelWidth: 150,
+        schemas: formSchema,
+        showActionButtonGroup: false,
+        baseColProps: {span: 24}
+    });
+    //表单赋值
+    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
+        //重置表单
+        await resetFields();
+        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
+        isUpdate.value = !!data?.isUpdate;
+        if (unref(isUpdate)) {
+            //表单赋值
+            await setFieldsValue({
+                ...data.record,
+            });
+        }
+        // 隐藏底部时禁用整个表单
+       setProps({ disabled: !data?.showFooter })
+    });
+    //设置标题
+    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
+    //表单提交事件
+    async function handleSubmit(v) {
+        try {
+            let values = await validate();
+            setModalProps({confirmLoading: true});
+            //提交表单
+            await saveOrUpdate(values, isUpdate.value);
+            //关闭弹窗
+            closeModal();
+            //刷新列表
+            emit('success');
+        } finally {
+            setModalProps({confirmLoading: false});
+        }
+    }
+</script>
+
+<style lang="less" scoped>
+	/** 时间和数字输入框样式 */
+  :deep(.ant-input-number){
+		width: 100%
+	}
+
+	:deep(.ant-calendar-picker){
+		width: 100%
+	}
+</style>

+ 70 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AfterwardsAuditDetailForm.vue

@@ -0,0 +1,70 @@
+<template>
+    <div style="min-height: 400px">
+        <BasicForm @register="registerForm"></BasicForm>
+        <div style="width: 100%;text-align: center" v-if="!formDisabled">
+            <a-button @click="submitForm" pre-icon="ant-design:check" type="primary">提 交</a-button>
+        </div>
+    </div>
+</template>
+
+<script lang="ts">
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {computed, defineComponent} from 'vue';
+    import {defHttp} from '/@/utils/http/axios';
+    import { propTypes } from '/@/utils/propTypes';
+    import {getBpmFormSchema} from '../AfterwardsAuditDetail.data';
+    import {saveOrUpdate} from '../AfterwardsAuditDetail.api';
+    
+    export default defineComponent({
+        name: "AfterwardsAuditDetailForm",
+        components:{
+            BasicForm
+        },
+        props:{
+            formData: propTypes.object.def({}),
+            formBpm: propTypes.bool.def(true),
+        },
+        setup(props){
+            const [registerForm, { setFieldsValue, setProps, getFieldsValue }] = useForm({
+                labelWidth: 150,
+                schemas: getBpmFormSchema(props.formData),
+                showActionButtonGroup: false,
+                baseColProps: {span: 24}
+            });
+
+            const formDisabled = computed(()=>{
+                if(props.formData.disabled === false){
+                    return false;
+                }
+                return true;
+            });
+
+            let formData = {};
+            const queryByIdUrl = '/medical/afterwardsAuditDetail/queryById';
+            async function initFormData(){
+                let params = {id: props.formData.dataId};
+                const data = await defHttp.get({url: queryByIdUrl, params});
+                formData = {...data}
+                //设置表单的值
+                await setFieldsValue(formData);
+                //默认是禁用
+                await setProps({disabled: formDisabled.value})
+            }
+
+            async function submitForm() {
+                let data = getFieldsValue();
+                let params = Object.assign({}, formData, data);
+                console.log('表单数据', params)
+                await saveOrUpdate(params, true)
+            }
+
+            initFormData();
+            
+            return {
+                registerForm,
+                formDisabled,
+                submitForm,
+            }
+        }
+    });
+</script>

+ 66 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AfterwardsAuditDetailModal.vue

@@ -0,0 +1,66 @@
+<template>
+  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit">
+      <BasicForm @register="registerForm"/>
+  </BasicModal>
+</template>
+
+<script lang="ts" setup>
+    import {ref, computed, unref} from 'vue';
+    import {BasicModal, useModalInner} from '/@/components/Modal';
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {formSchema} from '../AfterwardsAuditDetail.data';
+    import {saveOrUpdate} from '../AfterwardsAuditDetail.api';
+    // Emits声明
+    const emit = defineEmits(['register','success']);
+    const isUpdate = ref(true);
+    //表单配置
+    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
+        //labelWidth: 150,
+        schemas: formSchema,
+        showActionButtonGroup: false,
+        baseColProps: {span: 24}
+    });
+    //表单赋值
+    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
+        //重置表单
+        await resetFields();
+        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
+        isUpdate.value = !!data?.isUpdate;
+        if (unref(isUpdate)) {
+            //表单赋值
+            await setFieldsValue({
+                ...data.record,
+            });
+        }
+        // 隐藏底部时禁用整个表单
+       setProps({ disabled: !data?.showFooter })
+    });
+    //设置标题
+    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
+    //表单提交事件
+    async function handleSubmit(v) {
+        try {
+            let values = await validate();
+            setModalProps({confirmLoading: true});
+            //提交表单
+            await saveOrUpdate(values, isUpdate.value);
+            //关闭弹窗
+            closeModal();
+            //刷新列表
+            emit('success');
+        } finally {
+            setModalProps({confirmLoading: false});
+        }
+    }
+</script>
+
+<style lang="less" scoped>
+	/** 时间和数字输入框样式 */
+  :deep(.ant-input-number){
+		width: 100%
+	}
+
+	:deep(.ant-calendar-picker){
+		width: 100%
+	}
+</style>

+ 70 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AfterwardsAuditForm.vue

@@ -0,0 +1,70 @@
+<template>
+    <div style="min-height: 400px">
+        <BasicForm @register="registerForm"></BasicForm>
+        <div style="width: 100%;text-align: center" v-if="!formDisabled">
+            <a-button @click="submitForm" pre-icon="ant-design:check" type="primary">提 交</a-button>
+        </div>
+    </div>
+</template>
+
+<script lang="ts">
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {computed, defineComponent} from 'vue';
+    import {defHttp} from '/@/utils/http/axios';
+    import { propTypes } from '/@/utils/propTypes';
+    import {getBpmFormSchema} from '../AfterwardsAudit.data';
+    import {saveOrUpdate} from '../AfterwardsAudit.api';
+    
+    export default defineComponent({
+        name: "AfterwardsAuditForm",
+        components:{
+            BasicForm
+        },
+        props:{
+            formData: propTypes.object.def({}),
+            formBpm: propTypes.bool.def(true),
+        },
+        setup(props){
+            const [registerForm, { setFieldsValue, setProps, getFieldsValue }] = useForm({
+                labelWidth: 150,
+                schemas: getBpmFormSchema(props.formData),
+                showActionButtonGroup: false,
+                baseColProps: {span: 24}
+            });
+
+            const formDisabled = computed(()=>{
+                if(props.formData.disabled === false){
+                    return false;
+                }
+                return true;
+            });
+
+            let formData = {};
+            const queryByIdUrl = '/medical/afterwardsAudit/queryById';
+            async function initFormData(){
+                let params = {id: props.formData.dataId};
+                const data = await defHttp.get({url: queryByIdUrl, params});
+                formData = {...data}
+                //设置表单的值
+                await setFieldsValue(formData);
+                //默认是禁用
+                await setProps({disabled: formDisabled.value})
+            }
+
+            async function submitForm() {
+                let data = getFieldsValue();
+                let params = Object.assign({}, formData, data);
+                console.log('表单数据', params)
+                await saveOrUpdate(params, true)
+            }
+
+            initFormData();
+            
+            return {
+                registerForm,
+                formDisabled,
+                submitForm,
+            }
+        }
+    });
+</script>

+ 66 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/AfterwardsAuditModal.vue

@@ -0,0 +1,66 @@
+<template>
+  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit">
+      <BasicForm @register="registerForm"/>
+  </BasicModal>
+</template>
+
+<script lang="ts" setup>
+    import {ref, computed, unref} from 'vue';
+    import {BasicModal, useModalInner} from '/@/components/Modal';
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {formSchema} from '../AfterwardsAudit.data';
+    import {saveOrUpdate} from '../AfterwardsAudit.api';
+    // Emits声明
+    const emit = defineEmits(['register','success']);
+    const isUpdate = ref(true);
+    //表单配置
+    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
+        //labelWidth: 150,
+        schemas: formSchema,
+        showActionButtonGroup: false,
+        baseColProps: {span: 24}
+    });
+    //表单赋值
+    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
+        //重置表单
+        await resetFields();
+        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
+        isUpdate.value = !!data?.isUpdate;
+        if (unref(isUpdate)) {
+            //表单赋值
+            await setFieldsValue({
+                ...data.record,
+            });
+        }
+        // 隐藏底部时禁用整个表单
+       setProps({ disabled: !data?.showFooter })
+    });
+    //设置标题
+    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
+    //表单提交事件
+    async function handleSubmit(v) {
+        try {
+            let values = await validate();
+            setModalProps({confirmLoading: true});
+            //提交表单
+            await saveOrUpdate(values, isUpdate.value);
+            //关闭弹窗
+            closeModal();
+            //刷新列表
+            emit('success');
+        } finally {
+            setModalProps({confirmLoading: false});
+        }
+    }
+</script>
+
+<style lang="less" scoped>
+	/** 时间和数字输入框样式 */
+  :deep(.ant-input-number){
+		width: 100%
+	}
+
+	:deep(.ant-calendar-picker){
+		width: 100%
+	}
+</style>

+ 70 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/MidIncidentAuditDetailForm.vue

@@ -0,0 +1,70 @@
+<template>
+    <div style="min-height: 400px">
+        <BasicForm @register="registerForm"></BasicForm>
+        <div style="width: 100%;text-align: center" v-if="!formDisabled">
+            <a-button @click="submitForm" pre-icon="ant-design:check" type="primary">提 交</a-button>
+        </div>
+    </div>
+</template>
+
+<script lang="ts">
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {computed, defineComponent} from 'vue';
+    import {defHttp} from '/@/utils/http/axios';
+    import { propTypes } from '/@/utils/propTypes';
+    import {getBpmFormSchema} from '../MidIncidentAuditDetail.data';
+    import {saveOrUpdate} from '../MidIncidentAuditDetail.api';
+    
+    export default defineComponent({
+        name: "MidIncidentAuditDetailForm",
+        components:{
+            BasicForm
+        },
+        props:{
+            formData: propTypes.object.def({}),
+            formBpm: propTypes.bool.def(true),
+        },
+        setup(props){
+            const [registerForm, { setFieldsValue, setProps, getFieldsValue }] = useForm({
+                labelWidth: 150,
+                schemas: getBpmFormSchema(props.formData),
+                showActionButtonGroup: false,
+                baseColProps: {span: 24}
+            });
+
+            const formDisabled = computed(()=>{
+                if(props.formData.disabled === false){
+                    return false;
+                }
+                return true;
+            });
+
+            let formData = {};
+            const queryByIdUrl = '/medical/midIncidentAuditDetail/queryById';
+            async function initFormData(){
+                let params = {id: props.formData.dataId};
+                const data = await defHttp.get({url: queryByIdUrl, params});
+                formData = {...data}
+                //设置表单的值
+                await setFieldsValue(formData);
+                //默认是禁用
+                await setProps({disabled: formDisabled.value})
+            }
+
+            async function submitForm() {
+                let data = getFieldsValue();
+                let params = Object.assign({}, formData, data);
+                console.log('表单数据', params)
+                await saveOrUpdate(params, true)
+            }
+
+            initFormData();
+            
+            return {
+                registerForm,
+                formDisabled,
+                submitForm,
+            }
+        }
+    });
+</script>

+ 66 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/MidIncidentAuditDetailModal.vue

@@ -0,0 +1,66 @@
+<template>
+  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit">
+      <BasicForm @register="registerForm"/>
+  </BasicModal>
+</template>
+
+<script lang="ts" setup>
+    import {ref, computed, unref} from 'vue';
+    import {BasicModal, useModalInner} from '/@/components/Modal';
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {formSchema} from '../MidIncidentAuditDetail.data';
+    import {saveOrUpdate} from '../MidIncidentAuditDetail.api';
+    // Emits声明
+    const emit = defineEmits(['register','success']);
+    const isUpdate = ref(true);
+    //表单配置
+    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
+        //labelWidth: 150,
+        schemas: formSchema,
+        showActionButtonGroup: false,
+        baseColProps: {span: 24}
+    });
+    //表单赋值
+    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
+        //重置表单
+        await resetFields();
+        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
+        isUpdate.value = !!data?.isUpdate;
+        if (unref(isUpdate)) {
+            //表单赋值
+            await setFieldsValue({
+                ...data.record,
+            });
+        }
+        // 隐藏底部时禁用整个表单
+       setProps({ disabled: !data?.showFooter })
+    });
+    //设置标题
+    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
+    //表单提交事件
+    async function handleSubmit(v) {
+        try {
+            let values = await validate();
+            setModalProps({confirmLoading: true});
+            //提交表单
+            await saveOrUpdate(values, isUpdate.value);
+            //关闭弹窗
+            closeModal();
+            //刷新列表
+            emit('success');
+        } finally {
+            setModalProps({confirmLoading: false});
+        }
+    }
+</script>
+
+<style lang="less" scoped>
+	/** 时间和数字输入框样式 */
+  :deep(.ant-input-number){
+		width: 100%
+	}
+
+	:deep(.ant-calendar-picker){
+		width: 100%
+	}
+</style>

+ 70 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/MidIncidentAuditForm.vue

@@ -0,0 +1,70 @@
+<template>
+    <div style="min-height: 400px">
+        <BasicForm @register="registerForm"></BasicForm>
+        <div style="width: 100%;text-align: center" v-if="!formDisabled">
+            <a-button @click="submitForm" pre-icon="ant-design:check" type="primary">提 交</a-button>
+        </div>
+    </div>
+</template>
+
+<script lang="ts">
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {computed, defineComponent} from 'vue';
+    import {defHttp} from '/@/utils/http/axios';
+    import { propTypes } from '/@/utils/propTypes';
+    import {getBpmFormSchema} from '../MidIncidentAudit.data';
+    import {saveOrUpdate} from '../MidIncidentAudit.api';
+    
+    export default defineComponent({
+        name: "MidIncidentAuditForm",
+        components:{
+            BasicForm
+        },
+        props:{
+            formData: propTypes.object.def({}),
+            formBpm: propTypes.bool.def(true),
+        },
+        setup(props){
+            const [registerForm, { setFieldsValue, setProps, getFieldsValue }] = useForm({
+                labelWidth: 150,
+                schemas: getBpmFormSchema(props.formData),
+                showActionButtonGroup: false,
+                baseColProps: {span: 24}
+            });
+
+            const formDisabled = computed(()=>{
+                if(props.formData.disabled === false){
+                    return false;
+                }
+                return true;
+            });
+
+            let formData = {};
+            const queryByIdUrl = '/medical/midIncidentAudit/queryById';
+            async function initFormData(){
+                let params = {id: props.formData.dataId};
+                const data = await defHttp.get({url: queryByIdUrl, params});
+                formData = {...data}
+                //设置表单的值
+                await setFieldsValue(formData);
+                //默认是禁用
+                await setProps({disabled: formDisabled.value})
+            }
+
+            async function submitForm() {
+                let data = getFieldsValue();
+                let params = Object.assign({}, formData, data);
+                console.log('表单数据', params)
+                await saveOrUpdate(params, true)
+            }
+
+            initFormData();
+            
+            return {
+                registerForm,
+                formDisabled,
+                submitForm,
+            }
+        }
+    });
+</script>

+ 66 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/vue3/components/MidIncidentAuditModal.vue

@@ -0,0 +1,66 @@
+<template>
+  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800" @ok="handleSubmit">
+      <BasicForm @register="registerForm"/>
+  </BasicModal>
+</template>
+
+<script lang="ts" setup>
+    import {ref, computed, unref} from 'vue';
+    import {BasicModal, useModalInner} from '/@/components/Modal';
+    import {BasicForm, useForm} from '/@/components/Form/index';
+    import {formSchema} from '../MidIncidentAudit.data';
+    import {saveOrUpdate} from '../MidIncidentAudit.api';
+    // Emits声明
+    const emit = defineEmits(['register','success']);
+    const isUpdate = ref(true);
+    //表单配置
+    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
+        //labelWidth: 150,
+        schemas: formSchema,
+        showActionButtonGroup: false,
+        baseColProps: {span: 24}
+    });
+    //表单赋值
+    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
+        //重置表单
+        await resetFields();
+        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
+        isUpdate.value = !!data?.isUpdate;
+        if (unref(isUpdate)) {
+            //表单赋值
+            await setFieldsValue({
+                ...data.record,
+            });
+        }
+        // 隐藏底部时禁用整个表单
+       setProps({ disabled: !data?.showFooter })
+    });
+    //设置标题
+    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
+    //表单提交事件
+    async function handleSubmit(v) {
+        try {
+            let values = await validate();
+            setModalProps({confirmLoading: true});
+            //提交表单
+            await saveOrUpdate(values, isUpdate.value);
+            //关闭弹窗
+            closeModal();
+            //刷新列表
+            emit('success');
+        } finally {
+            setModalProps({confirmLoading: false});
+        }
+    }
+</script>
+
+<style lang="less" scoped>
+	/** 时间和数字输入框样式 */
+  :deep(.ant-input-number){
+		width: 100%
+	}
+
+	:deep(.ant-calendar-picker){
+		width: 100%
+	}
+</style>