Compare commits

...

28 Commits
master ... new

Author SHA1 Message Date
zzc 45cb6e55a1 Merge branch 'new' of http://116.204.114.73:3000/ccsens_zhengzhichuan/acupuncture into new 1 week ago
zzc 676559c3bb 后台导出诊疗档案zip汇总 1 week ago
liuzhipeng 8bf07274d6 调整后台诊疗档案表单lable宽度 1 week ago
liuzhipeng f6f5b5c983 上报标题字段替换 1 week ago
liuzhipeng 5b1d2078e9 后台诊疗档案添加审核 1 week ago
liuzhipeng 61a3cf5d54 上报管理,进行中的上报不能修改删除 1 week ago
liuzhipeng 0e7cf88345 修改类型附件下载报错 1 week ago
liuzhipeng e7a5c6735f 前台诊疗档案添加诊疗日期、填报类型查询 1 week ago
liuzhipeng 53311e9c10 重置清空时间数组 1 week ago
liuzhipeng 8b500d5848 新增诊疗档案修改为新增病历直报 1 week ago
liuzhipeng e6b032a1f2 后台添加患者列表添加下载模版,导入 1 week ago
liuzhipeng dcb3499ac8 诊疗档案添加上报标题、门诊/住院时间查询,列表回显上报标题 1 week ago
lzp bd062eceba 前台诊疗添加上报查询,新增选择上报 1 week ago
lzp b8cf8e3ee8 后台下载上报汇总表 1 week ago
lzp 6b87793790 上报管理添加下载上报汇总表 1 week ago
lzp 5464e1dbee 上报管理添加单位、状态,支持手动修改开启结束状态 1 week ago
lzp 44df6bee76 上报管理添加单位、状态,支持手动修改开启关闭状态 1 week ago
lzp 1e74bec548 上报类型添加单位,附件,备注 1 week ago
lzp 8f072269d2 新增、修改缓存列表 1 week ago
lzp 74ec7f83eb 强制修改密码弹窗 1 week ago
zzc 060df6ee18 添加缓存新增接口 1 week ago
zzc 8fde8ab816 添加在线用户监控最后操作时间字段 1 week ago
lzp d9969d686d 服务监控添加数据库状态 1 week ago
lzp 58752ef8ac 通知公告添加现在通知用户 1 week ago
lzp fe0735644c 字典表明细添加数据类型、长度、是否必填、是否唯一 1 week ago
zzc 027eeb6bee 添加字典数据字段 1 week ago
zzc 99a6dbadfc 添加菜单、字典字段 客户端类型 1 week ago
lzp 801e53136f 角色、菜单管理添加客户端类型 1 week ago
  1. 17
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/monitor/CacheController.java
  2. 43
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/AdminPmsTreatmentController.java
  3. 36
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/AdminReportController.java
  4. 1
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/DmsLoginController.java
  5. 49
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/PmsTreatmentController.java
  6. 46
      acupuncture-common/src/main/java/com/acupuncture/common/core/domain/entity/SysDictData.java
  7. 10
      acupuncture-common/src/main/java/com/acupuncture/common/core/domain/entity/SysMenu.java
  8. 11
      acupuncture-common/src/main/java/com/acupuncture/common/core/domain/entity/SysRole.java
  9. 147
      acupuncture-common/src/main/java/com/acupuncture/common/utils/ZipUtils.java
  10. 8
      acupuncture-generator/src/main/resources/mbg.xml
  11. 37
      acupuncture-system/src/main/java/com/acupuncture/system/domain/SysNotice.java
  12. 15
      acupuncture-system/src/main/java/com/acupuncture/system/domain/SysUserOnline.java
  13. 12
      acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/AdminReportDto.java
  14. 33
      acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/PmsTreatmentDto.java
  15. 11
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/DmsUser.java
  16. 60
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/DmsUserExample.java
  17. 11
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/PmsTreatment.java
  18. 60
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/PmsTreatmentExample.java
  19. 106
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportManagementTenant.java
  20. 711
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportManagementTenantExample.java
  21. 11
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportType.java
  22. 70
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportTypeExample.java
  23. 106
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportTypeTenant.java
  24. 711
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportTypeTenantExample.java
  25. 106
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/SysNoticeUser.java
  26. 711
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/SysNoticeUserExample.java
  27. 9
      acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/AdminReportVo.java
  28. 3
      acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/DmsLoginUserVo.java
  29. 2
      acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/PmsTreatmentVo.java
  30. 4
      acupuncture-system/src/main/java/com/acupuncture/system/mapper/SysNoticeMapper.java
  31. 2
      acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/PmsTreatmentDao.java
  32. 3
      acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/RmsReportDao.java
  33. 28
      acupuncture-system/src/main/java/com/acupuncture/system/persist/mapper/RmsReportManagementTenantMapper.java
  34. 28
      acupuncture-system/src/main/java/com/acupuncture/system/persist/mapper/RmsReportTypeTenantMapper.java
  35. 28
      acupuncture-system/src/main/java/com/acupuncture/system/persist/mapper/SysNoticeUserMapper.java
  36. 17
      acupuncture-system/src/main/java/com/acupuncture/system/service/AdminReportService.java
  37. 12
      acupuncture-system/src/main/java/com/acupuncture/system/service/PmsTreatmentService.java
  38. 151
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminReportServiceImpl.java
  39. 1
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminTenantUserServiceImpl.java
  40. 1
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/DmsLoginServiceImpl.java
  41. 372
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java
  42. 151
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/SysNoticeServiceImpl.java
  43. 1
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/SysUserOnlineServiceImpl.java
  44. 31
      acupuncture-system/src/main/resources/mapper/dao/AdminRmsReportDao.xml
  45. 4
      acupuncture-system/src/main/resources/mapper/dao/DmsUserDao.xml
  46. 128
      acupuncture-system/src/main/resources/mapper/dao/PmsTreatmentDao.xml
  47. 25
      acupuncture-system/src/main/resources/mapper/system/DmsUserMapper.xml
  48. 29
      acupuncture-system/src/main/resources/mapper/system/PmsTreatmentMapper.xml
  49. 252
      acupuncture-system/src/main/resources/mapper/system/RmsReportManagementTenantMapper.xml
  50. 28
      acupuncture-system/src/main/resources/mapper/system/RmsReportTypeMapper.xml
  51. 252
      acupuncture-system/src/main/resources/mapper/system/RmsReportTypeTenantMapper.xml
  52. 22
      acupuncture-system/src/main/resources/mapper/system/SysDictDataMapper.xml
  53. 9
      acupuncture-system/src/main/resources/mapper/system/SysMenuMapper.xml
  54. 41
      acupuncture-system/src/main/resources/mapper/system/SysNoticeMapper.xml
  55. 252
      acupuncture-system/src/main/resources/mapper/system/SysNoticeUserMapper.xml
  56. 9
      acupuncture-system/src/main/resources/mapper/system/SysRoleMapper.xml
  57. 117
      acupuncture-前台/src/App.vue
  58. 15
      acupuncture-前台/src/api/medicalFile.js
  59. 1
      acupuncture-前台/src/store/getters.js
  60. 148
      acupuncture-前台/src/store/modules/user.js
  61. 259
      acupuncture-前台/src/views/medicalFile/index.vue
  62. 2
      acupuncture-前台/src/views/patientFile/index.vue
  63. BIN
      acupuncture-前台/南宁针灸前台ssl-4.zip
  64. BIN
      acupuncture-前台/针灸前台clientssl-2.zip
  65. 8
      acupuncture-后台/src/api/medicalFile.js
  66. 52
      acupuncture-后台/src/api/monitor/cache.js
  67. 10
      acupuncture-后台/src/api/report.js
  68. 2
      acupuncture-后台/src/views/followFile/work.vue
  69. 523
      acupuncture-后台/src/views/medicalFile/index.vue
  70. 103
      acupuncture-后台/src/views/monitor/cache/list.vue
  71. 5
      acupuncture-后台/src/views/monitor/online/index.vue
  72. 25
      acupuncture-后台/src/views/monitor/server/index.vue
  73. 32
      acupuncture-后台/src/views/patientFile/index.vue
  74. 915
      acupuncture-后台/src/views/report/manage.vue
  75. 719
      acupuncture-后台/src/views/report/type.vue
  76. 268
      acupuncture-后台/src/views/system/dict/data.vue
  77. 2
      acupuncture-后台/src/views/system/dict/index.vue
  78. 30
      acupuncture-后台/src/views/system/menu/index.vue
  79. 276
      acupuncture-后台/src/views/system/notice/index.vue
  80. 388
      acupuncture-后台/src/views/system/role/index.vue
  81. BIN
      acupuncture-后台/南宁针灸后台ssl-4.zip

17
acupuncture-admin/src/main/java/com/acupuncture/web/controller/monitor/CacheController.java

@ -8,15 +8,13 @@ import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.acupuncture.common.constant.CacheConstants; import com.acupuncture.common.constant.CacheConstants;
import com.acupuncture.common.core.domain.AjaxResult; import com.acupuncture.common.core.domain.AjaxResult;
import com.acupuncture.common.utils.StringUtils; import com.acupuncture.common.utils.StringUtils;
@ -97,6 +95,7 @@ public class CacheController
@DeleteMapping("/clearCacheName/{cacheName}") @DeleteMapping("/clearCacheName/{cacheName}")
public AjaxResult clearCacheName(@PathVariable String cacheName) public AjaxResult clearCacheName(@PathVariable String cacheName)
{ {
caches.remove(cacheName);
Collection<String> cacheKeys = redisTemplate.keys(cacheName + "*"); Collection<String> cacheKeys = redisTemplate.keys(cacheName + "*");
redisTemplate.delete(cacheKeys); redisTemplate.delete(cacheKeys);
return AjaxResult.success(); return AjaxResult.success();
@ -118,4 +117,12 @@ public class CacheController
redisTemplate.delete(cacheKeys); redisTemplate.delete(cacheKeys);
return AjaxResult.success(); return AjaxResult.success();
} }
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
@GetMapping("/add")
public AjaxResult add(@RequestParam("cacheName") String cacheName, @RequestParam("remark") String remark)
{
caches.add(new SysCache(cacheName, remark));
return AjaxResult.success(caches);
}
} }

43
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/AdminPmsTreatmentController.java

@ -4,6 +4,7 @@ import com.acupuncture.common.annotation.DataSource;
import com.acupuncture.common.core.domain.BaseDto; import com.acupuncture.common.core.domain.BaseDto;
import com.acupuncture.common.core.domain.JsonResponse; import com.acupuncture.common.core.domain.JsonResponse;
import com.acupuncture.common.enums.DataSourceType; import com.acupuncture.common.enums.DataSourceType;
import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.framework.datasource.DynamicDataSourceContextHolder; import com.acupuncture.framework.datasource.DynamicDataSourceContextHolder;
import com.acupuncture.system.domain.dto.PmsTreatmentDto; import com.acupuncture.system.domain.dto.PmsTreatmentDto;
import com.acupuncture.system.domain.po.DmsTenant; import com.acupuncture.system.domain.po.DmsTenant;
@ -12,6 +13,7 @@ import com.acupuncture.system.domain.vo.PmsTreatmentVo;
import com.acupuncture.system.domain.vo.UmsDataSourceVo; import com.acupuncture.system.domain.vo.UmsDataSourceVo;
import com.acupuncture.system.persist.mapper.DmsTenantMapper; import com.acupuncture.system.persist.mapper.DmsTenantMapper;
import com.acupuncture.system.persist.mapper.UmsDataSourceMapper; import com.acupuncture.system.persist.mapper.UmsDataSourceMapper;
import com.acupuncture.system.service.DmsLoginService;
import com.acupuncture.system.service.PmsTreatmentService; import com.acupuncture.system.service.PmsTreatmentService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
@ -43,6 +45,8 @@ public class AdminPmsTreatmentController {
@Resource @Resource
private PmsTreatmentService treatmentService; private PmsTreatmentService treatmentService;
@Resource
private DmsLoginService dmsLoginService;
@ApiOperation("查询诊疗档案") @ApiOperation("查询诊疗档案")
@PostMapping("/list") @PostMapping("/list")
@ -68,6 +72,21 @@ public class AdminPmsTreatmentController {
treatmentService.adminExportTreatment(response, dto); treatmentService.adminExportTreatment(response, dto);
} }
@DataSource(DataSourceType.MASTER)
@ApiOperation("导入诊疗档案数据")
@PostMapping("/importTreatment")
public JsonResponse<Integer> importTreatment(MultipartFile file) throws IOException {
//切换数据源
String[] strs = treatmentService.getTenantId(file);
DynamicDataSourceContextHolder.setDataSourceType(strs[0]);
treatmentService.importTreatmentAdmin(file, Long.parseLong(strs[1]));
//销毁数据源
DynamicDataSourceContextHolder.clearDataSourceType();
return JsonResponse.ok();
}
// @ApiOperation("修改诊疗档案") // @ApiOperation("修改诊疗档案")
// @PostMapping("/upd") // @PostMapping("/upd")
// public JsonResponse<Integer> updateTreatment(@RequestBody @Validated PmsTreatmentDto.TreatmentUpdateDTO dto) { // public JsonResponse<Integer> updateTreatment(@RequestBody @Validated PmsTreatmentDto.TreatmentUpdateDTO dto) {
@ -82,9 +101,33 @@ public class AdminPmsTreatmentController {
// return JsonResponse.ok(treatmentService.exportTreatmentPg(response, dto)); // return JsonResponse.ok(treatmentService.exportTreatmentPg(response, dto));
// } // }
@DataSource(DataSourceType.MASTER)
@ApiOperation("后台导出诊疗档案评估报告") @ApiOperation("后台导出诊疗档案评估报告")
@PostMapping("/exportTreatmentPg") @PostMapping("/exportTreatmentPg")
public JsonResponse<String> adminExportTreatmentPg(HttpServletResponse response, @RequestBody @Validated PmsTreatmentDto.ExportVO dto){ public JsonResponse<String> adminExportTreatmentPg(HttpServletResponse response, @RequestBody @Validated PmsTreatmentDto.ExportVO dto){
return JsonResponse.ok(treatmentService.adminExportTreatmentPg(response, dto)); return JsonResponse.ok(treatmentService.adminExportTreatmentPg(response, dto));
} }
@DataSource(DataSourceType.MASTER)
@ApiOperation("后台导出诊疗档案评估报告zip")
@PostMapping("/adminExportTreatmentPgZip")
public JsonResponse<String> adminExportTreatmentPgZip(HttpServletResponse response, @RequestBody @Validated PmsTreatmentDto.ExportZipVO dto) throws IOException{
return JsonResponse.ok(treatmentService.adminExportTreatmentPgZip(response, dto));
}
@ApiOperation("审核")
@PostMapping("/aduit")
public JsonResponse<Integer> aduit( @RequestBody @Validated PmsTreatmentDto.Aduit dto){
try {
UmsDataSource dataSourceByTenantId = dmsLoginService.getDataSourceByTenantId(dto.getTenantId());
if (dataSourceByTenantId != null) {
DynamicDataSourceContextHolder.setDataSourceType(dataSourceByTenantId.getDataSourceKey());
}
treatmentService.aduit(dto.getTreatmentId(), dto.getStatus());
return JsonResponse.ok();
}finally {
DynamicDataSourceContextHolder.clearDataSourceType();
}
}
} }

36
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/AdminReportController.java

@ -1,10 +1,15 @@
package com.acupuncture.web.controller.web; package com.acupuncture.web.controller.web;
import com.acupuncture.common.annotation.DataScope;
import com.acupuncture.common.annotation.DataSource;
import com.acupuncture.common.core.domain.BaseDto; import com.acupuncture.common.core.domain.BaseDto;
import com.acupuncture.common.core.domain.JsonResponse; import com.acupuncture.common.core.domain.JsonResponse;
import com.acupuncture.common.enums.DataSourceType;
import com.acupuncture.system.domain.dto.AdminReportDto; import com.acupuncture.system.domain.dto.AdminReportDto;
import com.acupuncture.system.domain.vo.AdminReportVo; import com.acupuncture.system.domain.vo.AdminReportVo;
import com.acupuncture.system.service.AdminReportService; import com.acupuncture.system.service.AdminReportService;
import com.acupuncture.system.service.RmsReportService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -32,51 +37,66 @@ public class AdminReportController {
@Resource @Resource
private AdminReportService reportService; private AdminReportService reportService;
@DataSource(DataSourceType.MASTER)
@ApiOperation("查询上报类型") @ApiOperation("查询上报类型")
@PostMapping("/list") @PostMapping("/list")
public JsonResponse<PageInfo<AdminReportVo.TypeResult>> queryTypeList(@RequestBody @Validated BaseDto<AdminReportDto.Query> dto){ public JsonResponse<PageInfo<AdminReportVo.TypeResult>> queryTypeList(@RequestBody @Validated BaseDto<AdminReportDto.Query> dto) {
if (dto.getPageNum() > 0) {
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
}
return JsonResponse.ok(new PageInfo<>(reportService.queryTypeList(dto.getParam().getName()))); return JsonResponse.ok(new PageInfo<>(reportService.queryTypeList(dto.getParam().getName())));
} }
@ApiOperation("新增上报类型") @ApiOperation("新增上报类型")
@PostMapping("/add") @PostMapping("/add")
public JsonResponse<Integer> insert(@RequestBody @Validated AdminReportDto.AddDto dto){ public JsonResponse<Integer> insert(@RequestBody @Validated AdminReportDto.AddDto dto) {
return JsonResponse.ok(reportService.insert(dto)); return JsonResponse.ok(reportService.insert(dto));
} }
@ApiOperation("修改上报类型") @ApiOperation("修改上报类型")
@PostMapping("/upd") @PostMapping("/upd")
public JsonResponse<Integer> update(@RequestBody @Validated AdminReportDto.UpdDto dto){ public JsonResponse<Integer> update(@RequestBody @Validated AdminReportDto.UpdDto dto) {
return JsonResponse.ok(reportService.update(dto)); return JsonResponse.ok(reportService.update(dto));
} }
@ApiOperation("删除上报类型") @ApiOperation("删除上报类型")
@PostMapping("/del") @PostMapping("/del")
public JsonResponse<Integer> delete(@RequestBody @Validated AdminReportDto.DeleteDto dto){ public JsonResponse<Integer> delete(@RequestBody @Validated AdminReportDto.DeleteDto dto) {
return JsonResponse.ok(reportService.delete(dto)); return JsonResponse.ok(reportService.delete(dto));
} }
@DataSource(DataSourceType.MASTER)
@ApiOperation("查询我的上报管理")
@PostMapping("/queryManagerMy")
public JsonResponse<PageInfo<AdminReportVo.Result>> queryManagerMy(@RequestBody @Validated BaseDto<AdminReportDto.QueryManagerDto> dto) {
return JsonResponse.ok(new PageInfo<>(reportService.queryManagerListMy(dto.getParam())));
}
@ApiOperation("查询上报管理") @ApiOperation("查询上报管理")
@PostMapping("/queryManager") @PostMapping("/queryManager")
public JsonResponse<PageInfo<AdminReportVo.Result>> queryManagerList(@RequestBody @Validated BaseDto<AdminReportDto.QueryManagerDto> dto){ public JsonResponse<PageInfo<AdminReportVo.Result>> queryManagerList(@RequestBody @Validated BaseDto<AdminReportDto.QueryManagerDto> dto) {
if (dto.getPageNum() > 0) {
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
}
return JsonResponse.ok(new PageInfo<>(reportService.queryManagerList(dto.getParam()))); return JsonResponse.ok(new PageInfo<>(reportService.queryManagerList(dto.getParam())));
} }
@ApiOperation("新增上报管理") @ApiOperation("新增上报管理")
@PostMapping("/addManager") @PostMapping("/addManager")
public JsonResponse<Integer> insertManager(@RequestBody @Validated AdminReportDto.AddManagerDto dto){ public JsonResponse<Integer> insertManager(@RequestBody @Validated AdminReportDto.AddManagerDto dto) {
return JsonResponse.ok(reportService.insertManager(dto)); return JsonResponse.ok(reportService.insertManager(dto));
} }
@ApiOperation("修改上报管理") @ApiOperation("修改上报管理")
@PostMapping("/updManager") @PostMapping("/updManager")
public JsonResponse<Integer> updateManager(@RequestBody @Validated AdminReportDto.UpdManagerDto dto){ public JsonResponse<Integer> updateManager(@RequestBody @Validated AdminReportDto.UpdManagerDto dto) {
return JsonResponse.ok(reportService.updateManager(dto)); return JsonResponse.ok(reportService.updateManager(dto));
} }
@ApiOperation("删除上报管理") @ApiOperation("删除上报管理")
@PostMapping("/delManager") @PostMapping("/delManager")
public JsonResponse<Integer> deleteManager(@RequestBody @Validated AdminReportDto.DeleteManagerDto dto){ public JsonResponse<Integer> deleteManager(@RequestBody @Validated AdminReportDto.DeleteManagerDto dto) {
return JsonResponse.ok(reportService.deleteManager(dto)); return JsonResponse.ok(reportService.deleteManager(dto));
} }

1
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/DmsLoginController.java

@ -143,6 +143,7 @@ public class DmsLoginController {
tokenService.refreshToken(loginUser); tokenService.refreshToken(loginUser);
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("user", user); ajax.put("user", user);
ajax.put("forceUpdPwdFlag" , tenantUser.getForceUpdPwdFlag());
return ajax; return ajax;
} }

49
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/PmsTreatmentController.java

@ -1,10 +1,22 @@
package com.acupuncture.web.controller.web; package com.acupuncture.web.controller.web;
import cn.hutool.core.collection.CollectionUtil;
import com.acupuncture.common.annotation.DataSource;
import com.acupuncture.common.core.domain.BaseDto; import com.acupuncture.common.core.domain.BaseDto;
import com.acupuncture.common.core.domain.JsonResponse; import com.acupuncture.common.core.domain.JsonResponse;
import com.acupuncture.common.enums.DataSourceType;
import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.framework.datasource.DynamicDataSourceContextHolder;
import com.acupuncture.system.domain.dto.PmsTreatmentDto; import com.acupuncture.system.domain.dto.PmsTreatmentDto;
import com.acupuncture.system.domain.po.RmsReportManagement;
import com.acupuncture.system.domain.po.RmsReportManagementExample;
import com.acupuncture.system.domain.po.UmsDataSource;
import com.acupuncture.system.domain.vo.PmsTreatmentVo; import com.acupuncture.system.domain.vo.PmsTreatmentVo;
import com.acupuncture.system.persist.mapper.RmsReportManagementMapper;
import com.acupuncture.system.service.AdminReportService;
import com.acupuncture.system.service.DmsLoginService;
import com.acupuncture.system.service.PmsTreatmentService; import com.acupuncture.system.service.PmsTreatmentService;
import com.acupuncture.system.service.RmsReportService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -22,6 +34,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Author zzc * @Author zzc
@ -37,6 +50,12 @@ public class PmsTreatmentController {
@Resource @Resource
private PmsTreatmentService treatmentService; private PmsTreatmentService treatmentService;
@Resource
private AdminReportService adminReportService;
@Resource
private DmsLoginService dmsLoginService;
@Resource
private RmsReportManagementMapper rmsReportManagementMapper;
@ApiOperation("添加诊疗档案") @ApiOperation("添加诊疗档案")
@PostMapping("/add") @PostMapping("/add")
@ -59,13 +78,35 @@ public class PmsTreatmentController {
return JsonResponse.ok(); return JsonResponse.ok();
} }
@DataSource(DataSourceType.MASTER)
@ApiOperation("查询诊疗档案") @ApiOperation("查询诊疗档案")
@PostMapping("/list") @PostMapping("/list")
public JsonResponse<PageInfo<PmsTreatmentVo.TreatmentVO>> listTreatment(@RequestBody @Validated BaseDto<PmsTreatmentDto.TreatmentQueryDTO> queryDTO) { public JsonResponse<PageInfo<PmsTreatmentVo.TreatmentVO>> listTreatment(@RequestBody @Validated BaseDto<PmsTreatmentDto.TreatmentQueryDTO> queryDTO) {
if (queryDTO.getPageNum() > 0) {
PageHelper.startPage(queryDTO.getPageNum(), queryDTO.getPageSize()); try {
List<RmsReportManagement> rmsReportManagements1 = rmsReportManagementMapper.selectByExample(new RmsReportManagementExample());
PmsTreatmentDto.TreatmentQueryDTO param = queryDTO.getParam();
if (queryDTO.getParam().getReportTypeId() != null) {
List<RmsReportManagement> rmsReportManagements = adminReportService.queryManagerListByType(queryDTO.getParam().getReportTypeId());
if (CollectionUtil.isNotEmpty(rmsReportManagements)) {
param.setManagementIdList(rmsReportManagements.stream().map(RmsReportManagement::getId).collect(Collectors.toList()));
} else {
return JsonResponse.ok(new PageInfo<>());
}
}
UmsDataSource dataSourceByTenantId = dmsLoginService.getDataSourceByTenantId(SecurityUtils.getTenantId());
if (dataSourceByTenantId != null) {
DynamicDataSourceContextHolder.setDataSourceType(dataSourceByTenantId.getDataSourceKey());
}
if (queryDTO.getPageNum() > 0) {
PageHelper.startPage(queryDTO.getPageNum(), queryDTO.getPageSize());
}
return JsonResponse.ok(new PageInfo<>(treatmentService.listTreatment(param, rmsReportManagements1)));
} finally {
DynamicDataSourceContextHolder.clearDataSourceType();
} }
return JsonResponse.ok(new PageInfo<>(treatmentService.listTreatment(queryDTO.getParam())));
} }
@ApiOperation("新增诊疗档案数据") @ApiOperation("新增诊疗档案数据")
@ -96,7 +137,7 @@ public class PmsTreatmentController {
@ApiOperation("导出诊疗档案评估报告") @ApiOperation("导出诊疗档案评估报告")
@PostMapping("/exportTreatmentPg") @PostMapping("/exportTreatmentPg")
public JsonResponse<String> exportTreatmentPg(HttpServletResponse response, @RequestBody @Validated PmsTreatmentDto.ExportVO dto){ public JsonResponse<String> exportTreatmentPg(HttpServletResponse response, @RequestBody @Validated PmsTreatmentDto.ExportVO dto) {
return JsonResponse.ok(treatmentService.exportTreatmentPg(response, dto)); return JsonResponse.ok(treatmentService.exportTreatmentPg(response, dto));
} }
} }

46
acupuncture-common/src/main/java/com/acupuncture/common/core/domain/entity/SysDictData.java

@ -52,11 +52,53 @@ public class SysDictData extends BaseEntity
@Excel(name = "状态", readConverterExp = "0=正常,1=停用") @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status; private String status;
/** 数据类型 */
private String dataType;
/** 长度 */
private String dataLength;
/** 是否必填 */
private String isRequired;
/** 是否唯一 */
private String isSole;
public Long getDictCode() public Long getDictCode()
{ {
return dictCode; return dictCode;
} }
public String getDataType() {
return dataType;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public String getDataLength() {
return dataLength;
}
public void setDataLength(String dataLength) {
this.dataLength = dataLength;
}
public String getIsRequired() {
return isRequired;
}
public void setIsRequired(String isRequired) {
this.isRequired = isRequired;
}
public String getIsSole() {
return isSole;
}
public void setIsSole(String isSole) {
this.isSole = isSole;
}
public void setDictCode(Long dictCode) public void setDictCode(Long dictCode)
{ {
this.dictCode = dictCode; this.dictCode = dictCode;
@ -166,6 +208,10 @@ public class SysDictData extends BaseEntity
.append("listClass", getListClass()) .append("listClass", getListClass())
.append("isDefault", getIsDefault()) .append("isDefault", getIsDefault())
.append("status", getStatus()) .append("status", getStatus())
.append("dataType", getDataType())
.append("dataLength", getDataLength())
.append("isRequired", getIsRequired())
.append("isSole", getIsSole())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())

10
acupuncture-common/src/main/java/com/acupuncture/common/core/domain/entity/SysMenu.java

@ -68,6 +68,16 @@ public class SysMenu extends BaseEntity
/** 子菜单 */ /** 子菜单 */
private List<SysMenu> children = new ArrayList<SysMenu>(); private List<SysMenu> children = new ArrayList<SysMenu>();
/** 客户端类型 */
private Integer clientType;
public Integer getClientType() {
return clientType;
}
public void setClientType(Integer clientType) {
this.clientType = clientType;
}
public Long getMenuId() public Long getMenuId()
{ {

11
acupuncture-common/src/main/java/com/acupuncture/common/core/domain/entity/SysRole.java

@ -64,6 +64,17 @@ public class SysRole extends BaseEntity
/** 角色菜单权限 */ /** 角色菜单权限 */
private Set<String> permissions; private Set<String> permissions;
/** 客户端类型 */
private Integer clientType;
public Integer getClientType() {
return clientType;
}
public void setClientType(Integer clientType) {
this.clientType = clientType;
}
public SysRole() public SysRole()
{ {

147
acupuncture-common/src/main/java/com/acupuncture/common/utils/ZipUtils.java

@ -0,0 +1,147 @@
package com.acupuncture.common.utils;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipUtils {
private static final int BUFFER_SIZE = 2 * 1024;
/**
* 压缩成ZIP 方法1
* @param srcDir 压缩文件夹路径
* @param out 压缩文件输出流
* @param KeepDirStructure 是否保留原来的目录结构,true:保留目录结构;
* false:所有文件跑到压缩包根目录下(注意不保留目录结构可能会出现同名文件,会压缩失败)
* @throws RuntimeException 压缩失败会抛出运行时异常
*/
public static void toZip(String srcDir, OutputStream out, boolean KeepDirStructure)
throws RuntimeException{
long start = System.currentTimeMillis();
ZipOutputStream zos = null ;
try {
zos = new ZipOutputStream(out);
File sourceFile = new File(srcDir);
compress(sourceFile,zos,sourceFile.getName(),KeepDirStructure);
long end = System.currentTimeMillis();
System.out.println("压缩完成,耗时:" + (end - start) +" ms");
} catch (Exception e) {
throw new RuntimeException("zip error from ZipUtils",e);
}finally{
if(zos != null){
try {
zos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 压缩成ZIP 方法2
* @param srcFiles 需要压缩的文件列表
* @param out 压缩文件输出流
* @throws RuntimeException 压缩失败会抛出运行时异常
*/
public static void toZip(List<File> srcFiles , OutputStream out)throws RuntimeException {
long start = System.currentTimeMillis();
ZipOutputStream zos = null ;
try {
zos = new ZipOutputStream(out);
for (File srcFile : srcFiles) {
byte[] buf = new byte[BUFFER_SIZE];
zos.putNextEntry(new ZipEntry(srcFile.getName()));
int len;
FileInputStream in = new FileInputStream(srcFile);
while ((len = in.read(buf)) != -1){
zos.write(buf, 0, len);
}
zos.closeEntry();
in.close();
}
long end = System.currentTimeMillis();
System.out.println("压缩完成,耗时:" + (end - start) +" ms");
} catch (Exception e) {
// throw new RuntimeException("zip error from ZipUtils",e);
}finally{
if(zos != null){
try {
zos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 递归压缩方法
* @param sourceFile 源文件
* @param zos zip输出流
* @param name 压缩后的名称
* @param KeepDirStructure 是否保留原来的目录结构,true:保留目录结构;
* false:所有文件跑到压缩包根目录下(注意不保留目录结构可能会出现同名文件,会压缩失败)
* @throws Exception
*/
private static void compress(File sourceFile, ZipOutputStream zos, String name,
boolean KeepDirStructure) throws Exception{
byte[] buf = new byte[BUFFER_SIZE];
if(sourceFile.isFile()){
// 向zip输出流中添加一个zip实体,构造器中name为zip实体的文件的名字
zos.putNextEntry(new ZipEntry(name));
// copy文件到zip输出流中
int len;
FileInputStream in = new FileInputStream(sourceFile);
while ((len = in.read(buf)) != -1){
zos.write(buf, 0, len);
}
// Complete the entry
zos.closeEntry();
in.close();
} else {
File[] listFiles = sourceFile.listFiles();
if(listFiles == null || listFiles.length == 0){
// 需要保留原来的文件结构时,需要对空文件夹进行处理
if(KeepDirStructure){
// 空文件夹的处理
zos.putNextEntry(new ZipEntry(name + "/"));
// 没有文件,不需要文件的copy
zos.closeEntry();
}
}else {
for (File file : listFiles) {
// 判断是否需要保留原来的文件结构
if (KeepDirStructure) {
// 注意:file.getName()前面需要带上父文件夹的名字加一斜杠,
// 不然最后压缩包中就不能保留原来的文件结构,即:所有文件都跑到压缩包根目录下了
compress(file, zos, name + "/" + file.getName(),KeepDirStructure);
} else {
compress(file, zos, file.getName(),KeepDirStructure);
}
}
}
}
}
public static void main(String[] args) throws Exception {
/** 测试压缩方法1 */
// FileOutputStream fos1 = new FileOutputStream(new File("c:/mytest01.zip"));
// ZipUtils.toZip("D:/log", fos1,true);
/** 测试压缩方法2 */
List<File> fileList = new ArrayList<>();
fileList.add(new File("C:/Users/zzc16/Desktop/admin.sh"));
FileOutputStream fos2 = new FileOutputStream(new File("C:/Users/zzc16/Desktop/admin.zip"));
ZipUtils.toZip(fileList, fos2);
}
}

8
acupuncture-generator/src/main/resources/mbg.xml

@ -80,13 +80,17 @@
<!-- <table tableName="fms_followup_queue" domainObjectName="FmsFollowupQueue" enableDeleteByExample="false"/>--> <!-- <table tableName="fms_followup_queue" domainObjectName="FmsFollowupQueue" enableDeleteByExample="false"/>-->
<!-- <table tableName="fms_followup_task" domainObjectName="FmsFollowupTask" enableDeleteByExample="false"/>--> <!-- <table tableName="fms_followup_task" domainObjectName="FmsFollowupTask" enableDeleteByExample="false"/>-->
<!-- <table tableName="fms_patient_queue_relation" domainObjectName="FmsPatientQueueRelation" enableDeleteByExample="false"/>--> <!-- <table tableName="fms_patient_queue_relation" domainObjectName="FmsPatientQueueRelation" enableDeleteByExample="false"/>-->
<table tableName="pms_patient" domainObjectName="PmsPatient" enableDeleteByExample="false"/> <!-- <table tableName="pms_patient" domainObjectName="PmsPatient" enableDeleteByExample="false"/>-->
<!-- <table tableName="hms_weight_height" domainObjectName="HmsWeightHeight" enableDeleteByExample="false"/>--> <!-- <table tableName="hms_weight_height" domainObjectName="HmsWeightHeight" enableDeleteByExample="false"/>-->
<!-- <table tableName="pms_treatment" domainObjectName="PmsTreatment" enableDeleteByExample="false"/>--> <table tableName="pms_treatment" domainObjectName="PmsTreatment" enableDeleteByExample="false"/>
<!-- <table tableName="pms_treatment_record" domainObjectName="PmsTreatmentRecord" enableDeleteByExample="false"/>--> <!-- <table tableName="pms_treatment_record" domainObjectName="PmsTreatmentRecord" enableDeleteByExample="false"/>-->
<!-- <table tableName="rms_report_type" domainObjectName="RmsReportType" enableDeleteByExample="false"/>--> <!-- <table tableName="rms_report_type" domainObjectName="RmsReportType" enableDeleteByExample="false"/>-->
<!-- <table tableName="rms_report_management" domainObjectName="RmsReportManagement" enableDeleteByExample="false"/>--> <!-- <table tableName="rms_report_management" domainObjectName="RmsReportManagement" enableDeleteByExample="false"/>-->
<!-- <table tableName="ums_data_source" domainObjectName="UmsDataSource" enableDeleteByExample="false"/>--> <!-- <table tableName="ums_data_source" domainObjectName="UmsDataSource" enableDeleteByExample="false"/>-->
<!-- <table tableName="sys_notice_user" domainObjectName="SysNoticeUser" enableDeleteByExample="false"/>-->
<!-- <table tableName="dms_user" domainObjectName="DmsUser" enableDeleteByExample="false"/>-->
<!-- <table tableName="rms_report_type_tenant" domainObjectName="RmsReportTypeTenant" enableDeleteByExample="false"/>-->
<!-- <table tableName="rms_report_management_tenant" domainObjectName="RmsReportManagementTenant" enableDeleteByExample="false"/>-->
<!-- 有些表的字段需要指定java类型 <!-- 有些表的字段需要指定java类型
<table schema="" tableName=""> <table schema="" tableName="">

37
acupuncture-system/src/main/java/com/acupuncture/system/domain/SysNotice.java

@ -2,11 +2,15 @@ package com.acupuncture.system.domain;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.acupuncture.common.core.domain.BaseEntity; import com.acupuncture.common.core.domain.BaseEntity;
import com.acupuncture.common.xss.Xss; import com.acupuncture.common.xss.Xss;
import java.util.List;
/** /**
* 通知公告表 sys_notice * 通知公告表 sys_notice
* *
@ -31,6 +35,39 @@ public class SysNotice extends BaseEntity
/** 公告状态(0正常 1关闭) */ /** 公告状态(0正常 1关闭) */
private String status; private String status;
/** 发送用户ID列表 不填则发送给所有 */
private List<Long> userIdList;
/** 是否公共的(0否 1是) */
private Byte isAll;
@JsonIgnore
private List<Long> noticeIdList;
public List<Long> getNoticeIdList() {
return noticeIdList;
}
public void setNoticeIdList(List<Long> noticeIdList) {
this.noticeIdList = noticeIdList;
}
public Byte getIsAll() {
return isAll;
}
public void setIsAll(Byte isAll) {
this.isAll = isAll;
}
public List<Long> getUserIdList() {
return userIdList;
}
public void setUserIdList(List<Long> userIdList) {
this.userIdList = userIdList;
}
public Long getNoticeId() public Long getNoticeId()
{ {
return noticeId; return noticeId;

15
acupuncture-system/src/main/java/com/acupuncture/system/domain/SysUserOnline.java

@ -1,5 +1,9 @@
package com.acupuncture.system.domain; package com.acupuncture.system.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/** /**
* 当前在线会话 * 当前在线会话
* *
@ -31,6 +35,17 @@ public class SysUserOnline
/** 登录时间 */ /** 登录时间 */
private Long loginTime; private Long loginTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastVisitTime;
public Date getLastVisitTime() {
return lastVisitTime;
}
public void setLastVisitTime(Date lastVisitTime) {
this.lastVisitTime = lastVisitTime;
}
public String getTokenId() public String getTokenId()
{ {
return tokenId; return tokenId;

12
acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/AdminReportDto.java

@ -18,11 +18,19 @@ public class AdminReportDto {
@Data @Data
public static class AddDto { public static class AddDto {
private String typeName; private String typeName;
private String remark;
private String file;
private List<Long> tenantIdList;
} }
@Data @Data
public static class UpdDto { public static class UpdDto {
private Long id; private Long id;
private String name; private String typeName;
private String remark;
private String file;
private List<Long> tenantIdList;
} }
@Data @Data
public static class DeleteDto { public static class DeleteDto {
@ -47,6 +55,7 @@ public class AdminReportDto {
private Date timeRangeEnd; private Date timeRangeEnd;
private Byte status; private Byte status;
private List<Long> tenantIdList;
} }
@Data @Data
@ -62,6 +71,7 @@ public class AdminReportDto {
private Date timeRangeEnd; private Date timeRangeEnd;
private Byte status; private Byte status;
private List<Long> tenantIdList;
} }

33
acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/PmsTreatmentDto.java

@ -52,6 +52,8 @@ public class PmsTreatmentDto {
private String createBy; private String createBy;
private String remark; private String remark;
private Byte source = 1; private Byte source = 1;
@ApiModelProperty("上报ID")
private Long managementId;
@ApiModelProperty("随访队列ID集合") @ApiModelProperty("随访队列ID集合")
private List<Long> queueIdList; private List<Long> queueIdList;
@ -84,10 +86,11 @@ public class PmsTreatmentDto {
private String ethnicity; private String ethnicity;
private Integer educationYears; private Integer educationYears;
private String phone; private String phone;
// private Integer idCardType; // private Integer idCardType;
// private String idCard; // private String idCard;
private Integer visitType; private Integer visitType;
private String visitNumber; private String visitNumber;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date visitTime; private Date visitTime;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date dischargeTime; private Date dischargeTime;
@ -101,6 +104,7 @@ public class PmsTreatmentDto {
private String remark; private String remark;
private String updateBy; private String updateBy;
private Long tenantId; private Long tenantId;
private Long managementId;
@ApiModelProperty("随访队列ID集合") @ApiModelProperty("随访队列ID集合")
private List<Long> queueIdList; private List<Long> queueIdList;
@ -137,6 +141,14 @@ public class PmsTreatmentDto {
private String name; private String name;
private Long tenantId; private Long tenantId;
@ApiModelProperty("门诊/住院时间")
private String startTime;
private String endTime;
@ApiModelProperty("上报管理ID")
private Long managementId;
private Long reportTypeId;
private List<Long> managementIdList;
} }
@Data @Data
@ -152,7 +164,7 @@ public class PmsTreatmentDto {
} }
@Data @Data
public static class DeleteDto{ public static class DeleteDto {
@NotNull(message = "id不能为空") @NotNull(message = "id不能为空")
private List<Long> idList; private List<Long> idList;
} }
@ -208,7 +220,7 @@ public class PmsTreatmentDto {
} }
@Data @Data
public static class QueryRecord{ public static class QueryRecord {
@NotNull(message = "诊疗Id不能为空") @NotNull(message = "诊疗Id不能为空")
@ApiModelProperty("诊疗Id") @ApiModelProperty("诊疗Id")
private Long treatmentId; private Long treatmentId;
@ -222,4 +234,19 @@ public class PmsTreatmentDto {
private Long treatmentId; private Long treatmentId;
} }
@Data
public static class ExportZipVO {
@NotNull
private Long managementId;
}
@Data
public static class Aduit {
@NotNull
private Long treatmentId;
private Byte status;
private Long tenantId;
}
} }

11
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/DmsUser.java

@ -36,6 +36,8 @@ public class DmsUser implements Serializable {
private String remark; private String remark;
private Byte forceUpdPwdFlag;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -166,6 +168,14 @@ public class DmsUser implements Serializable {
this.remark = remark == null ? null : remark.trim(); this.remark = remark == null ? null : remark.trim();
} }
public Byte getForceUpdPwdFlag() {
return forceUpdPwdFlag;
}
public void setForceUpdPwdFlag(Byte forceUpdPwdFlag) {
this.forceUpdPwdFlag = forceUpdPwdFlag;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -188,6 +198,7 @@ public class DmsUser implements Serializable {
sb.append(", updateBy=").append(updateBy); sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime); sb.append(", updateTime=").append(updateTime);
sb.append(", remark=").append(remark); sb.append(", remark=").append(remark);
sb.append(", forceUpdPwdFlag=").append(forceUpdPwdFlag);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

60
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/DmsUserExample.java

@ -1164,6 +1164,66 @@ public class DmsUserExample {
addCriterion("remark not between", value1, value2, "remark"); addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andForceUpdPwdFlagIsNull() {
addCriterion("force_upd_pwd_flag is null");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagIsNotNull() {
addCriterion("force_upd_pwd_flag is not null");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagEqualTo(Byte value) {
addCriterion("force_upd_pwd_flag =", value, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagNotEqualTo(Byte value) {
addCriterion("force_upd_pwd_flag <>", value, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagGreaterThan(Byte value) {
addCriterion("force_upd_pwd_flag >", value, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagGreaterThanOrEqualTo(Byte value) {
addCriterion("force_upd_pwd_flag >=", value, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagLessThan(Byte value) {
addCriterion("force_upd_pwd_flag <", value, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagLessThanOrEqualTo(Byte value) {
addCriterion("force_upd_pwd_flag <=", value, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagIn(List<Byte> values) {
addCriterion("force_upd_pwd_flag in", values, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagNotIn(List<Byte> values) {
addCriterion("force_upd_pwd_flag not in", values, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagBetween(Byte value1, Byte value2) {
addCriterion("force_upd_pwd_flag between", value1, value2, "forceUpdPwdFlag");
return (Criteria) this;
}
public Criteria andForceUpdPwdFlagNotBetween(Byte value1, Byte value2) {
addCriterion("force_upd_pwd_flag not between", value1, value2, "forceUpdPwdFlag");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

11
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/PmsTreatment.java

@ -64,6 +64,8 @@ public class PmsTreatment implements Serializable {
private String remark; private String remark;
private Long managementId;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -306,6 +308,14 @@ public class PmsTreatment implements Serializable {
this.remark = remark == null ? null : remark.trim(); this.remark = remark == null ? null : remark.trim();
} }
public Long getManagementId() {
return managementId;
}
public void setManagementId(Long managementId) {
this.managementId = managementId;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -342,6 +352,7 @@ public class PmsTreatment implements Serializable {
sb.append(", updateBy=").append(updateBy); sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime); sb.append(", updateTime=").append(updateTime);
sb.append(", remark=").append(remark); sb.append(", remark=").append(remark);
sb.append(", managementId=").append(managementId);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

60
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/PmsTreatmentExample.java

@ -2071,6 +2071,66 @@ public class PmsTreatmentExample {
addCriterion("remark not between", value1, value2, "remark"); addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andManagementIdIsNull() {
addCriterion("management_id is null");
return (Criteria) this;
}
public Criteria andManagementIdIsNotNull() {
addCriterion("management_id is not null");
return (Criteria) this;
}
public Criteria andManagementIdEqualTo(Long value) {
addCriterion("management_id =", value, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdNotEqualTo(Long value) {
addCriterion("management_id <>", value, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdGreaterThan(Long value) {
addCriterion("management_id >", value, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdGreaterThanOrEqualTo(Long value) {
addCriterion("management_id >=", value, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdLessThan(Long value) {
addCriterion("management_id <", value, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdLessThanOrEqualTo(Long value) {
addCriterion("management_id <=", value, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdIn(List<Long> values) {
addCriterion("management_id in", values, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdNotIn(List<Long> values) {
addCriterion("management_id not in", values, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdBetween(Long value1, Long value2) {
addCriterion("management_id between", value1, value2, "managementId");
return (Criteria) this;
}
public Criteria andManagementIdNotBetween(Long value1, Long value2) {
addCriterion("management_id not between", value1, value2, "managementId");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

106
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportManagementTenant.java

@ -0,0 +1,106 @@
package com.acupuncture.system.domain.po;
import java.io.Serializable;
import java.util.Date;
public class RmsReportManagementTenant implements Serializable {
private Long id;
private Long reportId;
private Long tenantId;
private String createBy;
private Date createTime;
private String updateBy;
private Date updateTime;
private String remark;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getReportId() {
return reportId;
}
public void setReportId(Long reportId) {
this.reportId = reportId;
}
public Long getTenantId() {
return tenantId;
}
public void setTenantId(Long tenantId) {
this.tenantId = tenantId;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy == null ? null : createBy.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy == null ? null : updateBy.trim();
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", reportId=").append(reportId);
sb.append(", tenantId=").append(tenantId);
sb.append(", createBy=").append(createBy);
sb.append(", createTime=").append(createTime);
sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime);
sb.append(", remark=").append(remark);
sb.append("]");
return sb.toString();
}
}

711
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportManagementTenantExample.java

@ -0,0 +1,711 @@
package com.acupuncture.system.domain.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class RmsReportManagementTenantExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public RmsReportManagementTenantExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andReportIdIsNull() {
addCriterion("report_id is null");
return (Criteria) this;
}
public Criteria andReportIdIsNotNull() {
addCriterion("report_id is not null");
return (Criteria) this;
}
public Criteria andReportIdEqualTo(Long value) {
addCriterion("report_id =", value, "reportId");
return (Criteria) this;
}
public Criteria andReportIdNotEqualTo(Long value) {
addCriterion("report_id <>", value, "reportId");
return (Criteria) this;
}
public Criteria andReportIdGreaterThan(Long value) {
addCriterion("report_id >", value, "reportId");
return (Criteria) this;
}
public Criteria andReportIdGreaterThanOrEqualTo(Long value) {
addCriterion("report_id >=", value, "reportId");
return (Criteria) this;
}
public Criteria andReportIdLessThan(Long value) {
addCriterion("report_id <", value, "reportId");
return (Criteria) this;
}
public Criteria andReportIdLessThanOrEqualTo(Long value) {
addCriterion("report_id <=", value, "reportId");
return (Criteria) this;
}
public Criteria andReportIdIn(List<Long> values) {
addCriterion("report_id in", values, "reportId");
return (Criteria) this;
}
public Criteria andReportIdNotIn(List<Long> values) {
addCriterion("report_id not in", values, "reportId");
return (Criteria) this;
}
public Criteria andReportIdBetween(Long value1, Long value2) {
addCriterion("report_id between", value1, value2, "reportId");
return (Criteria) this;
}
public Criteria andReportIdNotBetween(Long value1, Long value2) {
addCriterion("report_id not between", value1, value2, "reportId");
return (Criteria) this;
}
public Criteria andTenantIdIsNull() {
addCriterion("tenant_id is null");
return (Criteria) this;
}
public Criteria andTenantIdIsNotNull() {
addCriterion("tenant_id is not null");
return (Criteria) this;
}
public Criteria andTenantIdEqualTo(Long value) {
addCriterion("tenant_id =", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdNotEqualTo(Long value) {
addCriterion("tenant_id <>", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdGreaterThan(Long value) {
addCriterion("tenant_id >", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdGreaterThanOrEqualTo(Long value) {
addCriterion("tenant_id >=", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdLessThan(Long value) {
addCriterion("tenant_id <", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdLessThanOrEqualTo(Long value) {
addCriterion("tenant_id <=", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdIn(List<Long> values) {
addCriterion("tenant_id in", values, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdNotIn(List<Long> values) {
addCriterion("tenant_id not in", values, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdBetween(Long value1, Long value2) {
addCriterion("tenant_id between", value1, value2, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdNotBetween(Long value1, Long value2) {
addCriterion("tenant_id not between", value1, value2, "tenantId");
return (Criteria) this;
}
public Criteria andCreateByIsNull() {
addCriterion("create_by is null");
return (Criteria) this;
}
public Criteria andCreateByIsNotNull() {
addCriterion("create_by is not null");
return (Criteria) this;
}
public Criteria andCreateByEqualTo(String value) {
addCriterion("create_by =", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotEqualTo(String value) {
addCriterion("create_by <>", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByGreaterThan(String value) {
addCriterion("create_by >", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByGreaterThanOrEqualTo(String value) {
addCriterion("create_by >=", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLessThan(String value) {
addCriterion("create_by <", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLessThanOrEqualTo(String value) {
addCriterion("create_by <=", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLike(String value) {
addCriterion("create_by like", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotLike(String value) {
addCriterion("create_by not like", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByIn(List<String> values) {
addCriterion("create_by in", values, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotIn(List<String> values) {
addCriterion("create_by not in", values, "createBy");
return (Criteria) this;
}
public Criteria andCreateByBetween(String value1, String value2) {
addCriterion("create_by between", value1, value2, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotBetween(String value1, String value2) {
addCriterion("create_by not between", value1, value2, "createBy");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andUpdateByIsNull() {
addCriterion("update_by is null");
return (Criteria) this;
}
public Criteria andUpdateByIsNotNull() {
addCriterion("update_by is not null");
return (Criteria) this;
}
public Criteria andUpdateByEqualTo(String value) {
addCriterion("update_by =", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotEqualTo(String value) {
addCriterion("update_by <>", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByGreaterThan(String value) {
addCriterion("update_by >", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
addCriterion("update_by >=", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLessThan(String value) {
addCriterion("update_by <", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLessThanOrEqualTo(String value) {
addCriterion("update_by <=", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLike(String value) {
addCriterion("update_by like", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotLike(String value) {
addCriterion("update_by not like", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByIn(List<String> values) {
addCriterion("update_by in", values, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotIn(List<String> values) {
addCriterion("update_by not in", values, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByBetween(String value1, String value2) {
addCriterion("update_by between", value1, value2, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotBetween(String value1, String value2) {
addCriterion("update_by not between", value1, value2, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNull() {
addCriterion("update_time is null");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNotNull() {
addCriterion("update_time is not null");
return (Criteria) this;
}
public Criteria andUpdateTimeEqualTo(Date value) {
addCriterion("update_time =", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotEqualTo(Date value) {
addCriterion("update_time <>", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThan(Date value) {
addCriterion("update_time >", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("update_time >=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThan(Date value) {
addCriterion("update_time <", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
addCriterion("update_time <=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeIn(List<Date> values) {
addCriterion("update_time in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotIn(List<Date> values) {
addCriterion("update_time not in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeBetween(Date value1, Date value2) {
addCriterion("update_time between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
addCriterion("update_time not between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andRemarkIsNull() {
addCriterion("remark is null");
return (Criteria) this;
}
public Criteria andRemarkIsNotNull() {
addCriterion("remark is not null");
return (Criteria) this;
}
public Criteria andRemarkEqualTo(String value) {
addCriterion("remark =", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotEqualTo(String value) {
addCriterion("remark <>", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThan(String value) {
addCriterion("remark >", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThanOrEqualTo(String value) {
addCriterion("remark >=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThan(String value) {
addCriterion("remark <", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThanOrEqualTo(String value) {
addCriterion("remark <=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLike(String value) {
addCriterion("remark like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotLike(String value) {
addCriterion("remark not like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkIn(List<String> values) {
addCriterion("remark in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotIn(List<String> values) {
addCriterion("remark not in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkBetween(String value1, String value2) {
addCriterion("remark between", value1, value2, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotBetween(String value1, String value2) {
addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

11
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportType.java

@ -20,6 +20,8 @@ public class RmsReportType implements Serializable {
private String remark; private String remark;
private String file;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Long getId() { public Long getId() {
@ -86,6 +88,14 @@ public class RmsReportType implements Serializable {
this.remark = remark == null ? null : remark.trim(); this.remark = remark == null ? null : remark.trim();
} }
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file == null ? null : file.trim();
}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -100,6 +110,7 @@ public class RmsReportType implements Serializable {
sb.append(", updateBy=").append(updateBy); sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime); sb.append(", updateTime=").append(updateTime);
sb.append(", remark=").append(remark); sb.append(", remark=").append(remark);
sb.append(", file=").append(file);
sb.append("]"); sb.append("]");
return sb.toString(); return sb.toString();
} }

70
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportTypeExample.java

@ -624,6 +624,76 @@ public class RmsReportTypeExample {
addCriterion("remark not between", value1, value2, "remark"); addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andFileIsNull() {
addCriterion("file is null");
return (Criteria) this;
}
public Criteria andFileIsNotNull() {
addCriterion("file is not null");
return (Criteria) this;
}
public Criteria andFileEqualTo(String value) {
addCriterion("file =", value, "file");
return (Criteria) this;
}
public Criteria andFileNotEqualTo(String value) {
addCriterion("file <>", value, "file");
return (Criteria) this;
}
public Criteria andFileGreaterThan(String value) {
addCriterion("file >", value, "file");
return (Criteria) this;
}
public Criteria andFileGreaterThanOrEqualTo(String value) {
addCriterion("file >=", value, "file");
return (Criteria) this;
}
public Criteria andFileLessThan(String value) {
addCriterion("file <", value, "file");
return (Criteria) this;
}
public Criteria andFileLessThanOrEqualTo(String value) {
addCriterion("file <=", value, "file");
return (Criteria) this;
}
public Criteria andFileLike(String value) {
addCriterion("file like", value, "file");
return (Criteria) this;
}
public Criteria andFileNotLike(String value) {
addCriterion("file not like", value, "file");
return (Criteria) this;
}
public Criteria andFileIn(List<String> values) {
addCriterion("file in", values, "file");
return (Criteria) this;
}
public Criteria andFileNotIn(List<String> values) {
addCriterion("file not in", values, "file");
return (Criteria) this;
}
public Criteria andFileBetween(String value1, String value2) {
addCriterion("file between", value1, value2, "file");
return (Criteria) this;
}
public Criteria andFileNotBetween(String value1, String value2) {
addCriterion("file not between", value1, value2, "file");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

106
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportTypeTenant.java

@ -0,0 +1,106 @@
package com.acupuncture.system.domain.po;
import java.io.Serializable;
import java.util.Date;
public class RmsReportTypeTenant implements Serializable {
private Long id;
private Long reportTypeId;
private Long tenantId;
private String createBy;
private Date createTime;
private String updateBy;
private Date updateTime;
private String remark;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getReportTypeId() {
return reportTypeId;
}
public void setReportTypeId(Long reportTypeId) {
this.reportTypeId = reportTypeId;
}
public Long getTenantId() {
return tenantId;
}
public void setTenantId(Long tenantId) {
this.tenantId = tenantId;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy == null ? null : createBy.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy == null ? null : updateBy.trim();
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", reportTypeId=").append(reportTypeId);
sb.append(", tenantId=").append(tenantId);
sb.append(", createBy=").append(createBy);
sb.append(", createTime=").append(createTime);
sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime);
sb.append(", remark=").append(remark);
sb.append("]");
return sb.toString();
}
}

711
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/RmsReportTypeTenantExample.java

@ -0,0 +1,711 @@
package com.acupuncture.system.domain.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class RmsReportTypeTenantExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public RmsReportTypeTenantExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andReportTypeIdIsNull() {
addCriterion("report_type_id is null");
return (Criteria) this;
}
public Criteria andReportTypeIdIsNotNull() {
addCriterion("report_type_id is not null");
return (Criteria) this;
}
public Criteria andReportTypeIdEqualTo(Long value) {
addCriterion("report_type_id =", value, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdNotEqualTo(Long value) {
addCriterion("report_type_id <>", value, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdGreaterThan(Long value) {
addCriterion("report_type_id >", value, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdGreaterThanOrEqualTo(Long value) {
addCriterion("report_type_id >=", value, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdLessThan(Long value) {
addCriterion("report_type_id <", value, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdLessThanOrEqualTo(Long value) {
addCriterion("report_type_id <=", value, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdIn(List<Long> values) {
addCriterion("report_type_id in", values, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdNotIn(List<Long> values) {
addCriterion("report_type_id not in", values, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdBetween(Long value1, Long value2) {
addCriterion("report_type_id between", value1, value2, "reportTypeId");
return (Criteria) this;
}
public Criteria andReportTypeIdNotBetween(Long value1, Long value2) {
addCriterion("report_type_id not between", value1, value2, "reportTypeId");
return (Criteria) this;
}
public Criteria andTenantIdIsNull() {
addCriterion("tenant_id is null");
return (Criteria) this;
}
public Criteria andTenantIdIsNotNull() {
addCriterion("tenant_id is not null");
return (Criteria) this;
}
public Criteria andTenantIdEqualTo(Long value) {
addCriterion("tenant_id =", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdNotEqualTo(Long value) {
addCriterion("tenant_id <>", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdGreaterThan(Long value) {
addCriterion("tenant_id >", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdGreaterThanOrEqualTo(Long value) {
addCriterion("tenant_id >=", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdLessThan(Long value) {
addCriterion("tenant_id <", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdLessThanOrEqualTo(Long value) {
addCriterion("tenant_id <=", value, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdIn(List<Long> values) {
addCriterion("tenant_id in", values, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdNotIn(List<Long> values) {
addCriterion("tenant_id not in", values, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdBetween(Long value1, Long value2) {
addCriterion("tenant_id between", value1, value2, "tenantId");
return (Criteria) this;
}
public Criteria andTenantIdNotBetween(Long value1, Long value2) {
addCriterion("tenant_id not between", value1, value2, "tenantId");
return (Criteria) this;
}
public Criteria andCreateByIsNull() {
addCriterion("create_by is null");
return (Criteria) this;
}
public Criteria andCreateByIsNotNull() {
addCriterion("create_by is not null");
return (Criteria) this;
}
public Criteria andCreateByEqualTo(String value) {
addCriterion("create_by =", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotEqualTo(String value) {
addCriterion("create_by <>", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByGreaterThan(String value) {
addCriterion("create_by >", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByGreaterThanOrEqualTo(String value) {
addCriterion("create_by >=", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLessThan(String value) {
addCriterion("create_by <", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLessThanOrEqualTo(String value) {
addCriterion("create_by <=", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLike(String value) {
addCriterion("create_by like", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotLike(String value) {
addCriterion("create_by not like", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByIn(List<String> values) {
addCriterion("create_by in", values, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotIn(List<String> values) {
addCriterion("create_by not in", values, "createBy");
return (Criteria) this;
}
public Criteria andCreateByBetween(String value1, String value2) {
addCriterion("create_by between", value1, value2, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotBetween(String value1, String value2) {
addCriterion("create_by not between", value1, value2, "createBy");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andUpdateByIsNull() {
addCriterion("update_by is null");
return (Criteria) this;
}
public Criteria andUpdateByIsNotNull() {
addCriterion("update_by is not null");
return (Criteria) this;
}
public Criteria andUpdateByEqualTo(String value) {
addCriterion("update_by =", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotEqualTo(String value) {
addCriterion("update_by <>", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByGreaterThan(String value) {
addCriterion("update_by >", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
addCriterion("update_by >=", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLessThan(String value) {
addCriterion("update_by <", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLessThanOrEqualTo(String value) {
addCriterion("update_by <=", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLike(String value) {
addCriterion("update_by like", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotLike(String value) {
addCriterion("update_by not like", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByIn(List<String> values) {
addCriterion("update_by in", values, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotIn(List<String> values) {
addCriterion("update_by not in", values, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByBetween(String value1, String value2) {
addCriterion("update_by between", value1, value2, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotBetween(String value1, String value2) {
addCriterion("update_by not between", value1, value2, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNull() {
addCriterion("update_time is null");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNotNull() {
addCriterion("update_time is not null");
return (Criteria) this;
}
public Criteria andUpdateTimeEqualTo(Date value) {
addCriterion("update_time =", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotEqualTo(Date value) {
addCriterion("update_time <>", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThan(Date value) {
addCriterion("update_time >", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("update_time >=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThan(Date value) {
addCriterion("update_time <", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
addCriterion("update_time <=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeIn(List<Date> values) {
addCriterion("update_time in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotIn(List<Date> values) {
addCriterion("update_time not in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeBetween(Date value1, Date value2) {
addCriterion("update_time between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
addCriterion("update_time not between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andRemarkIsNull() {
addCriterion("remark is null");
return (Criteria) this;
}
public Criteria andRemarkIsNotNull() {
addCriterion("remark is not null");
return (Criteria) this;
}
public Criteria andRemarkEqualTo(String value) {
addCriterion("remark =", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotEqualTo(String value) {
addCriterion("remark <>", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThan(String value) {
addCriterion("remark >", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThanOrEqualTo(String value) {
addCriterion("remark >=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThan(String value) {
addCriterion("remark <", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThanOrEqualTo(String value) {
addCriterion("remark <=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLike(String value) {
addCriterion("remark like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotLike(String value) {
addCriterion("remark not like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkIn(List<String> values) {
addCriterion("remark in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotIn(List<String> values) {
addCriterion("remark not in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkBetween(String value1, String value2) {
addCriterion("remark between", value1, value2, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotBetween(String value1, String value2) {
addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

106
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/SysNoticeUser.java

@ -0,0 +1,106 @@
package com.acupuncture.system.domain.po;
import java.io.Serializable;
import java.util.Date;
public class SysNoticeUser implements Serializable {
private Long id;
private Long noticeId;
private Long userId;
private String createBy;
private Date createTime;
private String updateBy;
private Date updateTime;
private String remark;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getNoticeId() {
return noticeId;
}
public void setNoticeId(Long noticeId) {
this.noticeId = noticeId;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy == null ? null : createBy.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy == null ? null : updateBy.trim();
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark == null ? null : remark.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", noticeId=").append(noticeId);
sb.append(", userId=").append(userId);
sb.append(", createBy=").append(createBy);
sb.append(", createTime=").append(createTime);
sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime);
sb.append(", remark=").append(remark);
sb.append("]");
return sb.toString();
}
}

711
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/SysNoticeUserExample.java

@ -0,0 +1,711 @@
package com.acupuncture.system.domain.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class SysNoticeUserExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public SysNoticeUserExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andNoticeIdIsNull() {
addCriterion("notice_id is null");
return (Criteria) this;
}
public Criteria andNoticeIdIsNotNull() {
addCriterion("notice_id is not null");
return (Criteria) this;
}
public Criteria andNoticeIdEqualTo(Long value) {
addCriterion("notice_id =", value, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdNotEqualTo(Long value) {
addCriterion("notice_id <>", value, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdGreaterThan(Long value) {
addCriterion("notice_id >", value, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdGreaterThanOrEqualTo(Long value) {
addCriterion("notice_id >=", value, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdLessThan(Long value) {
addCriterion("notice_id <", value, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdLessThanOrEqualTo(Long value) {
addCriterion("notice_id <=", value, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdIn(List<Long> values) {
addCriterion("notice_id in", values, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdNotIn(List<Long> values) {
addCriterion("notice_id not in", values, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdBetween(Long value1, Long value2) {
addCriterion("notice_id between", value1, value2, "noticeId");
return (Criteria) this;
}
public Criteria andNoticeIdNotBetween(Long value1, Long value2) {
addCriterion("notice_id not between", value1, value2, "noticeId");
return (Criteria) this;
}
public Criteria andUserIdIsNull() {
addCriterion("user_id is null");
return (Criteria) this;
}
public Criteria andUserIdIsNotNull() {
addCriterion("user_id is not null");
return (Criteria) this;
}
public Criteria andUserIdEqualTo(Long value) {
addCriterion("user_id =", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotEqualTo(Long value) {
addCriterion("user_id <>", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdGreaterThan(Long value) {
addCriterion("user_id >", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
addCriterion("user_id >=", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdLessThan(Long value) {
addCriterion("user_id <", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdLessThanOrEqualTo(Long value) {
addCriterion("user_id <=", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdIn(List<Long> values) {
addCriterion("user_id in", values, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotIn(List<Long> values) {
addCriterion("user_id not in", values, "userId");
return (Criteria) this;
}
public Criteria andUserIdBetween(Long value1, Long value2) {
addCriterion("user_id between", value1, value2, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotBetween(Long value1, Long value2) {
addCriterion("user_id not between", value1, value2, "userId");
return (Criteria) this;
}
public Criteria andCreateByIsNull() {
addCriterion("create_by is null");
return (Criteria) this;
}
public Criteria andCreateByIsNotNull() {
addCriterion("create_by is not null");
return (Criteria) this;
}
public Criteria andCreateByEqualTo(String value) {
addCriterion("create_by =", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotEqualTo(String value) {
addCriterion("create_by <>", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByGreaterThan(String value) {
addCriterion("create_by >", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByGreaterThanOrEqualTo(String value) {
addCriterion("create_by >=", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLessThan(String value) {
addCriterion("create_by <", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLessThanOrEqualTo(String value) {
addCriterion("create_by <=", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByLike(String value) {
addCriterion("create_by like", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotLike(String value) {
addCriterion("create_by not like", value, "createBy");
return (Criteria) this;
}
public Criteria andCreateByIn(List<String> values) {
addCriterion("create_by in", values, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotIn(List<String> values) {
addCriterion("create_by not in", values, "createBy");
return (Criteria) this;
}
public Criteria andCreateByBetween(String value1, String value2) {
addCriterion("create_by between", value1, value2, "createBy");
return (Criteria) this;
}
public Criteria andCreateByNotBetween(String value1, String value2) {
addCriterion("create_by not between", value1, value2, "createBy");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andUpdateByIsNull() {
addCriterion("update_by is null");
return (Criteria) this;
}
public Criteria andUpdateByIsNotNull() {
addCriterion("update_by is not null");
return (Criteria) this;
}
public Criteria andUpdateByEqualTo(String value) {
addCriterion("update_by =", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotEqualTo(String value) {
addCriterion("update_by <>", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByGreaterThan(String value) {
addCriterion("update_by >", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
addCriterion("update_by >=", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLessThan(String value) {
addCriterion("update_by <", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLessThanOrEqualTo(String value) {
addCriterion("update_by <=", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByLike(String value) {
addCriterion("update_by like", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotLike(String value) {
addCriterion("update_by not like", value, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByIn(List<String> values) {
addCriterion("update_by in", values, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotIn(List<String> values) {
addCriterion("update_by not in", values, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByBetween(String value1, String value2) {
addCriterion("update_by between", value1, value2, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateByNotBetween(String value1, String value2) {
addCriterion("update_by not between", value1, value2, "updateBy");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNull() {
addCriterion("update_time is null");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNotNull() {
addCriterion("update_time is not null");
return (Criteria) this;
}
public Criteria andUpdateTimeEqualTo(Date value) {
addCriterion("update_time =", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotEqualTo(Date value) {
addCriterion("update_time <>", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThan(Date value) {
addCriterion("update_time >", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("update_time >=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThan(Date value) {
addCriterion("update_time <", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
addCriterion("update_time <=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeIn(List<Date> values) {
addCriterion("update_time in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotIn(List<Date> values) {
addCriterion("update_time not in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeBetween(Date value1, Date value2) {
addCriterion("update_time between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
addCriterion("update_time not between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andRemarkIsNull() {
addCriterion("remark is null");
return (Criteria) this;
}
public Criteria andRemarkIsNotNull() {
addCriterion("remark is not null");
return (Criteria) this;
}
public Criteria andRemarkEqualTo(String value) {
addCriterion("remark =", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotEqualTo(String value) {
addCriterion("remark <>", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThan(String value) {
addCriterion("remark >", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThanOrEqualTo(String value) {
addCriterion("remark >=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThan(String value) {
addCriterion("remark <", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThanOrEqualTo(String value) {
addCriterion("remark <=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLike(String value) {
addCriterion("remark like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotLike(String value) {
addCriterion("remark not like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkIn(List<String> values) {
addCriterion("remark in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotIn(List<String> values) {
addCriterion("remark not in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkBetween(String value1, String value2) {
addCriterion("remark between", value1, value2, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotBetween(String value1, String value2) {
addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

9
acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/AdminReportVo.java

@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @Author zzc * @Author zzc
@ -25,6 +26,12 @@ public class AdminReportVo {
private Date createTime; private Date createTime;
private List<Long> tenantIdList;
private String remark;
private String file;
} }
@Data @Data
@ -46,6 +53,8 @@ public class AdminReportVo {
private Date createTime; private Date createTime;
private String typeName; private String typeName;
private List<Long> tenantIdList;
} }
} }

3
acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/DmsLoginUserVo.java

@ -42,6 +42,9 @@ public class DmsLoginUserVo {
private String status; private String status;
private String updateBy; private String updateBy;
private String remark; private String remark;
@ApiModelProperty("强制更新密码标志,初始密码/重置密码需要强制修改密码 0不需要重置 1需要")
private Byte forceUpdPwdFlag;
} }
@Data @Data

2
acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/PmsTreatmentVo.java

@ -57,6 +57,8 @@ public class PmsTreatmentVo {
private String zyzdQt; private String zyzdQt;
private Long memberId; private Long memberId;
private Long managementId;
private String reportTitle;
@Data @Data
public static class QueueVo{ public static class QueueVo{

4
acupuncture-system/src/main/java/com/acupuncture/system/mapper/SysNoticeMapper.java

@ -2,6 +2,7 @@ package com.acupuncture.system.mapper;
import java.util.List; import java.util.List;
import com.acupuncture.system.domain.SysNotice; import com.acupuncture.system.domain.SysNotice;
import org.apache.ibatis.annotations.Param;
/** /**
* 通知公告表 数据层 * 通知公告表 数据层
@ -24,7 +25,8 @@ public interface SysNoticeMapper
* @param notice 公告信息 * @param notice 公告信息
* @return 公告集合 * @return 公告集合
*/ */
public List<SysNotice> selectNoticeList(SysNotice notice); public List<SysNotice> selectNoticeList(@Param("notice") SysNotice notice,
@Param("userId") Long userId);
/** /**
* 新增公告 * 新增公告

2
acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/PmsTreatmentDao.java

@ -30,4 +30,6 @@ public interface PmsTreatmentDao {
List<PmsTreatmentVo.TreatmentVO> adminQuery(@Param("query") PmsTreatmentDto.TreatmentQueryDTO query); List<PmsTreatmentVo.TreatmentVO> adminQuery(@Param("query") PmsTreatmentDto.TreatmentQueryDTO query);
PmsTreatmentVo.TreatmentRecordVO adminQueryTreatment(@Param("id") Long id); PmsTreatmentVo.TreatmentRecordVO adminQueryTreatment(@Param("id") Long id);
List<PmsTreatmentVo.TreatmentRecordVO> adminQueryTreatmentZip(@Param("managementId") Long managementId);
} }

3
acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/RmsReportDao.java

@ -16,4 +16,7 @@ public interface RmsReportDao {
List<AdminReportVo.TypeResult> queryTypeList(@Param("typeName") String typeName); List<AdminReportVo.TypeResult> queryTypeList(@Param("typeName") String typeName);
List<AdminReportVo.Result> queryManagerList(@Param("reportTitle") String reportTitle); List<AdminReportVo.Result> queryManagerList(@Param("reportTitle") String reportTitle);
List<AdminReportVo.Result> queryManagerListMy(@Param("reportTitle") String reportTitle,
@Param("idList") List<Long> idList);
} }

28
acupuncture-system/src/main/java/com/acupuncture/system/persist/mapper/RmsReportManagementTenantMapper.java

@ -0,0 +1,28 @@
package com.acupuncture.system.persist.mapper;
import com.acupuncture.system.domain.po.RmsReportManagementTenant;
import com.acupuncture.system.domain.po.RmsReportManagementTenantExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface RmsReportManagementTenantMapper {
long countByExample(RmsReportManagementTenantExample example);
int deleteByPrimaryKey(Long id);
int insert(RmsReportManagementTenant record);
int insertSelective(RmsReportManagementTenant record);
List<RmsReportManagementTenant> selectByExample(RmsReportManagementTenantExample example);
RmsReportManagementTenant selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") RmsReportManagementTenant record, @Param("example") RmsReportManagementTenantExample example);
int updateByExample(@Param("record") RmsReportManagementTenant record, @Param("example") RmsReportManagementTenantExample example);
int updateByPrimaryKeySelective(RmsReportManagementTenant record);
int updateByPrimaryKey(RmsReportManagementTenant record);
}

28
acupuncture-system/src/main/java/com/acupuncture/system/persist/mapper/RmsReportTypeTenantMapper.java

@ -0,0 +1,28 @@
package com.acupuncture.system.persist.mapper;
import com.acupuncture.system.domain.po.RmsReportTypeTenant;
import com.acupuncture.system.domain.po.RmsReportTypeTenantExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface RmsReportTypeTenantMapper {
long countByExample(RmsReportTypeTenantExample example);
int deleteByPrimaryKey(Long id);
int insert(RmsReportTypeTenant record);
int insertSelective(RmsReportTypeTenant record);
List<RmsReportTypeTenant> selectByExample(RmsReportTypeTenantExample example);
RmsReportTypeTenant selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") RmsReportTypeTenant record, @Param("example") RmsReportTypeTenantExample example);
int updateByExample(@Param("record") RmsReportTypeTenant record, @Param("example") RmsReportTypeTenantExample example);
int updateByPrimaryKeySelective(RmsReportTypeTenant record);
int updateByPrimaryKey(RmsReportTypeTenant record);
}

28
acupuncture-system/src/main/java/com/acupuncture/system/persist/mapper/SysNoticeUserMapper.java

@ -0,0 +1,28 @@
package com.acupuncture.system.persist.mapper;
import com.acupuncture.system.domain.po.SysNoticeUser;
import com.acupuncture.system.domain.po.SysNoticeUserExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface SysNoticeUserMapper {
long countByExample(SysNoticeUserExample example);
int deleteByPrimaryKey(Long id);
int insert(SysNoticeUser record);
int insertSelective(SysNoticeUser record);
List<SysNoticeUser> selectByExample(SysNoticeUserExample example);
SysNoticeUser selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") SysNoticeUser record, @Param("example") SysNoticeUserExample example);
int updateByExample(@Param("record") SysNoticeUser record, @Param("example") SysNoticeUserExample example);
int updateByPrimaryKeySelective(SysNoticeUser record);
int updateByPrimaryKey(SysNoticeUser record);
}

17
acupuncture-system/src/main/java/com/acupuncture/system/service/AdminReportService.java

@ -1,6 +1,9 @@
package com.acupuncture.system.service; package com.acupuncture.system.service;
import com.acupuncture.common.annotation.DataSource;
import com.acupuncture.common.enums.DataSourceType;
import com.acupuncture.system.domain.dto.AdminReportDto; import com.acupuncture.system.domain.dto.AdminReportDto;
import com.acupuncture.system.domain.po.RmsReportManagement;
import com.acupuncture.system.domain.vo.AdminReportVo; import com.acupuncture.system.domain.vo.AdminReportVo;
import java.util.List; import java.util.List;
@ -40,6 +43,13 @@ public interface AdminReportService {
*/ */
Integer delete(AdminReportDto.DeleteDto dto); Integer delete(AdminReportDto.DeleteDto dto);
/**
* 查询我的上报管理
* @param dto
* @return
*/
List<AdminReportVo.Result> queryManagerListMy(AdminReportDto.QueryManagerDto dto);
/** /**
* 查询上报管理 * 查询上报管理
* @param dto * @param dto
@ -47,6 +57,13 @@ public interface AdminReportService {
*/ */
List<AdminReportVo.Result> queryManagerList(AdminReportDto.QueryManagerDto dto); List<AdminReportVo.Result> queryManagerList(AdminReportDto.QueryManagerDto dto);
/**
* 查询上报管理
* @param dto
* @return
*/
List<RmsReportManagement> queryManagerListByType(Long typeId);
/** /**
* 新增上报管理 * 新增上报管理
* @param dto * @param dto

12
acupuncture-system/src/main/java/com/acupuncture/system/service/PmsTreatmentService.java

@ -2,6 +2,7 @@ package com.acupuncture.system.service;
import com.acupuncture.system.domain.dto.PmsPatientDto; import com.acupuncture.system.domain.dto.PmsPatientDto;
import com.acupuncture.system.domain.dto.PmsTreatmentDto; import com.acupuncture.system.domain.dto.PmsTreatmentDto;
import com.acupuncture.system.domain.po.RmsReportManagement;
import com.acupuncture.system.domain.vo.PmsTreatmentVo; import com.acupuncture.system.domain.vo.PmsTreatmentVo;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -42,7 +43,7 @@ public interface PmsTreatmentService {
* @param queryDTO * @param queryDTO
* @return * @return
*/ */
List<PmsTreatmentVo.TreatmentVO> listTreatment(PmsTreatmentDto.TreatmentQueryDTO queryDTO); List<PmsTreatmentVo.TreatmentVO> listTreatment(PmsTreatmentDto.TreatmentQueryDTO queryDTO, List<RmsReportManagement> rmsReportManagements);
void saveAidRecord(PmsTreatmentDto.SaveAidRecord dto); void saveAidRecord(PmsTreatmentDto.SaveAidRecord dto);
@ -61,7 +62,14 @@ public interface PmsTreatmentService {
String adminExportTreatmentPg(HttpServletResponse response, PmsTreatmentDto.ExportVO dto); String adminExportTreatmentPg(HttpServletResponse response, PmsTreatmentDto.ExportVO dto);
String adminExportTreatmentPgZip(HttpServletResponse response, PmsTreatmentDto.ExportZipVO dto) throws IOException;
void importTreatment(MultipartFile file) throws IOException; void importTreatment(MultipartFile file) throws IOException;
void importTreatmentAdmin(MultipartFile file, Long tenantId) throws IOException;
String[] getTenantId(MultipartFile file) throws IOException;
/** /**
* 查询诊疗档案 * 查询诊疗档案
* @param queryDTO * @param queryDTO
@ -71,4 +79,6 @@ public interface PmsTreatmentService {
void adminExportTreatment(HttpServletResponse response, PmsTreatmentDto.TreatmentQueryDTO dto); void adminExportTreatment(HttpServletResponse response, PmsTreatmentDto.TreatmentQueryDTO dto);
void aduit(Long treatmentId, Byte status);
} }

151
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminReportServiceImpl.java

@ -1,6 +1,7 @@
package com.acupuncture.system.service.impl; package com.acupuncture.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.acupuncture.common.core.domain.R; import com.acupuncture.common.core.domain.R;
import com.acupuncture.common.utils.SecurityUtils; import com.acupuncture.common.utils.SecurityUtils;
@ -9,13 +10,17 @@ import com.acupuncture.system.domain.po.*;
import com.acupuncture.system.domain.vo.AdminReportVo; import com.acupuncture.system.domain.vo.AdminReportVo;
import com.acupuncture.system.persist.dao.RmsReportDao; import com.acupuncture.system.persist.dao.RmsReportDao;
import com.acupuncture.system.persist.mapper.RmsReportManagementMapper; import com.acupuncture.system.persist.mapper.RmsReportManagementMapper;
import com.acupuncture.system.persist.mapper.RmsReportManagementTenantMapper;
import com.acupuncture.system.persist.mapper.RmsReportTypeMapper; import com.acupuncture.system.persist.mapper.RmsReportTypeMapper;
import com.acupuncture.system.persist.mapper.RmsReportTypeTenantMapper;
import com.acupuncture.system.service.AdminReportService; import com.acupuncture.system.service.AdminReportService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Author zzc * @Author zzc
@ -32,16 +37,40 @@ public class AdminReportServiceImpl implements AdminReportService {
private RmsReportManagementMapper rmsReportManagementMapper; private RmsReportManagementMapper rmsReportManagementMapper;
@Resource @Resource
private RmsReportDao rmsReportDao; private RmsReportDao rmsReportDao;
@Resource
private RmsReportTypeTenantMapper rmsReportTypeTenantMapper;
@Resource
private RmsReportManagementTenantMapper rmsReportManagementTenantMapper;
@Override @Override
public List<AdminReportVo.TypeResult> queryTypeList(String typeName) { public List<AdminReportVo.TypeResult> queryTypeList(String typeName) {
return rmsReportDao.queryTypeList(typeName); List<AdminReportVo.TypeResult> typeResults = rmsReportDao.queryTypeList(typeName);
if (CollUtil.isNotEmpty(typeResults)) {
for (AdminReportVo.TypeResult typeResult : typeResults) {
RmsReportTypeTenantExample rmsReportTypeTenantExample = new RmsReportTypeTenantExample();
rmsReportTypeTenantExample.createCriteria().andReportTypeIdEqualTo(typeResult.getId());
List<RmsReportTypeTenant> rmsReportTypeTenants = rmsReportTypeTenantMapper.selectByExample(rmsReportTypeTenantExample);
if (CollUtil.isNotEmpty(rmsReportTypeTenants)) {
typeResult.setTenantIdList(rmsReportTypeTenants.stream().map(RmsReportTypeTenant::getTenantId).collect(Collectors.toList()));
}
}
}
return typeResults;
} }
@Override @Override
public Integer insert(AdminReportDto.AddDto dto) { public Integer insert(AdminReportDto.AddDto dto) {
RmsReportType reportType = BeanUtil.copyProperties(dto, RmsReportType.class); RmsReportType reportType = BeanUtil.copyProperties(dto, RmsReportType.class);
reportType.setId(IdUtil.getSnowflakeNextId()); reportType.setId(IdUtil.getSnowflakeNextId());
if (CollUtil.isNotEmpty(dto.getTenantIdList())) {
for (Long tenantId : dto.getTenantIdList()) {
RmsReportTypeTenant rmsReportTypeTenant = new RmsReportTypeTenant();
rmsReportTypeTenant.setId(IdUtil.getSnowflakeNextId());
rmsReportTypeTenant.setReportTypeId(reportType.getId());
rmsReportTypeTenant.setTenantId(tenantId);
rmsReportTypeTenantMapper.insertSelective(rmsReportTypeTenant);
}
}
reportType.setCreateBy(SecurityUtils.getUsername()); reportType.setCreateBy(SecurityUtils.getUsername());
reportType.setTypeName(dto.getTypeName()); reportType.setTypeName(dto.getTypeName());
reportType.setCreateTime(new Date()); reportType.setCreateTime(new Date());
@ -50,14 +79,46 @@ public class AdminReportServiceImpl implements AdminReportService {
@Override @Override
public Integer update(AdminReportDto.UpdDto dto) { public Integer update(AdminReportDto.UpdDto dto) {
if (CollUtil.isNotEmpty(dto.getTenantIdList())) {
RmsReportTypeTenantExample rmsReportTypeTenantExample = new RmsReportTypeTenantExample();
rmsReportTypeTenantExample.createCriteria().andReportTypeIdEqualTo(dto.getId());
List<RmsReportTypeTenant> rmsReportTypeTenants = rmsReportTypeTenantMapper.selectByExample(rmsReportTypeTenantExample);
if (CollUtil.isNotEmpty(rmsReportTypeTenants)) {
for (RmsReportTypeTenant rmsReportTypeTenant : rmsReportTypeTenants) {
rmsReportTypeTenantMapper.deleteByPrimaryKey(rmsReportTypeTenant.getId());
}
}
for (Long tenantId : dto.getTenantIdList()) {
RmsReportTypeTenant rmsReportTypeTenant = new RmsReportTypeTenant();
rmsReportTypeTenant.setId(IdUtil.getSnowflakeNextId());
rmsReportTypeTenant.setReportTypeId(dto.getId());
rmsReportTypeTenant.setTenantId(tenantId);
rmsReportTypeTenantMapper.insertSelective(rmsReportTypeTenant);
}
}
RmsReportType reportType = BeanUtil.copyProperties(dto, RmsReportType.class); RmsReportType reportType = BeanUtil.copyProperties(dto, RmsReportType.class);
reportType.setTypeName(dto.getTypeName());
reportType.setUpdateBy(SecurityUtils.getUsername()); reportType.setUpdateBy(SecurityUtils.getUsername());
reportType.setCreateTime(new Date()); reportType.setCreateTime(new Date());
reportType.setFile(dto.getFile());
reportType.setRemark(dto.getRemark());
return rmsReportTypeMapper.updateByPrimaryKeySelective(reportType); return rmsReportTypeMapper.updateByPrimaryKeySelective(reportType);
} }
@Override @Override
public Integer delete(AdminReportDto.DeleteDto dto) { public Integer delete(AdminReportDto.DeleteDto dto) {
for (Long aLong : dto.getIdList()) {
RmsReportTypeTenantExample rmsReportTypeTenantExample = new RmsReportTypeTenantExample();
rmsReportTypeTenantExample.createCriteria().andReportTypeIdEqualTo(aLong);
List<RmsReportTypeTenant> rmsReportTypeTenants = rmsReportTypeTenantMapper.selectByExample(rmsReportTypeTenantExample);
if (CollUtil.isNotEmpty(rmsReportTypeTenants)) {
for (RmsReportTypeTenant rmsReportTypeTenant : rmsReportTypeTenants) {
rmsReportTypeTenantMapper.deleteByPrimaryKey(rmsReportTypeTenant.getId());
}
}
}
RmsReportTypeExample rmsReportTypeExample = new RmsReportTypeExample(); RmsReportTypeExample rmsReportTypeExample = new RmsReportTypeExample();
rmsReportTypeExample.createCriteria().andIdIn(dto.getIdList()); rmsReportTypeExample.createCriteria().andIdIn(dto.getIdList());
RmsReportType reportType = new RmsReportType(); RmsReportType reportType = new RmsReportType();
@ -65,23 +126,95 @@ public class AdminReportServiceImpl implements AdminReportService {
return rmsReportTypeMapper.updateByExampleSelective(reportType, rmsReportTypeExample); return rmsReportTypeMapper.updateByExampleSelective(reportType, rmsReportTypeExample);
} }
@Override
public List<AdminReportVo.Result> queryManagerListMy(AdminReportDto.QueryManagerDto dto) {
RmsReportManagementTenantExample rmsReportTypeTenantExample = new RmsReportManagementTenantExample();
rmsReportTypeTenantExample.createCriteria().andTenantIdEqualTo(SecurityUtils.getTenantId());
List<RmsReportManagementTenant> rmsReportTypeTenants = rmsReportManagementTenantMapper.selectByExample(rmsReportTypeTenantExample);
if (CollUtil.isEmpty(rmsReportTypeTenants)) {
return new ArrayList<>();
}
List<Long> idList = rmsReportTypeTenants.stream().map(RmsReportManagementTenant::getReportId).collect(Collectors.toList());
List<AdminReportVo.Result> results = rmsReportDao.queryManagerListMy(dto.getReportTitle(), idList);
if (CollUtil.isNotEmpty(results)) {
for (AdminReportVo.Result result : results) {
RmsReportManagementTenantExample rmsReportManagementTenantExample = new RmsReportManagementTenantExample();
rmsReportManagementTenantExample.createCriteria().andReportIdEqualTo(result.getId());
List<RmsReportManagementTenant> rmsReportManagementTenants = rmsReportManagementTenantMapper.selectByExample(rmsReportManagementTenantExample);
if (CollUtil.isNotEmpty(rmsReportManagementTenants)) {
result.setTenantIdList(rmsReportManagementTenants.stream().map(RmsReportManagementTenant::getTenantId).collect(Collectors.toList()));
}
}
}
return results;
}
@Override @Override
public List<AdminReportVo.Result> queryManagerList(AdminReportDto.QueryManagerDto dto) { public List<AdminReportVo.Result> queryManagerList(AdminReportDto.QueryManagerDto dto) {
return rmsReportDao.queryManagerList(dto.getReportTitle()); List<AdminReportVo.Result> results = rmsReportDao.queryManagerList(dto.getReportTitle());
if (CollUtil.isNotEmpty(results)) {
for (AdminReportVo.Result result : results) {
RmsReportManagementTenantExample rmsReportManagementTenantExample = new RmsReportManagementTenantExample();
rmsReportManagementTenantExample.createCriteria().andReportIdEqualTo(result.getId());
List<RmsReportManagementTenant> rmsReportManagementTenants = rmsReportManagementTenantMapper.selectByExample(rmsReportManagementTenantExample);
if (CollUtil.isNotEmpty(rmsReportManagementTenants)) {
result.setTenantIdList(rmsReportManagementTenants.stream().map(RmsReportManagementTenant::getTenantId).collect(Collectors.toList()));
}
}
}
return results;
}
@Override
public List<RmsReportManagement> queryManagerListByType(Long typeId) {
RmsReportManagementExample reportManagementExample = new RmsReportManagementExample();
reportManagementExample.createCriteria().andReportTypeEqualTo(typeId);
return rmsReportManagementMapper.selectByExample(reportManagementExample);
} }
@Override @Override
public Integer insertManager(AdminReportDto.AddManagerDto dto) { public Integer insertManager(AdminReportDto.AddManagerDto dto) {
RmsReportManagement reportManagement = BeanUtil.copyProperties(dto, RmsReportManagement.class); RmsReportManagement reportManagement = BeanUtil.copyProperties(dto, RmsReportManagement.class);
reportManagement.setId(IdUtil.getSnowflakeNextId()); reportManagement.setId(IdUtil.getSnowflakeNextId());
if (CollUtil.isNotEmpty(dto.getTenantIdList())) {
for (Long tenantId : dto.getTenantIdList()) {
RmsReportManagementTenant rmsReportTypeTenant = new RmsReportManagementTenant();
rmsReportTypeTenant.setId(IdUtil.getSnowflakeNextId());
rmsReportTypeTenant.setReportId(reportManagement.getId());
rmsReportTypeTenant.setTenantId(tenantId);
rmsReportManagementTenantMapper.insertSelective(rmsReportTypeTenant);
}
}
reportManagement.setStatus(dto.getStatus());
reportManagement.setCreateBy(SecurityUtils.getUsername()); reportManagement.setCreateBy(SecurityUtils.getUsername());
reportManagement.setCreateTime(new Date()); reportManagement.setCreateTime(new Date());
reportManagement.setStatus((byte) 0);
return rmsReportManagementMapper.insertSelective(reportManagement); return rmsReportManagementMapper.insertSelective(reportManagement);
} }
@Override @Override
public Integer updateManager(AdminReportDto.UpdManagerDto dto) { public Integer updateManager(AdminReportDto.UpdManagerDto dto) {
if (CollUtil.isNotEmpty(dto.getTenantIdList())) {
RmsReportManagementTenantExample rmsReportTypeTenantExample = new RmsReportManagementTenantExample();
rmsReportTypeTenantExample.createCriteria().andReportIdEqualTo(dto.getId());
List<RmsReportManagementTenant> rmsReportTypeTenants = rmsReportManagementTenantMapper.selectByExample(rmsReportTypeTenantExample);
if (CollUtil.isNotEmpty(rmsReportTypeTenants)) {
for (RmsReportManagementTenant rmsReportTypeTenant : rmsReportTypeTenants) {
rmsReportManagementTenantMapper.deleteByPrimaryKey(rmsReportTypeTenant.getId());
}
}
for (Long tenantId : dto.getTenantIdList()) {
RmsReportManagementTenant rmsReportTypeTenant = new RmsReportManagementTenant();
rmsReportTypeTenant.setId(IdUtil.getSnowflakeNextId());
rmsReportTypeTenant.setReportId(dto.getId());
rmsReportTypeTenant.setTenantId(tenantId);
rmsReportManagementTenantMapper.insertSelective(rmsReportTypeTenant);
}
}
RmsReportManagement reportManagement = BeanUtil.copyProperties(dto, RmsReportManagement.class); RmsReportManagement reportManagement = BeanUtil.copyProperties(dto, RmsReportManagement.class);
reportManagement.setUpdateBy(SecurityUtils.getUsername()); reportManagement.setUpdateBy(SecurityUtils.getUsername());
reportManagement.setCreateTime(new Date()); reportManagement.setCreateTime(new Date());
@ -90,6 +223,18 @@ public class AdminReportServiceImpl implements AdminReportService {
@Override @Override
public Integer deleteManager(AdminReportDto.DeleteManagerDto dto) { public Integer deleteManager(AdminReportDto.DeleteManagerDto dto) {
for (Long aLong : dto.getIdList()) {
RmsReportManagementTenantExample rmsReportTypeTenantExample = new RmsReportManagementTenantExample();
rmsReportTypeTenantExample.createCriteria().andReportIdEqualTo(aLong);
List<RmsReportManagementTenant> rmsReportTypeTenants = rmsReportManagementTenantMapper.selectByExample(rmsReportTypeTenantExample);
if (CollUtil.isNotEmpty(rmsReportTypeTenants)) {
for (RmsReportManagementTenant rmsReportTypeTenant : rmsReportTypeTenants) {
rmsReportManagementTenantMapper.deleteByPrimaryKey(rmsReportTypeTenant.getId());
}
}
}
RmsReportManagementExample reportManagementExample = new RmsReportManagementExample(); RmsReportManagementExample reportManagementExample = new RmsReportManagementExample();
reportManagementExample.createCriteria().andIdIn(dto.getIdList()); reportManagementExample.createCriteria().andIdIn(dto.getIdList());
RmsReportManagement reportManagement = new RmsReportManagement(); RmsReportManagement reportManagement = new RmsReportManagement();

1
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminTenantUserServiceImpl.java

@ -68,6 +68,7 @@ public class AdminTenantUserServiceImpl implements AdminTenantUserService {
DmsUser dmsUser = new DmsUser(); DmsUser dmsUser = new DmsUser();
dmsUser.setId(dto.getId()); dmsUser.setId(dto.getId());
dmsUser.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); dmsUser.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
dmsUser.setForceUpdPwdFlag((byte) 1);
return dmsUserMapper.updateByPrimaryKeySelective(dmsUser); return dmsUserMapper.updateByPrimaryKeySelective(dmsUser);
} }
} }

1
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/DmsLoginServiceImpl.java

@ -64,6 +64,7 @@ public class DmsLoginServiceImpl implements DmsLoginService {
user.setId(userId); user.setId(userId);
user.setUserName(username); user.setUserName(username);
user.setPassword(password); user.setPassword(password);
user.setForceUpdPwdFlag(( byte) 0);
return dmsUserDao.updateUser(user); return dmsUserDao.updateUser(user);
} }

372
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java

@ -13,18 +13,20 @@ import cn.hutool.extra.pinyin.PinyinUtil;
import cn.hutool.poi.excel.BigExcelWriter; import cn.hutool.poi.excel.BigExcelWriter;
import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelUtil;
import com.acupuncture.common.constant.UserConstants; import com.acupuncture.common.constant.UserConstants;
import com.acupuncture.common.core.domain.JsonResponse;
import com.acupuncture.common.core.redis.RedisCache; import com.acupuncture.common.core.redis.RedisCache;
import com.acupuncture.common.exception.base.BaseException; import com.acupuncture.common.exception.base.BaseException;
import com.acupuncture.common.utils.AsposeUtils; import com.acupuncture.common.utils.AsposeUtils;
import com.acupuncture.common.utils.ExceptionUtil; import com.acupuncture.common.utils.ExceptionUtil;
import com.acupuncture.common.utils.SecurityUtils; import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.common.utils.ZipUtils;
import com.acupuncture.system.domain.dto.PmsPatientDto; import com.acupuncture.system.domain.dto.PmsPatientDto;
import com.acupuncture.system.domain.dto.PmsTreatmentDto; import com.acupuncture.system.domain.dto.PmsTreatmentDto;
import com.acupuncture.system.domain.po.*; import com.acupuncture.system.domain.po.*;
import com.acupuncture.system.domain.vo.FmsFollowupVo; import com.acupuncture.system.domain.vo.FmsFollowupVo;
import com.acupuncture.system.domain.vo.PmsPatientVo;
import com.acupuncture.system.domain.vo.PmsTreatmentVo; import com.acupuncture.system.domain.vo.PmsTreatmentVo;
import com.acupuncture.system.persist.dao.FmsFollowupDao; import com.acupuncture.system.persist.dao.FmsFollowupDao;
import com.acupuncture.system.persist.dao.PmsPatientDao;
import com.acupuncture.system.persist.dao.PmsTreatmentDao; import com.acupuncture.system.persist.dao.PmsTreatmentDao;
import com.acupuncture.system.persist.mapper.*; import com.acupuncture.system.persist.mapper.*;
import com.acupuncture.system.service.PmsPatientService; import com.acupuncture.system.service.PmsPatientService;
@ -42,9 +44,11 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -75,6 +79,13 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
private RedisCache redisCache; private RedisCache redisCache;
@Resource @Resource
private DmsTenantMapper dmsTenantMapper; private DmsTenantMapper dmsTenantMapper;
@Resource
private PmsPatientDao pmsPatientDao;
@Resource
private RmsReportManagementMapper rmsReportManagementMapper;
@Resource
private UmsDataSourceMapper umsDataSourceMapper;
@Value("${file.TreamentTemplate}") @Value("${file.TreamentTemplate}")
private String treamentTemplate; private String treamentTemplate;
@Value("${file.pgTemplate}") @Value("${file.pgTemplate}")
@ -218,12 +229,19 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
} }
@Override @Override
public List<PmsTreatmentVo.TreatmentVO> listTreatment(PmsTreatmentDto.TreatmentQueryDTO queryDTO) { public List<PmsTreatmentVo.TreatmentVO> listTreatment(PmsTreatmentDto.TreatmentQueryDTO queryDTO, List<RmsReportManagement> rmsReportManagements) {
List<PmsTreatmentVo.TreatmentVO> query = pmsTreatmentDao.query(queryDTO, SecurityUtils.getTenantId()); List<PmsTreatmentVo.TreatmentVO> query = pmsTreatmentDao.query(queryDTO, SecurityUtils.getTenantId());
if (CollectionUtil.isNotEmpty(query)) { if (CollectionUtil.isNotEmpty(query)) {
//查询公共队列 //查询公共队列
Map<Long, String> map1 = new HashMap<>();
if (CollectionUtil.isNotEmpty(rmsReportManagements)) {
map1 = rmsReportManagements.stream().collect(Collectors.toMap(RmsReportManagement::getId, RmsReportManagement::getReportTitle));
}
List<Object> commonFollowupQueue = redisCache.getCacheList("common_followup_queue"); List<Object> commonFollowupQueue = redisCache.getCacheList("common_followup_queue");
for (PmsTreatmentVo.TreatmentVO treatmentVO : query) { for (PmsTreatmentVo.TreatmentVO treatmentVO : query) {
if (treatmentVO.getManagementId() != null) {
treatmentVO.setReportTitle(map1.get(treatmentVO.getManagementId()));
}
PmsTreatmentRecordExample pmsTreatmentRecordExample = new PmsTreatmentRecordExample(); PmsTreatmentRecordExample pmsTreatmentRecordExample = new PmsTreatmentRecordExample();
pmsTreatmentRecordExample.createCriteria().andDelFlagEqualTo((byte) 0).andQuestionCodeIn(CollectionUtil.newArrayList("JBXX_ZYZD", "JBXX_ZYZD_QT")).andTreatmentIdEqualTo(treatmentVO.getId()); pmsTreatmentRecordExample.createCriteria().andDelFlagEqualTo((byte) 0).andQuestionCodeIn(CollectionUtil.newArrayList("JBXX_ZYZD", "JBXX_ZYZD_QT")).andTreatmentIdEqualTo(treatmentVO.getId());
List<PmsTreatmentRecord> pmsTreatmentRecords = pmsTreatmentRecordMapper.selectByExample(pmsTreatmentRecordExample); List<PmsTreatmentRecord> pmsTreatmentRecords = pmsTreatmentRecordMapper.selectByExample(pmsTreatmentRecordExample);
@ -459,7 +477,7 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
@Override @Override
public void exportTreatment(HttpServletResponse response, PmsTreatmentDto.TreatmentQueryDTO dto) { public void exportTreatment(HttpServletResponse response, PmsTreatmentDto.TreatmentQueryDTO dto) {
List<PmsTreatmentVo.TreatmentVO> treatmentVOList = listTreatment(dto); List<PmsTreatmentVo.TreatmentVO> treatmentVOList = listTreatment(dto, null);
if (CollectionUtil.isEmpty(treatmentVOList)) { if (CollectionUtil.isEmpty(treatmentVOList)) {
throw new BaseException("暂无数据"); throw new BaseException("暂无数据");
} }
@ -655,9 +673,9 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
} }
PmsTreatmentRecordExample pmsTreatmentRecordExample = new PmsTreatmentRecordExample(); PmsTreatmentRecordExample pmsTreatmentRecordExample = new PmsTreatmentRecordExample();
pmsTreatmentRecordExample.createCriteria().andTreatmentIdEqualTo(dto.getTreatmentId()).andDelFlagEqualTo((byte) 0); pmsTreatmentRecordExample.createCriteria().andTreatmentIdEqualTo(dto.getTreatmentId()).andDelFlagEqualTo((byte) 0);
List<PmsTreatmentRecord> pmsTreatmentRecords = pmsTreatmentRecordMapper.selectByExample(pmsTreatmentRecordExample); // List<PmsTreatmentRecord> pmsTreatmentRecords = pmsTreatmentRecordMapper.selectByExample(pmsTreatmentRecordExample);
List<PmsTreatmentVo.TreatmentRecord> pmsTreatmentRecords = pmsTreatmentDao.adminSelectRecord(dto.getTreatmentId(), null);
String pdfName = treatmentRecordVO.getName() + "_" + treatmentRecordVO.getVisitNumber(); String pdfName = treatmentRecordVO.getName() + "_" + (StrUtil.isNotEmpty(treatmentRecordVO.getVisitNumber()) ? treatmentRecordVO.getVisitNumber() : System.currentTimeMillis());
String wordPath = profilePath + File.separator + pdfName + ".docx"; String wordPath = profilePath + File.separator + pdfName + ".docx";
String pdfPath = profilePath + File.separator + pdfName + ".pdf"; String pdfPath = profilePath + File.separator + pdfName + ".pdf";
try { try {
@ -667,45 +685,90 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
map.put("sex", treatmentRecordVO.getGender() == 0 ? "男" : "女"); map.put("sex", treatmentRecordVO.getGender() == 0 ? "男" : "女");
map.put("age", treatmentRecordVO.getAge() + " 岁"); map.put("age", treatmentRecordVO.getAge() + " 岁");
map.put("phone", treatmentRecordVO.getPhone()); map.put("phone", treatmentRecordVO.getPhone());
map.put("visitNum", treatmentRecordVO.getVisitNumber()); map.put("visitNum", StrUtil.isEmpty(treatmentRecordVO.getVisitNumber()) ? null : treatmentRecordVO.getVisitNumber());
map.put("visitTime", DateUtil.format(treatmentRecordVO.getVisitTime(), "yyyy-MM-dd")); map.put("visitTime", DateUtil.format(treatmentRecordVO.getVisitTime(), "yyyy-MM-dd"));
map.put("doctor", treatmentRecordVO.getDoctor()); map.put("doctor", treatmentRecordVO.getDoctor());
map.put("createBy", treatmentRecordVO.getCreateBy()); map.put("createBy", treatmentRecordVO.getCreateBy());
map.put("createTime", DateUtil.format(treatmentRecordVO.getCreateTime(), "yyyy-MM-dd HH:mm:ss")); map.put("createTime", DateUtil.format(treatmentRecordVO.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
map.put("status", treatmentRecordVO.getStatus() == 0 ? "未完成" : "已完成"); map.put("status", treatmentRecordVO.getStatus() == 0 ? "未完成" : "已完成");
map.put("report_date", DateUtil.format(new Date(), "yyyy-MM-dd")); map.put("report_date", DateUtil.format(new Date(), "yyyy-MM-dd"));
if (treatmentRecordVO != null) { if (StrUtil.isNotEmpty(treatmentRecordVO.getTenantName())) {
map.put("h_name", treatmentRecordVO.getTenantName()); map.put("h_name", treatmentRecordVO.getTenantName());
} }
if (CollectionUtil.isNotEmpty(pmsTreatmentRecords)) { if (CollectionUtil.isNotEmpty(pmsTreatmentRecords)) {
Map<String, PmsTreatmentRecord> recordMap = pmsTreatmentRecords.stream().collect(Collectors.toMap(PmsTreatmentRecord::getQuestionCode, Function.identity())); Map<String, List<PmsTreatmentVo.TreatmentRecord>> recordMap = pmsTreatmentRecords.stream().collect(Collectors.groupingBy(PmsTreatmentVo.TreatmentRecord::getQuestionCode));
map.put("Clinical_diagnosis", recordMap.get("JBXX_ZYZD") == null ? "" : StrUtil.split(recordMap.get("JBXX_ZYZD").getAnswer(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(", "))); map.put("Clinical_diagnosis", recordMap.get("JBXX_ZYZD") == null ? "" : StrUtil.split(recordMap.get("JBXX_ZYZD").get(0).getAnswerString(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(", ")));
map.put("PG_RTCF_TXLX", recordMap.get("PG_RTCF_TXLX") == null ? "" : recordMap.get("PG_RTCF_TXLX").getAnswer()); String txlx = recordMap.get("PG_RTCF_TXLX") == null ? "" : recordMap.get("PG_RTCF_TXLX").get(0).getAnswerString();
map.put("PG_RTCF_STNL", recordMap.get("PG_RTCF_STNL") == null ? "" : recordMap.get("PG_RTCF_STNL").getAnswer()); if (StrUtil.isEmpty(txlx)) {
map.put("PG_RTCF_JKPF", recordMap.get("PG_RTCF_JKPF") == null ? "" : recordMap.get("PG_RTCF_JKPF").getAnswer()); map.put("rtcf_flag", false);
map.put("PG_RTCF_TZ", recordMap.get("PG_RTCF_TZ") == null ? "" : recordMap.get("PG_RTCF_TZ").getAnswer()); } else {
map.put("PG_RTCF_QZTZ", recordMap.get("PG_RTCF_QZTZ") == null ? "" : recordMap.get("PG_RTCF_QZTZ").getAnswer()); map.put("rtcf_flag", true);
map.put("PG_RTCF_JRL", recordMap.get("PG_RTCF_JRL") == null ? "" : recordMap.get("PG_RTCF_JRL").getAnswer()); }
map.put("PG_RTCF_TBW", recordMap.get("PG_RTCF_TBW") == null ? "" : recordMap.get("PG_RTCF_TBW").getAnswer()); map.put("PG_RTCF_TXLX", txlx);
map.put("PG_RTCF_DBZ", recordMap.get("PG_RTCF_DBZ") == null ? "" : recordMap.get("PG_RTCF_DBZ").getAnswer()); map.put("PG_RTCF_STNL", recordMap.get("PG_RTCF_STNL") == null ? "" : recordMap.get("PG_RTCF_STNL").get(0).getAnswer());
map.put("PG_RTCF_GZ", recordMap.get("PG_RTCF_GZ") == null ? "" : recordMap.get("PG_RTCF_GZ").getAnswer()); map.put("PG_RTCF_JKPF", recordMap.get("PG_RTCF_JKPF") == null ? "" : recordMap.get("PG_RTCF_JKPF").get(0).getAnswer());
map.put("PG_RTCF_GGJ", recordMap.get("PG_RTCF_GGJ") == null ? "" : recordMap.get("PG_RTCF_GGJ").getAnswer()); map.put("PG_RTCF_TZ", recordMap.get("PG_RTCF_TZ") == null ? "" : recordMap.get("PG_RTCF_TZ").get(0).getAnswer());
map.put("PG_RTCF_ZF", recordMap.get("PG_RTCF_ZF") == null ? "" : recordMap.get("PG_RTCF_ZF").getAnswer()); map.put("PG_RTCF_QZTZ", recordMap.get("PG_RTCF_QZTZ") == null ? "" : recordMap.get("PG_RTCF_QZTZ").get(0).getAnswer());
map.put("PG_RTCF_WHR", recordMap.get("PG_RTCF_WHR") == null ? "" : recordMap.get("PG_RTCF_WHR").getAnswer()); map.put("PG_RTCF_JRL", recordMap.get("PG_RTCF_JRL") == null ? "" : recordMap.get("PG_RTCF_JRL").get(0).getAnswer());
map.put("PG_RTCF_BMI", recordMap.get("PG_RTCF_BMI") == null ? "" : recordMap.get("PG_RTCF_BMI").getAnswer()); map.put("PG_RTCF_TBW", recordMap.get("PG_RTCF_TBW") == null ? "" : recordMap.get("PG_RTCF_TBW").get(0).getAnswer());
map.put("PG_RTCF_PBF", recordMap.get("PG_RTCF_PBF") == null ? "" : recordMap.get("PG_RTCF_PBF").getAnswer()); map.put("PG_RTCF_DBZ", recordMap.get("PG_RTCF_DBZ") == null ? "" : recordMap.get("PG_RTCF_DBZ").get(0).getAnswer());
map.put("PG_RTCF_NZZFSP", recordMap.get("PG_RTCF_NZZFSP") == null ? "" : recordMap.get("PG_RTCF_NZZFSP").getAnswer()); map.put("PG_RTCF_GZ", recordMap.get("PG_RTCF_GZ") == null ? "" : recordMap.get("PG_RTCF_GZ").get(0).getAnswer());
map.put("PG_TZBS_ZYTZ", recordMap.get("PG_TZBS_ZYTZ") == null ? "" : recordMap.get("PG_TZBS_ZYTZ").getAnswer()); map.put("PG_RTCF_GGJ", recordMap.get("PG_RTCF_GGJ") == null ? "" : recordMap.get("PG_RTCF_GGJ").get(0).getAnswer());
map.put("PG_TZBS_JJTZ", recordMap.get("PG_TZBS_JJTZ") == null ? "" : StrUtil.split(recordMap.get("PG_TZBS_JJTZ").getAnswer(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(","))); map.put("PG_RTCF_ZF", recordMap.get("PG_RTCF_ZF") == null ? "" : recordMap.get("PG_RTCF_ZF").get(0).getAnswer());
map.put("PG_RTCF_WHR", recordMap.get("PG_RTCF_WHR") == null ? "" : recordMap.get("PG_RTCF_WHR").get(0).getAnswer());
map.put("PG_RTCF_BMI", recordMap.get("PG_RTCF_BMI") == null ? "" : recordMap.get("PG_RTCF_BMI").get(0).getAnswer());
map.put("PG_RTCF_PBF", recordMap.get("PG_RTCF_PBF") == null ? "" : recordMap.get("PG_RTCF_PBF").get(0).getAnswer());
map.put("PG_RTCF_NZZFSP", recordMap.get("PG_RTCF_NZZFSP") == null ? "" : recordMap.get("PG_RTCF_NZZFSP").get(0).getAnswer());
String tzbs = recordMap.get("PG_TZBS_ZYTZ") == null ? "" : recordMap.get("PG_TZBS_ZYTZ").get(0).getAnswerString();
if (StrUtil.isEmpty(tzbs)) {
map.put("bsjg_flag", false);
} else {
map.put("bsjg_flag", true);
}
map.put("PG_TZBS_ZYTZ", tzbs);
map.put("PG_TZBS_JJTZ", recordMap.get("PG_TZBS_JJTZ") == null ? "" : StrUtil.split(recordMap.get("PG_TZBS_JJTZ").get(0).getAnswerString(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(",")));
map.put("score1", recordMap.get("PG_TT_TAPS_DF") == null ? "" : recordMap.get("PG_TT_TAPS_DF").getAnswer()); String score1 = recordMap.get("PG_TT_TAPS_DF") == null ? "" : recordMap.get("PG_TT_TAPS_DF").get(0).getAnswerString();
map.put("score2", recordMap.get("PG_TT_TRACE_DF") == null ? "" : recordMap.get("PG_TT_TRACE_DF").getAnswer()); String score2 = recordMap.get("PG_TT_TRACE_DF") == null ? "" : recordMap.get("PG_TT_TRACE_DF").get(0).getAnswerString();
map.put("score3", recordMap.get("PG_TT_SRS22_DF") == null ? "" : recordMap.get("PG_TT_SRS22_DF").getAnswer()); String score3 = recordMap.get("PG_TT_SRS22_DF") == null ? "" : recordMap.get("PG_TT_SRS22_DF").get(0).getAnswerString();
map.put("score4", recordMap.get("PG_SM_PHQ-9_DF") == null ? "" : recordMap.get("PG_SM_PHQ-9_DF").getAnswer()); if (StrUtil.isEmpty(score1) && StrUtil.isEmpty(score2) && StrUtil.isEmpty(score3)) {
map.put("score5", recordMap.get("PG_SM_EPSW_DF") == null ? "" : recordMap.get("PG_SM_EPSW_DF").getAnswer()); map.put("ttpg_flag", false);
map.put("score6", recordMap.get("PG_SM_PSQI_DF") == null ? "" : recordMap.get("PG_SM_PSQI_DF").getAnswer()); } else {
map.put("score7", recordMap.get("PG_JL_HAMD-24_DF") == null ? "" : recordMap.get("PG_JL_HAMD-24_DF").getAnswer()); map.put("ttpg_flag", true);
map.put("score8", recordMap.get("PG_JL_SAS_DF") == null ? "" : recordMap.get("PG_JL_SAS_DF").getAnswer()); }
map.put("score1", score1);
map.put("score2", score2);
map.put("score3", score3);
String score4 = recordMap.get("PG_SM_PHQ-9_DF") == null ? "" : recordMap.get("PG_SM_PHQ-9_DF").get(0).getAnswerString();
String score5 = recordMap.get("PG_SM_EPSW_DF") == null ? "" : recordMap.get("PG_SM_EPSW_DF").get(0).getAnswerString();
String score6 = recordMap.get("PG_SM_PSQI_DF") == null ? "" : recordMap.get("PG_SM_PSQI_DF").get(0).getAnswerString();
if (StrUtil.isEmpty(score4) && StrUtil.isEmpty(score5) && StrUtil.isEmpty(score6)) {
map.put("smpg_flag", false);
} else {
map.put("smpg_flag", true);
}
map.put("table0", Tables.of(new String[][]{
new String[]{"00", "01"},
new String[]{"10", "11"}
}).border(BorderStyle.DEFAULT).create());
map.put("score4", score4);
map.put("score5", score5);
map.put("score6", score6);
String score7 = recordMap.get("PG_JL_HAMD-24_DF") == null ? "" : recordMap.get("PG_JL_HAMD-24_DF").get(0).getAnswerString();
String score8 = recordMap.get("PG_JL_SAS_DF") == null ? "" : recordMap.get("PG_JL_SAS_DF").get(0).getAnswerString();
if (StrUtil.isEmpty(score7) && StrUtil.isEmpty(score8)) {
map.put("jlpg_flag", false);
} else {
map.put("jlpg_flag", true);
}
map.put("score7", score7);
map.put("score8", score8);
} }
//渲染 //渲染
template.render(map); template.render(map);
@ -721,6 +784,144 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
return profileUrl + "/" + pdfName + ".pdf"; return profileUrl + "/" + pdfName + ".pdf";
} }
@Override
public String adminExportTreatmentPgZip(HttpServletResponse response, PmsTreatmentDto.ExportZipVO dto) throws IOException {
RmsReportManagement reportManagement = rmsReportManagementMapper.selectByPrimaryKey(dto.getManagementId());
if (reportManagement == null) {
return null;
}
return adminExportTreatmentPg(response, dto.getManagementId(), reportManagement.getReportTitle());
}
private String adminExportTreatmentPg(HttpServletResponse response, Long managementId, String title) throws IOException {
List<PmsTreatmentVo.TreatmentRecordVO> treatmentRecordVOS = pmsTreatmentDao.adminQueryTreatmentZip(managementId);
if (CollectionUtil.isEmpty(treatmentRecordVOS)) {
return null;
}
List<File> fileList = new ArrayList<>();
for (PmsTreatmentVo.TreatmentRecordVO treatmentRecordVO : treatmentRecordVOS) {
if (treatmentRecordVO == null) {
throw new BaseException("诊疗信息不存在");
}
PmsTreatmentRecordExample pmsTreatmentRecordExample = new PmsTreatmentRecordExample();
pmsTreatmentRecordExample.createCriteria().andTreatmentIdEqualTo(treatmentRecordVO.getId()).andDelFlagEqualTo((byte) 0);
// List<PmsTreatmentRecord> pmsTreatmentRecords = pmsTreatmentRecordMapper.selectByExample(pmsTreatmentRecordExample);
List<PmsTreatmentVo.TreatmentRecord> pmsTreatmentRecords = pmsTreatmentDao.adminSelectRecord(treatmentRecordVO.getId(), null);
String pdfName = treatmentRecordVO.getName() + "_" + (StrUtil.isNotEmpty(treatmentRecordVO.getVisitNumber()) ? treatmentRecordVO.getVisitNumber() : System.currentTimeMillis());
String wordPath = profilePath + File.separator + pdfName + ".docx";
String pdfPath = profilePath + File.separator + pdfName + ".pdf";
try {
XWPFTemplate template = XWPFTemplate.compile(pgTemplate);
Map<String, Object> map = new HashMap<>();
map.put("name", treatmentRecordVO.getName());
map.put("sex", treatmentRecordVO.getGender() == 0 ? "男" : "女");
map.put("age", treatmentRecordVO.getAge() + " 岁");
map.put("phone", treatmentRecordVO.getPhone());
map.put("visitNum", StrUtil.isEmpty(treatmentRecordVO.getVisitNumber()) ? null : treatmentRecordVO.getVisitNumber());
map.put("visitTime", DateUtil.format(treatmentRecordVO.getVisitTime(), "yyyy-MM-dd"));
map.put("doctor", treatmentRecordVO.getDoctor());
map.put("createBy", treatmentRecordVO.getCreateBy());
map.put("createTime", DateUtil.format(treatmentRecordVO.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
map.put("status", treatmentRecordVO.getStatus() == 0 ? "未完成" : "已完成");
map.put("report_date", DateUtil.format(new Date(), "yyyy-MM-dd"));
if (StrUtil.isNotEmpty(treatmentRecordVO.getTenantName())) {
map.put("h_name", treatmentRecordVO.getTenantName());
}
if (CollectionUtil.isNotEmpty(pmsTreatmentRecords)) {
Map<String, List<PmsTreatmentVo.TreatmentRecord>> recordMap = pmsTreatmentRecords.stream().collect(Collectors.groupingBy(PmsTreatmentVo.TreatmentRecord::getQuestionCode));
map.put("Clinical_diagnosis", recordMap.get("JBXX_ZYZD") == null ? "" : StrUtil.split(recordMap.get("JBXX_ZYZD").get(0).getAnswerString(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(", ")));
String txlx = recordMap.get("PG_RTCF_TXLX") == null ? "" : recordMap.get("PG_RTCF_TXLX").get(0).getAnswerString();
if (StrUtil.isEmpty(txlx)) {
map.put("rtcf_flag", false);
} else {
map.put("rtcf_flag", true);
}
map.put("PG_RTCF_TXLX", txlx);
map.put("PG_RTCF_STNL", recordMap.get("PG_RTCF_STNL") == null ? "" : recordMap.get("PG_RTCF_STNL").get(0).getAnswer());
map.put("PG_RTCF_JKPF", recordMap.get("PG_RTCF_JKPF") == null ? "" : recordMap.get("PG_RTCF_JKPF").get(0).getAnswer());
map.put("PG_RTCF_TZ", recordMap.get("PG_RTCF_TZ") == null ? "" : recordMap.get("PG_RTCF_TZ").get(0).getAnswer());
map.put("PG_RTCF_QZTZ", recordMap.get("PG_RTCF_QZTZ") == null ? "" : recordMap.get("PG_RTCF_QZTZ").get(0).getAnswer());
map.put("PG_RTCF_JRL", recordMap.get("PG_RTCF_JRL") == null ? "" : recordMap.get("PG_RTCF_JRL").get(0).getAnswer());
map.put("PG_RTCF_TBW", recordMap.get("PG_RTCF_TBW") == null ? "" : recordMap.get("PG_RTCF_TBW").get(0).getAnswer());
map.put("PG_RTCF_DBZ", recordMap.get("PG_RTCF_DBZ") == null ? "" : recordMap.get("PG_RTCF_DBZ").get(0).getAnswer());
map.put("PG_RTCF_GZ", recordMap.get("PG_RTCF_GZ") == null ? "" : recordMap.get("PG_RTCF_GZ").get(0).getAnswer());
map.put("PG_RTCF_GGJ", recordMap.get("PG_RTCF_GGJ") == null ? "" : recordMap.get("PG_RTCF_GGJ").get(0).getAnswer());
map.put("PG_RTCF_ZF", recordMap.get("PG_RTCF_ZF") == null ? "" : recordMap.get("PG_RTCF_ZF").get(0).getAnswer());
map.put("PG_RTCF_WHR", recordMap.get("PG_RTCF_WHR") == null ? "" : recordMap.get("PG_RTCF_WHR").get(0).getAnswer());
map.put("PG_RTCF_BMI", recordMap.get("PG_RTCF_BMI") == null ? "" : recordMap.get("PG_RTCF_BMI").get(0).getAnswer());
map.put("PG_RTCF_PBF", recordMap.get("PG_RTCF_PBF") == null ? "" : recordMap.get("PG_RTCF_PBF").get(0).getAnswer());
map.put("PG_RTCF_NZZFSP", recordMap.get("PG_RTCF_NZZFSP") == null ? "" : recordMap.get("PG_RTCF_NZZFSP").get(0).getAnswer());
String tzbs = recordMap.get("PG_TZBS_ZYTZ") == null ? "" : recordMap.get("PG_TZBS_ZYTZ").get(0).getAnswerString();
if (StrUtil.isEmpty(tzbs)) {
map.put("bsjg_flag", false);
} else {
map.put("bsjg_flag", true);
}
map.put("PG_TZBS_ZYTZ", tzbs);
map.put("PG_TZBS_JJTZ", recordMap.get("PG_TZBS_JJTZ") == null ? "" : StrUtil.split(recordMap.get("PG_TZBS_JJTZ").get(0).getAnswerString(), UserConstants.ANSWER_JOIN_STRING).stream().collect(Collectors.joining(",")));
String score1 = recordMap.get("PG_TT_TAPS_DF") == null ? "" : recordMap.get("PG_TT_TAPS_DF").get(0).getAnswerString();
String score2 = recordMap.get("PG_TT_TRACE_DF") == null ? "" : recordMap.get("PG_TT_TRACE_DF").get(0).getAnswerString();
String score3 = recordMap.get("PG_TT_SRS22_DF") == null ? "" : recordMap.get("PG_TT_SRS22_DF").get(0).getAnswerString();
if (StrUtil.isEmpty(score1) && StrUtil.isEmpty(score2) && StrUtil.isEmpty(score3)) {
map.put("ttpg_flag", false);
} else {
map.put("ttpg_flag", true);
}
map.put("score1", score1);
map.put("score2", score2);
map.put("score3", score3);
String score4 = recordMap.get("PG_SM_PHQ-9_DF") == null ? "" : recordMap.get("PG_SM_PHQ-9_DF").get(0).getAnswerString();
String score5 = recordMap.get("PG_SM_EPSW_DF") == null ? "" : recordMap.get("PG_SM_EPSW_DF").get(0).getAnswerString();
String score6 = recordMap.get("PG_SM_PSQI_DF") == null ? "" : recordMap.get("PG_SM_PSQI_DF").get(0).getAnswerString();
if (StrUtil.isEmpty(score4) && StrUtil.isEmpty(score5) && StrUtil.isEmpty(score6)) {
map.put("smpg_flag", false);
} else {
map.put("smpg_flag", true);
}
map.put("table0", Tables.of(new String[][]{
new String[]{"00", "01"},
new String[]{"10", "11"}
}).border(BorderStyle.DEFAULT).create());
map.put("score4", score4);
map.put("score5", score5);
map.put("score6", score6);
String score7 = recordMap.get("PG_JL_HAMD-24_DF") == null ? "" : recordMap.get("PG_JL_HAMD-24_DF").get(0).getAnswerString();
String score8 = recordMap.get("PG_JL_SAS_DF") == null ? "" : recordMap.get("PG_JL_SAS_DF").get(0).getAnswerString();
if (StrUtil.isEmpty(score7) && StrUtil.isEmpty(score8)) {
map.put("jlpg_flag", false);
} else {
map.put("jlpg_flag", true);
}
map.put("score7", score7);
map.put("score8", score8);
}
//渲染
template.render(map);
//以文件形式输出
template.writeAndClose(Files.newOutputStream(Paths.get(wordPath)));
//转换为pdf
AsposeUtils.doc2pdf(wordPath, pdfPath);
//删除word
FileUtil.del(wordPath);
fileList.add(new File(pdfPath));
} catch (Exception e) {
e.printStackTrace();
}
}
OutputStream outputStream = Files.newOutputStream(new File("/home/acupuncture/server/profile/upload/" + title + ".zip").toPath());
ZipUtils.toZip(fileList, outputStream);
return "/profile/upload/" + title + ".zip";
}
@Override @Override
public void importTreatment(MultipartFile file) throws IOException { public void importTreatment(MultipartFile file) throws IOException {
//读取excel //读取excel
@ -761,6 +962,93 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
}); });
} }
@Override
public void importTreatmentAdmin(MultipartFile file, Long tenantId) throws IOException {
//读取excel
List<PmsPatient> pmsPatientList = CollectionUtil.newArrayList();
ExcelUtil.readBySax(file.getInputStream(), 0, (sheetIndex, rowIndex, rowList) -> {
//中铝新材料有限公司电解厂2024年度职工健康体检统计表(非高温)
//序号 姓名 性别 出生日期 身份证号 婚姻状况 联系电话 部门 工号 工种 民族 国籍 防护措施 总工龄(年) 总工龄(月) 接害工龄(年) 接害工龄(月) 体检类别
try {
if (rowIndex < 1) {
return;
}
PmsPatient patient = new PmsPatient();
patient.setName(rowList.get(1).toString());
patient.setGender(rowList.get(2).toString().trim().equals("男") ? (byte) 0 : (byte) 1);
patient.setPinyinFull(PinyinUtil.getPinyin(patient.getName(), ""));
patient.setPinyinSimple(PinyinUtil.getFirstLetter(patient.getName(), ""));
patient.setBirthDate(DateUtil.parse(rowList.get(3).toString()));
patient.setEthnicity(rowList.get(4).toString());
patient.setEducationYears(Integer.parseInt(rowList.get(5).toString()));
patient.setPhone(rowList.get(6).toString());
patient.setIdCardType(Byte.valueOf( rowList.get(7).toString()));
patient.setIdCard(rowList.get(8).toString());
patient.setTenantId(tenantId);
patient.setSource(rowList.get(9).toString().trim().equals("筛查") ? (byte) 0 : rowList.get(9).toString().trim().equals("录入") ? (byte) 1 : (byte) 2);
patient.setCurrentIllnessHistory(rowList.get(10).toString());
patient.setCreateBy(SecurityUtils.getUsername());
patient.setId(IdUtil.getSnowflakeNextId());
// patient.setTenantId(SecurityUtils.getTenantId());
patient.setDelFlag((byte) 0);
patient.setCreateTime(new Date());
pmsPatientList.add(patient);
} catch (Exception e) {
e.printStackTrace();
throw new BaseException(StrUtil.format("导入患者信息错误:sheet:{},row:{}, {}",
sheetIndex + 1, rowIndex + 1, ExceptionUtil.getExceptionMessage(e)));
}
});
if (CollectionUtil.isNotEmpty(pmsPatientList)) {
//批量插入
batchSavePatient(pmsPatientList);
}
}
public Integer batchSavePatient(List<PmsPatient> list) {
int max = 2000;
for (int start = 0; start < list.size(); start += max) {
pmsPatientDao.batchInsert(list.subList(start,
start + (Math.min(list.size() - start, max)))
);
}
return list.size();
}
@Override
public String[] getTenantId(MultipartFile file) throws IOException {
AtomicReference<DmsTenant> tenantId = new AtomicReference<>(new DmsTenant());
//读取excel
List<PmsPatient> pmsPatientList = CollectionUtil.newArrayList();
ExcelUtil.readBySax(file.getInputStream(), 0, (sheetIndex, rowIndex, rowList) -> {
// 建档时间 患者姓名 性别 年龄 民族 受教育程度 手机号码 证件类型(0身份证;1护照或外国人永居证; 2港澳居民来往内地通行; 3台湾居民来往大陆通行证; 4其他;) 证件号码 门诊/住院 门诊号/住院号 门诊时间/住院时间 出院时间 责任医生 建档人
try {
if (rowIndex < 1) {
return;
}
String s = rowList.get(13).toString();
DmsTenantExample dmsTenantExample = new DmsTenantExample();
dmsTenantExample.createCriteria().andDelFlagEqualTo((byte) 0).andNameEqualTo(s);
List<DmsTenant> dmsTenants = dmsTenantMapper.selectByExample(dmsTenantExample);
if (CollectionUtil.isNotEmpty(dmsTenants)) {
tenantId.set(dmsTenants.get(0));
return;
}
return;
} catch (Exception e) {
e.printStackTrace();
throw new BaseException(StrUtil.format("导入诊疗信息错误:sheet:{},row:{}, {}", sheetIndex + 1, rowIndex + 1, ExceptionUtil.getExceptionMessage(e)));
}
});
UmsDataSource umsDataSource = umsDataSourceMapper.selectByPrimaryKey(tenantId.get().getDataSourceId());
if (umsDataSource != null ) {
return new String[]{umsDataSource.getDataSourceKey(), tenantId.get().getId() + ""};
}
return null;
}
@Override @Override
public List<PmsTreatmentVo.TreatmentVO> adminListTreatment(PmsTreatmentDto.TreatmentQueryDTO queryDTO) { public List<PmsTreatmentVo.TreatmentVO> adminListTreatment(PmsTreatmentDto.TreatmentQueryDTO queryDTO) {
List<PmsTreatmentVo.TreatmentVO> query = pmsTreatmentDao.adminQuery(queryDTO); List<PmsTreatmentVo.TreatmentVO> query = pmsTreatmentDao.adminQuery(queryDTO);
@ -768,9 +1056,9 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
//查询公共队列 //查询公共队列
List<Object> commonFollowupQueue = redisCache.getCacheList("common_followup_queue"); List<Object> commonFollowupQueue = redisCache.getCacheList("common_followup_queue");
for (PmsTreatmentVo.TreatmentVO treatmentVO : query) { for (PmsTreatmentVo.TreatmentVO treatmentVO : query) {
PmsTreatmentRecordExample pmsTreatmentRecordExample = new PmsTreatmentRecordExample(); // PmsTreatmentRecordExample pmsTreatmentRecordExample = new PmsTreatmentRecordExample();
pmsTreatmentRecordExample.createCriteria().andDelFlagEqualTo((byte) 0).andQuestionCodeEqualTo("JBXX_ZYZD").andTreatmentIdEqualTo(treatmentVO.getId()); // pmsTreatmentRecordExample.createCriteria().andDelFlagEqualTo((byte) 0).andQuestionCodeEqualTo("JBXX_ZYZD").andTreatmentIdEqualTo(treatmentVO.getId());
List<PmsTreatmentRecord> pmsTreatmentRecords = pmsTreatmentRecordMapper.selectByExample(pmsTreatmentRecordExample); // List<PmsTreatmentRecord> pmsTreatmentRecords = pmsTreatmentRecordMapper.selectByExample(pmsTreatmentRecordExample);
List<PmsTreatmentVo.TreatmentRecord> treatmentRecords = pmsTreatmentDao.adminSelectRecord(treatmentVO.getId(), CollectionUtil.newArrayList("JBXX_ZYZD")); List<PmsTreatmentVo.TreatmentRecord> treatmentRecords = pmsTreatmentDao.adminSelectRecord(treatmentVO.getId(), CollectionUtil.newArrayList("JBXX_ZYZD"));
if (CollectionUtil.isNotEmpty(treatmentRecords)) { if (CollectionUtil.isNotEmpty(treatmentRecords)) {
List<String> answer = treatmentRecords.get(0).getAnswer(); List<String> answer = treatmentRecords.get(0).getAnswer();
@ -868,4 +1156,12 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
IoUtil.close(out); IoUtil.close(out);
} }
} }
@Override
public void aduit(Long treatmentId, Byte status) {
PmsTreatment pmsTreatment = treatmentMapper.selectByPrimaryKey(treatmentId);
if (pmsTreatment != null) {
pmsTreatment.setStatus(status);
}
}
} }

151
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/SysNoticeServiceImpl.java

@ -1,92 +1,193 @@
package com.acupuncture.system.service.impl; package com.acupuncture.system.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.system.domain.po.SysNoticeUser;
import com.acupuncture.system.domain.po.SysNoticeUserExample;
import com.acupuncture.system.persist.mapper.SysNoticeUserMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.acupuncture.system.domain.SysNotice; import com.acupuncture.system.domain.SysNotice;
import com.acupuncture.system.mapper.SysNoticeMapper; import com.acupuncture.system.mapper.SysNoticeMapper;
import com.acupuncture.system.service.ISysNoticeService; import com.acupuncture.system.service.ISysNoticeService;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/** /**
* 公告 服务层实现 * 公告 服务层实现
* *
* @author acupuncture * @author acupuncture
*/ */
@Service @Service
public class SysNoticeServiceImpl implements ISysNoticeService @Transactional
{ public class SysNoticeServiceImpl implements ISysNoticeService {
@Autowired @Autowired
private SysNoticeMapper noticeMapper; private SysNoticeMapper noticeMapper;
@Resource
private SysNoticeUserMapper sysNoticeUserMapper;
/** /**
* 查询公告信息 * 查询公告信息
* *
* @param noticeId 公告ID * @param noticeId 公告ID
* @return 公告信息 * @return 公告信息
*/ */
@Override @Override
public SysNotice selectNoticeById(Long noticeId) public SysNotice selectNoticeById(Long noticeId) {
{ SysNotice sysNotice = noticeMapper.selectNoticeById(noticeId);
return noticeMapper.selectNoticeById(noticeId); if (sysNotice != null) {
SysNoticeUserExample sysNoticeUserExample = new SysNoticeUserExample();
sysNoticeUserExample.createCriteria().andNoticeIdEqualTo(sysNotice.getNoticeId());
List<SysNoticeUser> sysNoticeUsers = sysNoticeUserMapper.selectByExample(sysNoticeUserExample);
if (CollUtil.isNotEmpty(sysNoticeUsers)) {
sysNotice.setUserIdList(sysNoticeUsers.stream().map(SysNoticeUser::getUserId).collect(Collectors.toList()));
}
}
return sysNotice;
} }
/** /**
* 查询公告列表 * 查询公告列表
* *
* @param notice 公告信息 * @param notice 公告信息
* @return 公告集合 * @return 公告集合
*/ */
@Override @Override
public List<SysNotice> selectNoticeList(SysNotice notice) public List<SysNotice> selectNoticeList(SysNotice notice) {
{ if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
return noticeMapper.selectNoticeList(notice); SysNoticeUserExample sysNoticeUserExample = new SysNoticeUserExample();
sysNoticeUserExample.createCriteria().andUserIdEqualTo(SecurityUtils.getUserId());
List<SysNoticeUser> sysNoticeUsers = sysNoticeUserMapper.selectByExample(sysNoticeUserExample);
List<Long> noticeIdList = new ArrayList<>();
if (CollUtil.isNotEmpty(sysNoticeUsers)) {
noticeIdList = sysNoticeUsers.stream().map(sysNoticeUser -> sysNoticeUser.getNoticeId()).collect(Collectors.toList());
}
notice.setNoticeIdList(noticeIdList);
}
List<SysNotice> sysNotices = noticeMapper.selectNoticeList(notice, SecurityUtils.getUserId());
if (CollUtil.isNotEmpty(sysNotices)) {
for (SysNotice sysNotice : sysNotices) {
SysNoticeUserExample sysNoticeUserExample1 = new SysNoticeUserExample();
sysNoticeUserExample1.createCriteria().andNoticeIdEqualTo(sysNotice.getNoticeId());
List<SysNoticeUser> sysNoticeUsers1 = sysNoticeUserMapper.selectByExample(sysNoticeUserExample1);
if (CollUtil.isNotEmpty(sysNoticeUsers1)) {
sysNotice.setUserIdList(sysNoticeUsers1.stream().map(SysNoticeUser::getUserId).collect(Collectors.toList()));
}
}
}
return sysNotices;
} }
/** /**
* 新增公告 * 新增公告
* *
* @param notice 公告信息 * @param notice 公告信息
* @return 结果 * @return 结果
*/ */
@Override @Override
public int insertNotice(SysNotice notice) public int insertNotice(SysNotice notice) {
{ if (CollUtil.isNotEmpty(notice.getUserIdList())) {
return noticeMapper.insertNotice(notice); notice.setIsAll((byte) 0);
} else {
notice.setIsAll((byte) 1);
}
int i = noticeMapper.insertNotice(notice);
if (CollUtil.isNotEmpty(notice.getUserIdList())) {
for (Long userId : notice.getUserIdList()) {
SysNoticeUser sysNoticeUser = new SysNoticeUser();
sysNoticeUser.setId(IdUtil.getSnowflakeNextId());
sysNoticeUser.setNoticeId(notice.getNoticeId());
sysNoticeUser.setUserId(userId);
sysNoticeUser.setCreateBy(SecurityUtils.getUsername());
sysNoticeUser.setCreateTime(new Date());
//新增通知用户关联关系
sysNoticeUserMapper.insertSelective(sysNoticeUser);
}
}
return i;
} }
/** /**
* 修改公告 * 修改公告
* *
* @param notice 公告信息 * @param notice 公告信息
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateNotice(SysNotice notice) public int updateNotice(SysNotice notice) {
{ if (CollUtil.isNotEmpty(notice.getUserIdList())) {
return noticeMapper.updateNotice(notice); notice.setIsAll((byte) 0);
} else {
notice.setIsAll((byte) 1);
}
int i = noticeMapper.updateNotice(notice);
SysNoticeUserExample sysNoticeUserExample = new SysNoticeUserExample();
sysNoticeUserExample.createCriteria().andNoticeIdEqualTo(notice.getNoticeId());
List<SysNoticeUser> sysNoticeUsers = sysNoticeUserMapper.selectByExample(sysNoticeUserExample);
if (CollUtil.isNotEmpty(sysNoticeUsers)) {
for (SysNoticeUser sysNoticeUser : sysNoticeUsers) {
sysNoticeUserMapper.deleteByPrimaryKey(sysNoticeUser.getId());
}
}
if (CollUtil.isNotEmpty(notice.getUserIdList())) {
for (Long userId : notice.getUserIdList()) {
SysNoticeUser sysNoticeUser = new SysNoticeUser();
sysNoticeUser.setId(IdUtil.getSnowflakeNextId());
sysNoticeUser.setNoticeId(notice.getNoticeId());
sysNoticeUser.setUserId(userId);
sysNoticeUser.setCreateBy(SecurityUtils.getUsername());
sysNoticeUser.setCreateTime(new Date());
//新增通知用户关联关系
sysNoticeUserMapper.insertSelective(sysNoticeUser);
}
}
return i;
} }
/** /**
* 删除公告对象 * 删除公告对象
* *
* @param noticeId 公告ID * @param noticeId 公告ID
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteNoticeById(Long noticeId) public int deleteNoticeById(Long noticeId) {
{ SysNoticeUserExample sysNoticeUserExample = new SysNoticeUserExample();
sysNoticeUserExample.createCriteria().andNoticeIdEqualTo(noticeId);
List<SysNoticeUser> sysNoticeUsers = sysNoticeUserMapper.selectByExample(sysNoticeUserExample);
if (CollUtil.isNotEmpty(sysNoticeUsers)) {
for (SysNoticeUser sysNoticeUser : sysNoticeUsers) {
sysNoticeUserMapper.deleteByPrimaryKey(sysNoticeUser.getId());
}
}
return noticeMapper.deleteNoticeById(noticeId); return noticeMapper.deleteNoticeById(noticeId);
} }
/** /**
* 批量删除公告信息 * 批量删除公告信息
* *
* @param noticeIds 需要删除的公告ID * @param noticeIds 需要删除的公告ID
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteNoticeByIds(Long[] noticeIds) public int deleteNoticeByIds(Long[] noticeIds) {
{ SysNoticeUserExample sysNoticeUserExample = new SysNoticeUserExample();
sysNoticeUserExample.createCriteria().andNoticeIdIn(Arrays.asList(noticeIds));
List<SysNoticeUser> sysNoticeUsers = sysNoticeUserMapper.selectByExample(sysNoticeUserExample);
if (CollUtil.isNotEmpty(sysNoticeUsers)) {
for (SysNoticeUser sysNoticeUser : sysNoticeUsers) {
sysNoticeUserMapper.deleteByPrimaryKey(sysNoticeUser.getId());
}
}
return noticeMapper.deleteNoticeByIds(noticeIds); return noticeMapper.deleteNoticeByIds(noticeIds);
} }
} }

1
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/SysUserOnlineServiceImpl.java

@ -87,6 +87,7 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
sysUserOnline.setBrowser(user.getBrowser()); sysUserOnline.setBrowser(user.getBrowser());
sysUserOnline.setOs(user.getOs()); sysUserOnline.setOs(user.getOs());
sysUserOnline.setLoginTime(user.getLoginTime()); sysUserOnline.setLoginTime(user.getLoginTime());
sysUserOnline.setLastVisitTime(user.getUser().getLoginDate());
if (StringUtils.isNotNull(user.getUser().getDept())) if (StringUtils.isNotNull(user.getUser().getDept()))
{ {
sysUserOnline.setDeptName(user.getUser().getDept().getDeptName()); sysUserOnline.setDeptName(user.getUser().getDept().getDeptName());

31
acupuncture-system/src/main/resources/mapper/dao/AdminRmsReportDao.xml

@ -7,7 +7,9 @@
id, id,
type_name as typeName, type_name as typeName,
create_by as createBy, create_by as createBy,
create_time as createTime create_time as createTime,
remark,
file
from rms_report_type from rms_report_type
where del_flag = 0 where del_flag = 0
<if test="typeName != null and typeName != ''"> <if test="typeName != null and typeName != ''">
@ -36,4 +38,31 @@
</if> </if>
order by m.create_time desc order by m.create_time desc
</select> </select>
<select id="queryManagerListMy" resultType="com.acupuncture.system.domain.vo.AdminReportVo$Result">
select
m.id,
m.report_title as reportTitle,
m.report_type as reportType,
m.time_range_start as timeRangeStart,
m.time_range_end as timeRangeEnd,
m.status,
m.create_by as createBy,
m.create_time as createTime,
t.type_name as typeName
from rms_report_management m
left join
rms_report_type t on m.report_type = t.id
where m.del_flag = 0
and m.status = 1
<if test="reportTitle != null and reportTitle != ''">
and m.report_title like concat('%', #{reportTitle}, '%')
</if>
<if test="idList != null and idList.size() > 0">
<foreach item="item" collection="idList" separator="," open="and m.id in (" close=")">
#{item}
</foreach>
</if>
order by m.create_time desc
</select>
</mapper> </mapper>

4
acupuncture-system/src/main/resources/mapper/dao/DmsUserDao.xml

@ -74,6 +74,7 @@
<if test="status != null and status != ''">status = #{status},</if> <if test="status != null and status != ''">status = #{status},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="forceUpdPwdFlag != null">force_upd_pwd_flag = #{forceUpdPwdFlag},</if>
update_time = sysdate() update_time = sysdate()
</set> </set>
where id = #{id} where id = #{id}
@ -97,7 +98,8 @@
u.sex as sex, u.sex as sex,
t.`name` as tenantName, t.`name` as tenantName,
t.contact_phone as tenantPhone, t.contact_phone as tenantPhone,
u.slaver_admin as slaverAdmin u.slaver_admin as slaverAdmin,
u.force_upd_pwd_flag as forceUpdPwdFlag
from from
dms_user u join dms_tenant t on u.tenant_id = t.id dms_user u join dms_tenant t on u.tenant_id = t.id
WHERE WHERE

128
acupuncture-system/src/main/resources/mapper/dao/PmsTreatmentDao.xml

@ -5,41 +5,42 @@
<select id="query" resultType="com.acupuncture.system.domain.vo.PmsTreatmentVo$TreatmentVO" <select id="query" resultType="com.acupuncture.system.domain.vo.PmsTreatmentVo$TreatmentVO"
parameterType="com.acupuncture.system.domain.dto.PmsTreatmentDto$TreatmentQueryDTO"> parameterType="com.acupuncture.system.domain.dto.PmsTreatmentDto$TreatmentQueryDTO">
select select
id, t.id,
patient_id as patientId, t.patient_id as patientId,
name, t.name,
gender, t.gender,
age, t.age,
birth_date as birthDate, t.birth_date as birthDate,
ethnicity, t.ethnicity,
education_years as educationYears, t.education_years as educationYears,
phone, t.phone,
id_card_type as idCardType, t.id_card_type as idCardType,
id_card as idCard, t.id_card as idCard,
visit_type as visitType, t.visit_type as visitType,
visit_number as visitNumber, t.visit_number as visitNumber,
visit_time as visitTime, t.visit_time as visitTime,
discharge_time as dischargeTime, t.discharge_time as dischargeTime,
doctor, t.doctor,
dept_name as deptName, t.dept_name as deptName,
diagnosis_code as diagnosisCode, t.diagnosis_code as diagnosisCode,
diagnosis_name as diagnosisName, t.diagnosis_name as diagnosisName,
status, t.status,
member_id as memberId, t.member_id as memberId,
create_by as createBy, t.create_by as createBy,
create_time as createTime t.create_time as createTime,
from pms_treatment t.management_id as managementId
where del_flag = 0 from pms_treatment t
where t.del_flag = 0
<if test="tenantId != null"> <if test="tenantId != null">
AND tenant_id = #{tenantId} AND t.tenant_id = #{tenantId}
</if> </if>
<if test="query.keywords != null and query.keywords != ''"> <if test="query.keywords != null and query.keywords != ''">
AND ( AND (
name LIKE CONCAT('%', #{query.keywords}, '%') t.name LIKE CONCAT('%', #{query.keywords}, '%')
OR pinyin_full LIKE CONCAT('%', #{query.keywords}, '%') OR t.pinyin_full LIKE CONCAT('%', #{query.keywords}, '%')
OR pinyin_simple LIKE CONCAT('%', #{query.keywords}, '%') OR t.pinyin_simple LIKE CONCAT('%', #{query.keywords}, '%')
OR phone LIKE CONCAT('%', #{query.keywords}, '%') OR t.phone LIKE CONCAT('%', #{query.keywords}, '%')
or id_card LIKE CONCAT('%', #{query.keywords}, '%') or t.id_card LIKE CONCAT('%', #{query.keywords}, '%')
) )
</if> </if>
<if test="query.patientId != null"> <if test="query.patientId != null">
@ -67,9 +68,21 @@
AND doctor = #{query.doctor} AND doctor = #{query.doctor}
</if> </if>
<if test="query.name != null and query.name != ''"> <if test="query.name != null and query.name != ''">
AND name = #{query.name} AND t.name = #{query.name}
</if>
<if test="query.managementIdList != null and query.managementIdList.size() > 0 ">
and management_id in
<foreach collection="query.managementIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="query.startTime != null and query.startTime != ''">
and visit_time &gt;= #{query.startTime}
</if> </if>
order by update_time desc <if test="query.endTime != null and query.endTime != ''">
and visit_time &lt;= #{query.endTime}
</if>
order by t.update_time desc
</select> </select>
<select id="adminQuery" resultType="com.acupuncture.system.domain.vo.PmsTreatmentVo$TreatmentVO" <select id="adminQuery" resultType="com.acupuncture.system.domain.vo.PmsTreatmentVo$TreatmentVO"
@ -98,10 +111,14 @@
t.tenant_id as tenantId, t.tenant_id as tenantId,
t.create_by as createBy, t.create_by as createBy,
t.create_time as createTime, t.create_time as createTime,
d.name as tenantName d.name as tenantName,
t.management_id as managementId,
m.report_title as reportTitle
from v_pms_treatment t from v_pms_treatment t
left join left join
dms_tenant d on t.tenant_id = d.id dms_tenant d on t.tenant_id = d.id
left join
rms_report_management m on m.id = t.management_id
where t.del_flag = 0 where t.del_flag = 0
and t.status = 2 and t.status = 2
<if test="query.tenantId != null"> <if test="query.tenantId != null">
@ -143,6 +160,15 @@
<if test="query.name != null and query.name != ''"> <if test="query.name != null and query.name != ''">
AND t.name = #{query.name} AND t.name = #{query.name}
</if> </if>
<if test="query.managementId != null">
and t.management_id = #{query.managementId}
</if>
<if test="query.startTime != null and query.startTime != ''">
and t.visit_time &gt;= #{query.startTime}
</if>
<if test="query.endTime != null and query.endTime != ''">
and t.visit_time &lt;= #{query.endTime}
</if>
order by t.create_time desc order by t.create_time desc
</select> </select>
@ -179,6 +205,40 @@
and t.id = #{id} and t.id = #{id}
</select> </select>
<select id="adminQueryTreatmentZip" resultType="com.acupuncture.system.domain.vo.PmsTreatmentVo$TreatmentRecordVO">
select
t.id,
t.patient_id as patientId,
t.name,
t.gender,
t.age,
t.birth_date as birthDate,
t.ethnicity,
t.education_years as educationYears,
t.phone,
t.id_card_type as idCardType,
t.id_card as idCard,
t.visit_type as visitType,
t.visit_number as visitNumber,
t.visit_time as visitTime,
t.discharge_time as dischargeTime,
t.doctor,
t.dept_name as deptName,
t.diagnosis_code as diagnosisCode,
t.diagnosis_name as diagnosisName,
t.status,
t.create_by as createBy,
t.create_time as createTime,
d.name as tenantName
from
v_pms_treatment t
left join
dms_tenant d on t.tenant_id = d.id
where t.del_flag = 0
and t.status = 2
and t.management_id = #{managementId}
</select>
<insert id="batchInsertRecord"> <insert id="batchInsertRecord">
insert into pms_treatment_record insert into pms_treatment_record
( (

25
acupuncture-system/src/main/resources/mapper/system/DmsUserMapper.xml

@ -18,6 +18,7 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy" /> <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" /> <result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="force_upd_pwd_flag" jdbcType="TINYINT" property="forceUpdPwdFlag" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -79,7 +80,7 @@
</sql> </sql>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, tenant_id, user_name, password, nick_name, email, phonenumber, sex, slaver_admin, id, tenant_id, user_name, password, nick_name, email, phonenumber, sex, slaver_admin,
status, del_flag, create_by, create_time, update_by, update_time, remark status, del_flag, create_by, create_time, update_by, update_time, remark, force_upd_pwd_flag
</sql> </sql>
<select id="selectByExample" parameterType="com.acupuncture.system.domain.po.DmsUserExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.acupuncture.system.domain.po.DmsUserExample" resultMap="BaseResultMap">
select select
@ -111,13 +112,13 @@
phonenumber, sex, slaver_admin, phonenumber, sex, slaver_admin,
status, del_flag, create_by, status, del_flag, create_by,
create_time, update_by, update_time, create_time, update_by, update_time,
remark) remark, force_upd_pwd_flag)
values (#{id,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, #{userName,jdbcType=VARCHAR}, values (#{id,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT}, #{userName,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},
#{phonenumber,jdbcType=VARCHAR}, #{sex,jdbcType=CHAR}, #{slaverAdmin,jdbcType=TINYINT}, #{phonenumber,jdbcType=VARCHAR}, #{sex,jdbcType=CHAR}, #{slaverAdmin,jdbcType=TINYINT},
#{status,jdbcType=CHAR}, #{delFlag,jdbcType=TINYINT}, #{createBy,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, #{delFlag,jdbcType=TINYINT}, #{createBy,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP},
#{remark,jdbcType=VARCHAR}) #{remark,jdbcType=VARCHAR}, #{forceUpdPwdFlag,jdbcType=TINYINT})
</insert> </insert>
<insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.DmsUser"> <insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.DmsUser">
insert into dms_user insert into dms_user
@ -170,6 +171,9 @@
<if test="remark != null"> <if test="remark != null">
remark, remark,
</if> </if>
<if test="forceUpdPwdFlag != null">
force_upd_pwd_flag,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -220,6 +224,9 @@
<if test="remark != null"> <if test="remark != null">
#{remark,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR},
</if> </if>
<if test="forceUpdPwdFlag != null">
#{forceUpdPwdFlag,jdbcType=TINYINT},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.acupuncture.system.domain.po.DmsUserExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.acupuncture.system.domain.po.DmsUserExample" resultType="java.lang.Long">
@ -279,6 +286,9 @@
<if test="record.remark != null"> <if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR}, remark = #{record.remark,jdbcType=VARCHAR},
</if> </if>
<if test="record.forceUpdPwdFlag != null">
force_upd_pwd_flag = #{record.forceUpdPwdFlag,jdbcType=TINYINT},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -301,7 +311,8 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR}, update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR} remark = #{record.remark,jdbcType=VARCHAR},
force_upd_pwd_flag = #{record.forceUpdPwdFlag,jdbcType=TINYINT}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -354,6 +365,9 @@
<if test="remark != null"> <if test="remark != null">
remark = #{remark,jdbcType=VARCHAR}, remark = #{remark,jdbcType=VARCHAR},
</if> </if>
<if test="forceUpdPwdFlag != null">
force_upd_pwd_flag = #{forceUpdPwdFlag,jdbcType=TINYINT},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -373,7 +387,8 @@
create_time = #{createTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR}, update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR} remark = #{remark,jdbcType=VARCHAR},
force_upd_pwd_flag = #{forceUpdPwdFlag,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

29
acupuncture-system/src/main/resources/mapper/system/PmsTreatmentMapper.xml

@ -32,6 +32,7 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy" /> <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" /> <result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="management_id" jdbcType="BIGINT" property="managementId" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -95,7 +96,7 @@
id, patient_id, name, pinyin_full, pinyin_simple, gender, age, birth_date, ethnicity, id, patient_id, name, pinyin_full, pinyin_simple, gender, age, birth_date, ethnicity,
education_years, phone, id_card_type, id_card, visit_type, visit_number, visit_time, education_years, phone, id_card_type, id_card, visit_type, visit_number, visit_time,
discharge_time, doctor, dept_name, diagnosis_code, diagnosis_name, status, member_id, discharge_time, doctor, dept_name, diagnosis_code, diagnosis_name, status, member_id,
del_flag, tenant_id, create_by, create_time, update_by, update_time, remark del_flag, tenant_id, create_by, create_time, update_by, update_time, remark, management_id
</sql> </sql>
<select id="selectByExample" parameterType="com.acupuncture.system.domain.po.PmsTreatmentExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.acupuncture.system.domain.po.PmsTreatmentExample" resultMap="BaseResultMap">
select select
@ -131,8 +132,8 @@
dept_name, diagnosis_code, diagnosis_name, dept_name, diagnosis_code, diagnosis_name,
status, member_id, del_flag, status, member_id, del_flag,
tenant_id, create_by, create_time, tenant_id, create_by, create_time,
update_by, update_time, remark update_by, update_time, remark,
) management_id)
values (#{id,jdbcType=BIGINT}, #{patientId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, values (#{id,jdbcType=BIGINT}, #{patientId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR},
#{pinyinFull,jdbcType=VARCHAR}, #{pinyinSimple,jdbcType=VARCHAR}, #{gender,jdbcType=TINYINT}, #{pinyinFull,jdbcType=VARCHAR}, #{pinyinSimple,jdbcType=VARCHAR}, #{gender,jdbcType=TINYINT},
#{age,jdbcType=INTEGER}, #{birthDate,jdbcType=DATE}, #{ethnicity,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}, #{birthDate,jdbcType=DATE}, #{ethnicity,jdbcType=VARCHAR},
@ -142,8 +143,8 @@
#{deptName,jdbcType=VARCHAR}, #{diagnosisCode,jdbcType=VARCHAR}, #{diagnosisName,jdbcType=VARCHAR}, #{deptName,jdbcType=VARCHAR}, #{diagnosisCode,jdbcType=VARCHAR}, #{diagnosisName,jdbcType=VARCHAR},
#{status,jdbcType=TINYINT}, #{memberId,jdbcType=BIGINT}, #{delFlag,jdbcType=TINYINT}, #{status,jdbcType=TINYINT}, #{memberId,jdbcType=BIGINT}, #{delFlag,jdbcType=TINYINT},
#{tenantId,jdbcType=BIGINT}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{tenantId,jdbcType=BIGINT}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR} #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR},
) #{managementId,jdbcType=BIGINT})
</insert> </insert>
<insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.PmsTreatment"> <insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.PmsTreatment">
insert into pms_treatment insert into pms_treatment
@ -238,6 +239,9 @@
<if test="remark != null"> <if test="remark != null">
remark, remark,
</if> </if>
<if test="managementId != null">
management_id,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -330,6 +334,9 @@
<if test="remark != null"> <if test="remark != null">
#{remark,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR},
</if> </if>
<if test="managementId != null">
#{managementId,jdbcType=BIGINT},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.acupuncture.system.domain.po.PmsTreatmentExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.acupuncture.system.domain.po.PmsTreatmentExample" resultType="java.lang.Long">
@ -431,6 +438,9 @@
<if test="record.remark != null"> <if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR}, remark = #{record.remark,jdbcType=VARCHAR},
</if> </if>
<if test="record.managementId != null">
management_id = #{record.managementId,jdbcType=BIGINT},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -467,7 +477,8 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR}, update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR} remark = #{record.remark,jdbcType=VARCHAR},
management_id = #{record.managementId,jdbcType=BIGINT}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -562,6 +573,9 @@
<if test="remark != null"> <if test="remark != null">
remark = #{remark,jdbcType=VARCHAR}, remark = #{remark,jdbcType=VARCHAR},
</if> </if>
<if test="managementId != null">
management_id = #{managementId,jdbcType=BIGINT},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -595,7 +609,8 @@
create_time = #{createTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR}, update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR} remark = #{remark,jdbcType=VARCHAR},
management_id = #{managementId,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

252
acupuncture-system/src/main/resources/mapper/system/RmsReportManagementTenantMapper.xml

@ -0,0 +1,252 @@
<?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="com.acupuncture.system.persist.mapper.RmsReportManagementTenantMapper">
<resultMap id="BaseResultMap" type="com.acupuncture.system.domain.po.RmsReportManagementTenant">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="report_id" jdbcType="BIGINT" property="reportId" />
<result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, report_id, tenant_id, create_by, create_time, update_by, update_time, remark
</sql>
<select id="selectByExample" parameterType="com.acupuncture.system.domain.po.RmsReportManagementTenantExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from rms_report_management_tenant
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from rms_report_management_tenant
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from rms_report_management_tenant
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.acupuncture.system.domain.po.RmsReportManagementTenant">
insert into rms_report_management_tenant (id, report_id, tenant_id,
create_by, create_time, update_by,
update_time, remark)
values (#{id,jdbcType=BIGINT}, #{reportId,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.RmsReportManagementTenant">
insert into rms_report_management_tenant
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="reportId != null">
report_id,
</if>
<if test="tenantId != null">
tenant_id,
</if>
<if test="createBy != null">
create_by,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateBy != null">
update_by,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="remark != null">
remark,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="reportId != null">
#{reportId,jdbcType=BIGINT},
</if>
<if test="tenantId != null">
#{tenantId,jdbcType=BIGINT},
</if>
<if test="createBy != null">
#{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
#{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.acupuncture.system.domain.po.RmsReportManagementTenantExample" resultType="java.lang.Long">
select count(*) from rms_report_management_tenant
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update rms_report_management_tenant
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.reportId != null">
report_id = #{record.reportId,jdbcType=BIGINT},
</if>
<if test="record.tenantId != null">
tenant_id = #{record.tenantId,jdbcType=BIGINT},
</if>
<if test="record.createBy != null">
create_by = #{record.createBy,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.updateBy != null">
update_by = #{record.updateBy,jdbcType=VARCHAR},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
</if>
<if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update rms_report_management_tenant
set id = #{record.id,jdbcType=BIGINT},
report_id = #{record.reportId,jdbcType=BIGINT},
tenant_id = #{record.tenantId,jdbcType=BIGINT},
create_by = #{record.createBy,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.acupuncture.system.domain.po.RmsReportManagementTenant">
update rms_report_management_tenant
<set>
<if test="reportId != null">
report_id = #{reportId,jdbcType=BIGINT},
</if>
<if test="tenantId != null">
tenant_id = #{tenantId,jdbcType=BIGINT},
</if>
<if test="createBy != null">
create_by = #{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
update_by = #{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.acupuncture.system.domain.po.RmsReportManagementTenant">
update rms_report_management_tenant
set report_id = #{reportId,jdbcType=BIGINT},
tenant_id = #{tenantId,jdbcType=BIGINT},
create_by = #{createBy,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

28
acupuncture-system/src/main/resources/mapper/system/RmsReportTypeMapper.xml

@ -10,6 +10,7 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy" /> <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" /> <result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="file" jdbcType="VARCHAR" property="file" />
</resultMap> </resultMap>
<sql id="Example_Where_Clause"> <sql id="Example_Where_Clause">
<where> <where>
@ -70,7 +71,8 @@
</where> </where>
</sql> </sql>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, type_name, del_flag, create_by, create_time, update_by, update_time, remark id, type_name, del_flag, create_by, create_time, update_by, update_time, remark,
file
</sql> </sql>
<select id="selectByExample" parameterType="com.acupuncture.system.domain.po.RmsReportTypeExample" resultMap="BaseResultMap"> <select id="selectByExample" parameterType="com.acupuncture.system.domain.po.RmsReportTypeExample" resultMap="BaseResultMap">
select select
@ -99,10 +101,12 @@
<insert id="insert" parameterType="com.acupuncture.system.domain.po.RmsReportType"> <insert id="insert" parameterType="com.acupuncture.system.domain.po.RmsReportType">
insert into rms_report_type (id, type_name, del_flag, insert into rms_report_type (id, type_name, del_flag,
create_by, create_time, update_by, create_by, create_time, update_by,
update_time, remark) update_time, remark, file
)
values (#{id,jdbcType=BIGINT}, #{typeName,jdbcType=VARCHAR}, #{delFlag,jdbcType=TINYINT}, values (#{id,jdbcType=BIGINT}, #{typeName,jdbcType=VARCHAR}, #{delFlag,jdbcType=TINYINT},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}) #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}, #{file,jdbcType=VARCHAR}
)
</insert> </insert>
<insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.RmsReportType"> <insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.RmsReportType">
insert into rms_report_type insert into rms_report_type
@ -131,6 +135,9 @@
<if test="remark != null"> <if test="remark != null">
remark, remark,
</if> </if>
<if test="file != null">
file,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
@ -157,6 +164,9 @@
<if test="remark != null"> <if test="remark != null">
#{remark,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR},
</if> </if>
<if test="file != null">
#{file,jdbcType=VARCHAR},
</if>
</trim> </trim>
</insert> </insert>
<select id="countByExample" parameterType="com.acupuncture.system.domain.po.RmsReportTypeExample" resultType="java.lang.Long"> <select id="countByExample" parameterType="com.acupuncture.system.domain.po.RmsReportTypeExample" resultType="java.lang.Long">
@ -192,6 +202,9 @@
<if test="record.remark != null"> <if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR}, remark = #{record.remark,jdbcType=VARCHAR},
</if> </if>
<if test="record.file != null">
file = #{record.file,jdbcType=VARCHAR},
</if>
</set> </set>
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
@ -206,7 +219,8 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP}, create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR}, update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR} remark = #{record.remark,jdbcType=VARCHAR},
file = #{record.file,jdbcType=VARCHAR}
<if test="_parameter != null"> <if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" /> <include refid="Update_By_Example_Where_Clause" />
</if> </if>
@ -235,6 +249,9 @@
<if test="remark != null"> <if test="remark != null">
remark = #{remark,jdbcType=VARCHAR}, remark = #{remark,jdbcType=VARCHAR},
</if> </if>
<if test="file != null">
file = #{file,jdbcType=VARCHAR},
</if>
</set> </set>
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
@ -246,7 +263,8 @@
create_time = #{createTime,jdbcType=TIMESTAMP}, create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR}, update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR} remark = #{remark,jdbcType=VARCHAR},
file = #{file,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
</mapper> </mapper>

252
acupuncture-system/src/main/resources/mapper/system/RmsReportTypeTenantMapper.xml

@ -0,0 +1,252 @@
<?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="com.acupuncture.system.persist.mapper.RmsReportTypeTenantMapper">
<resultMap id="BaseResultMap" type="com.acupuncture.system.domain.po.RmsReportTypeTenant">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="report_type_id" jdbcType="BIGINT" property="reportTypeId" />
<result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, report_type_id, tenant_id, create_by, create_time, update_by, update_time, remark
</sql>
<select id="selectByExample" parameterType="com.acupuncture.system.domain.po.RmsReportTypeTenantExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from rms_report_type_tenant
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from rms_report_type_tenant
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from rms_report_type_tenant
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.acupuncture.system.domain.po.RmsReportTypeTenant">
insert into rms_report_type_tenant (id, report_type_id, tenant_id,
create_by, create_time, update_by,
update_time, remark)
values (#{id,jdbcType=BIGINT}, #{reportTypeId,jdbcType=BIGINT}, #{tenantId,jdbcType=BIGINT},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.RmsReportTypeTenant">
insert into rms_report_type_tenant
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="reportTypeId != null">
report_type_id,
</if>
<if test="tenantId != null">
tenant_id,
</if>
<if test="createBy != null">
create_by,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateBy != null">
update_by,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="remark != null">
remark,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="reportTypeId != null">
#{reportTypeId,jdbcType=BIGINT},
</if>
<if test="tenantId != null">
#{tenantId,jdbcType=BIGINT},
</if>
<if test="createBy != null">
#{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
#{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.acupuncture.system.domain.po.RmsReportTypeTenantExample" resultType="java.lang.Long">
select count(*) from rms_report_type_tenant
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update rms_report_type_tenant
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.reportTypeId != null">
report_type_id = #{record.reportTypeId,jdbcType=BIGINT},
</if>
<if test="record.tenantId != null">
tenant_id = #{record.tenantId,jdbcType=BIGINT},
</if>
<if test="record.createBy != null">
create_by = #{record.createBy,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.updateBy != null">
update_by = #{record.updateBy,jdbcType=VARCHAR},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
</if>
<if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update rms_report_type_tenant
set id = #{record.id,jdbcType=BIGINT},
report_type_id = #{record.reportTypeId,jdbcType=BIGINT},
tenant_id = #{record.tenantId,jdbcType=BIGINT},
create_by = #{record.createBy,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.acupuncture.system.domain.po.RmsReportTypeTenant">
update rms_report_type_tenant
<set>
<if test="reportTypeId != null">
report_type_id = #{reportTypeId,jdbcType=BIGINT},
</if>
<if test="tenantId != null">
tenant_id = #{tenantId,jdbcType=BIGINT},
</if>
<if test="createBy != null">
create_by = #{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
update_by = #{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.acupuncture.system.domain.po.RmsReportTypeTenant">
update rms_report_type_tenant
set report_type_id = #{reportTypeId,jdbcType=BIGINT},
tenant_id = #{tenantId,jdbcType=BIGINT},
create_by = #{createBy,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

22
acupuncture-system/src/main/resources/mapper/system/SysDictDataMapper.xml

@ -17,11 +17,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="dataType" column="data_type" />
<result property="dataLength" column="data_length" />
<result property="isRequired" column="is_required" />
<result property="isSole" column="is_sole" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
</resultMap> </resultMap>
<sql id="selectDictDataVo"> <sql id="selectDictDataVo">
select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark ,
data_type, data_length, is_required, is_sole
from sys_dict_data from sys_dict_data
</sql> </sql>
@ -84,6 +89,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null">status = #{status},</if> <if test="status != null">status = #{status},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="dataType != null and dataType != ''">data_type = #{dataType} ,</if>
<if test="dataLength != null and dataLength != ''">data_length = #{dataLength} ,</if>
<if test="isRequired != null">is_required = #{isRequired} ,</if>
<if test="isSole != null">is_sole = #{isSole} ,</if>
update_time = sysdate() update_time = sysdate()
</set> </set>
where dict_code = #{dictCode} where dict_code = #{dictCode}
@ -105,6 +115,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null">status,</if> <if test="status != null">status,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="dataType != null and dataType != ''">data_type,</if>
<if test="dataLength != null and dataLength != ''">data_length,</if>
<if test="isRequired != null">is_required,</if>
<if test="isSole != null">is_sole,</if>
create_time create_time
)values( )values(
<if test="dictSort != null">#{dictSort},</if> <if test="dictSort != null">#{dictSort},</if>
@ -117,6 +132,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null">#{status},</if> <if test="status != null">#{status},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="dataType != null and dataType != ''">#{dataType},</if>
<if test="dataLength != null and dataLength != ''">#{dataLength},</if>
<if test="isRequired != null">#{isRequired},</if>
<if test="isSole != null">#{isSole},</if>
sysdate() sysdate()
) )
</insert> </insert>

9
acupuncture-system/src/main/resources/mapper/system/SysMenuMapper.xml

@ -26,10 +26,11 @@
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="clientType" column="client_type" />
</resultMap> </resultMap>
<sql id="selectMenuVo"> <sql id="selectMenuVo">
select menu_id, menu_name, parent_id, order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time select menu_id, menu_name, parent_id, order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time , client_type
from sys_menu from sys_menu
</sql> </sql>
@ -45,6 +46,9 @@
<if test="status != null and status != ''"> <if test="status != null and status != ''">
AND status = #{status} AND status = #{status}
</if> </if>
<if test="clientType != null">
AND client_type = #{clientType}
</if>
</where> </where>
order by parent_id, order_num order by parent_id, order_num
</select> </select>
@ -152,6 +156,7 @@
<if test="icon !=null and icon != ''">icon = #{icon},</if> <if test="icon !=null and icon != ''">icon = #{icon},</if>
<if test="remark != null and remark != ''">remark = #{remark},</if> <if test="remark != null and remark != ''">remark = #{remark},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="clientType != null">client_type = #{clientType},</if>
update_time = sysdate() update_time = sysdate()
</set> </set>
where menu_id = #{menuId} where menu_id = #{menuId}
@ -176,6 +181,7 @@
<if test="icon != null and icon != ''">icon,</if> <if test="icon != null and icon != ''">icon,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="clientType != null">client_type,</if>
create_time create_time
)values( )values(
<if test="menuId != null and menuId != 0">#{menuId},</if> <if test="menuId != null and menuId != 0">#{menuId},</if>
@ -195,6 +201,7 @@
<if test="icon != null and icon != ''">#{icon},</if> <if test="icon != null and icon != ''">#{icon},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="clientType != null">#{clientType},</if>
sysdate() sysdate()
) )
</insert> </insert>

41
acupuncture-system/src/main/resources/mapper/system/SysNoticeMapper.xml

@ -30,19 +30,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectNoticeList" parameterType="SysNotice" resultMap="SysNoticeResult"> <select id="selectNoticeList" parameterType="SysNotice" resultMap="SysNoticeResult">
<include refid="selectNoticeVo"/> <include refid="selectNoticeVo"/>
<where> <where>
<if test="noticeTitle != null and noticeTitle != ''"> <if test="notice.noticeTitle != null and notice.noticeTitle != ''">
AND notice_title like concat('%', #{noticeTitle}, '%') AND notice_title like concat('%', #{notice.noticeTitle}, '%')
</if> </if>
<if test="noticeType != null and noticeType != ''"> <if test="notice.noticeType != null and notice.noticeType != ''">
AND notice_type = #{noticeType} AND notice_type = #{notice.noticeType}
</if> </if>
<if test="createBy != null and createBy != ''"> <if test="notice.createBy != null and notice.createBy != ''">
AND create_by like concat('%', #{createBy}, '%') AND create_by like concat('%', #{notice.createBy}, '%')
</if> </if>
</where> <if test="userId != null and userId != 1">
<if test="notice.noticeIdList != null and notice.noticeIdList.size() > 0">
and ((notice_id in
<foreach collection="notice.noticeIdList" item="noticeId" open="(" separator="," close=")">
#{noticeId}
</foreach>
)
or is_all = 1
)
</if>
<if test="notice.noticeIdList == null or notice.noticeIdList.size() == 0">
and is_all = 1
</if>
</if>
</where>
</select> </select>
<insert id="insertNotice" parameterType="SysNotice"> <insert id="insertNotice" parameterType="SysNotice" useGeneratedKeys="true" keyProperty="noticeId">
insert into sys_notice ( insert into sys_notice (
<if test="noticeTitle != null and noticeTitle != '' ">notice_title, </if> <if test="noticeTitle != null and noticeTitle != '' ">notice_title, </if>
<if test="noticeType != null and noticeType != '' ">notice_type, </if> <if test="noticeType != null and noticeType != '' ">notice_type, </if>
@ -50,6 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != '' ">status, </if> <if test="status != null and status != '' ">status, </if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="isAll != null">is_all,</if>
create_time create_time
)values( )values(
<if test="noticeTitle != null and noticeTitle != ''">#{noticeTitle}, </if> <if test="noticeTitle != null and noticeTitle != ''">#{noticeTitle}, </if>
@ -58,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">#{status}, </if> <if test="status != null and status != ''">#{status}, </if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="isAll != null">#{isAll},</if>
sysdate() sysdate()
) )
</insert> </insert>
@ -70,7 +86,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noticeContent != null">notice_content = #{noticeContent}, </if> <if test="noticeContent != null">notice_content = #{noticeContent}, </if>
<if test="status != null and status != ''">status = #{status}, </if> <if test="status != null and status != ''">status = #{status}, </if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = sysdate() <if test="isAll != null">is_all = #{isAll},</if>
update_time = sysdate()
</set> </set>
where notice_id = #{noticeId} where notice_id = #{noticeId}
</update> </update>

252
acupuncture-system/src/main/resources/mapper/system/SysNoticeUserMapper.xml

@ -0,0 +1,252 @@
<?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="com.acupuncture.system.persist.mapper.SysNoticeUserMapper">
<resultMap id="BaseResultMap" type="com.acupuncture.system.domain.po.SysNoticeUser">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="notice_id" jdbcType="BIGINT" property="noticeId" />
<result column="user_id" jdbcType="BIGINT" property="userId" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, notice_id, user_id, create_by, create_time, update_by, update_time, remark
</sql>
<select id="selectByExample" parameterType="com.acupuncture.system.domain.po.SysNoticeUserExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from sys_notice_user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from sys_notice_user
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from sys_notice_user
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.acupuncture.system.domain.po.SysNoticeUser">
insert into sys_notice_user (id, notice_id, user_id,
create_by, create_time, update_by,
update_time, remark)
values (#{id,jdbcType=BIGINT}, #{noticeId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.SysNoticeUser">
insert into sys_notice_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="noticeId != null">
notice_id,
</if>
<if test="userId != null">
user_id,
</if>
<if test="createBy != null">
create_by,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateBy != null">
update_by,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="remark != null">
remark,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="noticeId != null">
#{noticeId,jdbcType=BIGINT},
</if>
<if test="userId != null">
#{userId,jdbcType=BIGINT},
</if>
<if test="createBy != null">
#{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
#{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.acupuncture.system.domain.po.SysNoticeUserExample" resultType="java.lang.Long">
select count(*) from sys_notice_user
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update sys_notice_user
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.noticeId != null">
notice_id = #{record.noticeId,jdbcType=BIGINT},
</if>
<if test="record.userId != null">
user_id = #{record.userId,jdbcType=BIGINT},
</if>
<if test="record.createBy != null">
create_by = #{record.createBy,jdbcType=VARCHAR},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.updateBy != null">
update_by = #{record.updateBy,jdbcType=VARCHAR},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
</if>
<if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update sys_notice_user
set id = #{record.id,jdbcType=BIGINT},
notice_id = #{record.noticeId,jdbcType=BIGINT},
user_id = #{record.userId,jdbcType=BIGINT},
create_by = #{record.createBy,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
remark = #{record.remark,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.acupuncture.system.domain.po.SysNoticeUser">
update sys_notice_user
<set>
<if test="noticeId != null">
notice_id = #{noticeId,jdbcType=BIGINT},
</if>
<if test="userId != null">
user_id = #{userId,jdbcType=BIGINT},
</if>
<if test="createBy != null">
create_by = #{createBy,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateBy != null">
update_by = #{updateBy,jdbcType=VARCHAR},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.acupuncture.system.domain.po.SysNoticeUser">
update sys_notice_user
set notice_id = #{noticeId,jdbcType=BIGINT},
user_id = #{userId,jdbcType=BIGINT},
create_by = #{createBy,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP},
remark = #{remark,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

9
acupuncture-system/src/main/resources/mapper/system/SysRoleMapper.xml

@ -19,11 +19,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="clientType" column="client_type" />
</resultMap> </resultMap>
<sql id="selectRoleVo"> <sql id="selectRoleVo">
select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly, select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
r.status, r.del_flag, r.create_time, r.remark r.status, r.del_flag, r.create_time, r.remark , r.client_type
from sys_role r from sys_role r
left join sys_user_role ur on ur.role_id = r.role_id left join sys_user_role ur on ur.role_id = r.role_id
left join sys_user u on u.user_id = ur.user_id left join sys_user u on u.user_id = ur.user_id
@ -51,6 +52,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
and date_format(r.create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d') and date_format(r.create_time,'%Y%m%d') &lt;= date_format(#{params.endTime},'%Y%m%d')
</if> </if>
<if test="clientType != null">
AND r.client_type = #{clientType}
</if>
<!-- 数据范围过滤 --> <!-- 数据范围过滤 -->
${params.dataScope} ${params.dataScope}
order by r.role_sort order by r.role_sort
@ -105,6 +109,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">status,</if> <if test="status != null and status != ''">status,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="clientType != null">client_type,</if>
create_time create_time
)values( )values(
<if test="roleId != null and roleId != 0">#{roleId},</if> <if test="roleId != null and roleId != 0">#{roleId},</if>
@ -117,6 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">#{status},</if> <if test="status != null and status != ''">#{status},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="clientType != null">#{clientType},</if>
sysdate() sysdate()
) )
</insert> </insert>
@ -133,6 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">status = #{status},</if> <if test="status != null and status != ''">status = #{status},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="clientType != null">client_type = #{clientType},</if>
update_time = sysdate() update_time = sysdate()
</set> </set>
where role_id = #{roleId} where role_id = #{roleId}

117
acupuncture-前台/src/App.vue

@ -2,15 +2,130 @@
<div id="app"> <div id="app">
<router-view /> <router-view />
<theme-picker /> <theme-picker />
<el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
title="修改密码"
:visible.sync="passShow"
width="620px"
append-to-body
class="popup"
:show-close="false"
>
<el-form ref="form" :model="user" :rules="rules" label-width="80px">
<el-form-item label="旧密码" prop="oldPassword">
<el-input
v-model="user.oldPassword"
placeholder="请输入旧密码"
type="password"
show-password
/>
</el-form-item>
<el-form-item label="新密码" prop="newPassword">
<el-input
v-model="user.newPassword"
placeholder="请输入新密码"
type="password"
show-password
/>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-input
v-model="user.confirmPassword"
placeholder="请确认新密码"
type="password"
show-password
/>
</el-form-item>
<el-form-item label=" " style="margin-bottom: 0px">
<template slot-scope="scope">
<el-button type="primary" @click="submit" size="mini"
> </el-button
>
</template>
</el-form-item>
</el-form>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { updateUserPwd } from "@/api/system/user";
import ThemePicker from "@/components/ThemePicker"; import ThemePicker from "@/components/ThemePicker";
import { mapState, mapMutations } from "vuex";
export default { export default {
name: "App", name: "App",
components: { ThemePicker }, components: { ThemePicker },
data() {
const equalToPassword = (rule, value, callback) => {
if (this.user.newPassword !== value) {
callback(new Error("两次输入的密码不一致"));
} else {
callback();
}
};
return {
passShow: false,
user: {
oldPassword: undefined,
newPassword: undefined,
confirmPassword: undefined,
},
rules: {
oldPassword: [
{ required: true, message: "旧密码不能为空", trigger: "blur" },
],
newPassword: [
{ required: true, message: "密码不能为空", trigger: "blur" },
{
pattern: /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[^\da-zA-Z\s]).{8,20}$/,
message: "必须包含数字、字母、特殊字符, 长度为8到20位",
trigger: "blur",
},
],
confirmPassword: [
{ required: true, message: "确认密码不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "blur" },
],
},
userInfo: {},
};
},
computed: {
...mapState({
forceUpdPwdFlag: (state) => state.user.forceUpdPwdFlag,
}),
},
watch: {
// storeforceUpdPwdFlag
forceUpdPwdFlag(new1, old) {
if (new1) {
this.passShow = true;
}
},
},
created() {},
methods: {
submit() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
const res = await updateUserPwd(
this.user.oldPassword,
this.user.newPassword
);
const { code, msg } = res;
if (code === 200) {
this.passShow = false;
this.$message.success("修改成功");
// const res = await getInfo();
} else {
this.$message.warning(msg);
}
}
});
},
},
metaInfo() { metaInfo() {
return { return {
title: title:

15
acupuncture-前台/src/api/medicalFile.js

@ -32,6 +32,21 @@ export function treatmentDel(data) {
data: data, data: data,
}); });
} }
// 查询上报管理
export function managerMy(data) {
return request({
url: "/report/queryManagerMy",
method: "post",
data: data,
});
}
export function reportList(data) {
return request({
url: "/report/list",
method: "post",
data: data,
});
}
// 档案详情 // 档案详情
export function queryRecord(data) { export function queryRecord(data) {
return request({ return request({

1
acupuncture-前台/src/store/getters.js

@ -15,5 +15,6 @@ const getters = {
topbarRouters:state => state.permission.topbarRouters, topbarRouters:state => state.permission.topbarRouters,
defaultRoutes:state => state.permission.defaultRoutes, defaultRoutes:state => state.permission.defaultRoutes,
sidebarRouters:state => state.permission.sidebarRouters, sidebarRouters:state => state.permission.sidebarRouters,
forceUpdPwdFlag: state => state.user.forceUpdPwdFlag,
} }
export default getters export default getters

148
acupuncture-前台/src/store/modules/user.js

@ -1,107 +1,121 @@
import { login, logout, getInfo } from '@/api/login' import { login, logout, getInfo } from "@/api/login";
import { getToken, setToken, removeToken } from '@/utils/auth' import { getToken, setToken, removeToken } from "@/utils/auth";
import { isHttp, isEmpty } from "@/utils/validate" import { isHttp, isEmpty } from "@/utils/validate";
import defAva from '@/assets/images/profile.jpg' import defAva from "@/assets/images/profile.jpg";
const user = { const user = {
state: { state: {
token: getToken(), token: getToken(),
id: '', id: "",
name: '', name: "",
avatar: '', avatar: "",
roles: [], roles: [],
permissions: [] permissions: [],
forceUpdPwdFlag: 0,
}, },
mutations: { mutations: {
SET_TOKEN: (state, token) => { SET_TOKEN: (state, token) => {
state.token = token state.token = token;
}, },
SET_ID: (state, id) => { SET_ID: (state, id) => {
state.id = id state.id = id;
}, },
SET_NAME: (state, name) => { SET_NAME: (state, name) => {
state.name = name state.name = name;
}, },
SET_AVATAR: (state, avatar) => { SET_AVATAR: (state, avatar) => {
state.avatar = avatar state.avatar = avatar;
}, },
SET_ROLES: (state, roles) => { SET_ROLES: (state, roles) => {
state.roles = roles state.roles = roles;
}, },
SET_PERMISSIONS: (state, permissions) => { SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions state.permissions = permissions;
} },
SET_PWDFLAG: (state, data) => {
state.forceUpdPwdFlag = data;
},
}, },
actions: { actions: {
// 登录 // 登录
Login({ commit }, userInfo) { Login({ commit }, userInfo) {
const username = userInfo.username.trim() const username = userInfo.username.trim();
const password = userInfo.password const password = userInfo.password;
const code = userInfo.code const code = userInfo.code;
const uuid = userInfo.uuid const uuid = userInfo.uuid;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
login(username, password, code, uuid).then(res => { login(username, password, code, uuid)
setToken(res.token) .then((res) => {
commit('SET_TOKEN', res.token) setToken(res.token);
resolve() commit("SET_TOKEN", res.token);
}).catch(error => { resolve();
reject(error) })
}) .catch((error) => {
}) reject(error);
});
});
}, },
// 获取用户信息 // 获取用户信息
GetInfo({ commit, state }) { GetInfo({ commit, state }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getInfo().then(res => { getInfo()
const user = res.user .then((res) => {
localStorage.setItem("user", JSON.stringify(user)) const user = res.user;
let avatar = user.avatar || "" commit("SET_PWDFLAG", res.forceUpdPwdFlag);
if (!isHttp(avatar)) { localStorage.setItem("user", JSON.stringify(user));
avatar = (isEmpty(avatar)) ? defAva : process.env.VUE_APP_BASE_API + avatar let avatar = user.avatar || "";
} if (!isHttp(avatar)) {
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 avatar = isEmpty(avatar)
commit('SET_ROLES', res.roles) ? defAva
commit('SET_PERMISSIONS', res.permissions) : process.env.VUE_APP_BASE_API + avatar;
} else { }
commit('SET_ROLES', ['ROLE_DEFAULT']) if (res.roles && res.roles.length > 0) {
} // 验证返回的roles是否是一个非空数组
commit('SET_ID', user.userId) commit("SET_ROLES", res.roles);
commit('SET_NAME', user.userName) commit("SET_PERMISSIONS", res.permissions);
commit('SET_AVATAR', avatar) } else {
resolve(res) commit("SET_ROLES", ["ROLE_DEFAULT"]);
}).catch(error => { }
reject(error) commit("SET_ID", user.userId);
}) commit("SET_NAME", user.userName);
}) commit("SET_AVATAR", avatar);
resolve(res);
})
.catch((error) => {
reject(error);
});
});
}, },
// 退出系统 // 退出系统
LogOut({ commit, state }) { LogOut({ commit, state }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
logout(state.token).then(() => { logout(state.token)
commit('SET_TOKEN', '') .then(() => {
commit('SET_ROLES', []) commit("SET_TOKEN", "");
commit('SET_PERMISSIONS', []) commit("SET_ROLES", []);
removeToken() commit("SET_PERMISSIONS", []);
resolve() removeToken();
}).catch(error => { resolve();
reject(error) })
}) .catch((error) => {
}) reject(error);
});
});
}, },
// 前端 登出 // 前端 登出
FedLogOut({ commit }) { FedLogOut({ commit }) {
return new Promise(resolve => { return new Promise((resolve) => {
commit('SET_TOKEN', '') commit("SET_TOKEN", "");
removeToken() removeToken();
resolve() resolve();
}) });
} },
} },
} };
export default user export default user;

259
acupuncture-前台/src/views/medicalFile/index.vue

@ -6,7 +6,6 @@
size="small" size="small"
:inline="true" :inline="true"
v-show="showSearch" v-show="showSearch"
label-width="80px"
> >
<el-form-item label="" prop="noticeTitle"> <el-form-item label="" prop="noticeTitle">
<el-input <el-input
@ -48,14 +47,6 @@
<el-option label="女" :value="1" /> <el-option label="女" :value="1" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="手机号码" prop="phone">
<el-input v-model="queryParams.param.phone" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="证件号码" prop="idCard">
<el-input v-model="queryParams.param.idCard" placeholder="请输入" clearable
@keyup.enter.native="handleQuery" />
</el-form-item> -->
<el-form-item label="年龄范围" prop="createBy"> <el-form-item label="年龄范围" prop="createBy">
<div class="form-item-age"> <div class="form-item-age">
<el-input <el-input
@ -93,6 +84,49 @@
<el-option label="驳回" :value="3" /> <el-option label="驳回" :value="3" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="诊疗日期" prop="time">
<el-date-picker
v-model="time"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="上报标题" prop="managementId">
<el-select
v-model="queryParams.param.managementId"
placeholder="请选择"
filterable
clearable
>
<el-option
v-for="item in managerList"
:key="item.id"
:label="item.reportTitle"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="填报类型" prop="reportTypeId">
<el-select
v-model="queryParams.param.reportTypeId"
placeholder="请选择"
filterable
clearable
>
<el-option
v-for="item in reporTypeList"
:key="item.id"
:label="item.typeName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
type="primary" type="primary"
@ -116,7 +150,7 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
>新增</el-button >新增病历直报</el-button
> >
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@ -318,6 +352,18 @@
show-overflow-tooltip show-overflow-tooltip
min-width="180" min-width="180"
/> />
<el-table-column
label="诊疗日期"
align="center"
show-overflow-tooltip
min-width="140"
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.visitTime, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="门诊时间/住院时间" label="门诊时间/住院时间"
align="center" align="center"
@ -343,7 +389,14 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
label="上报标题"
align="center"
prop="reportTitle"
show-overflow-tooltip
min-width="150"
>
</el-table-column>
<el-table-column <el-table-column
label="建档人" label="建档人"
align="center" align="center"
@ -471,9 +524,20 @@
ref="form" ref="form"
:model="form" :model="form"
:rules="rules" :rules="rules"
label-width="140px" label-width="100px"
class="formStep" class="formStep"
> >
<el-form-item label="上报标题" prop="managementId">
<el-select v-model="form.managementId" placeholder="请选择">
<el-option
v-for="item in managerList"
:key="item.id"
:label="item.reportTitle"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入" /> <el-input v-model="form.name" placeholder="请输入" />
</el-form-item> </el-form-item>
@ -578,18 +642,6 @@
<el-form-item label="责任医生" prop=""> <el-form-item label="责任医生" prop="">
<el-input v-model="form.doctor" placeholder="请输入" /> <el-input v-model="form.doctor" placeholder="请输入" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="随访队列" prop="queueIdList">
<el-select v-model="form.queueIdList" multiple placeholder="请选择">
<el-option
v-for="item in followupList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item> -->
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -644,6 +696,8 @@ import {
saveAidRecord, saveAidRecord,
queueAdd, queueAdd,
exportTreatmentPg, exportTreatmentPg,
managerMy,
reportList,
} from "@/api/medicalFile"; } from "@/api/medicalFile";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { followupQuery } from "@/api/followupFile"; import { followupQuery } from "@/api/followupFile";
@ -652,8 +706,9 @@ export default {
dicts: ["sys_normal_disable", "sys_user_sex"], dicts: ["sys_normal_disable", "sys_user_sex"],
data() { data() {
return { return {
time: [],
reportPath: "", reportPath: "",
managerList: [], //
timestamp: "", timestamp: "",
qzUrl: process.env.VUE_APP_API_QZURL, // qzUrl: process.env.VUE_APP_API_QZURL, //
userInfo: {}, userInfo: {},
@ -830,52 +885,6 @@ export default {
importform: {}, importform: {},
form: {}, form: {},
detailsForm: {
JBXX_ZYZD: [], //
JBXX_ZYZD_QT: "", //_
PG_RTCF_TZ: "", //
PG_RTCF_QZTZ: "", //
PG_RTCF_JRL: "", //
PG_RTCF_TBW: "", //TBW
PG_RTCF_DBZ: "", //
PG_RTCF_GZ: "", //GZ
G_RTCF_ZF: "", //
PG_RTCF_PBF: "", //
PG_RTCF_GGJ: "", //
PG_RTCF_BMI: "", //BMI
PG_RTCF_WHR: "", //WHR
PG_RTCF_NZZFSP: "", //
PG_RTCF_STGCFBFB: "", //
PG_RTCF_TXLX: "", //
PG_RTCF_STNL: "", //
PG_RTCF_JKPF: "", //
PG_TZBS_ZYTZ: "", //
PG_TZBS_JJTZ: [], //
PG_TT_TAPS_DF: "", //TAPS
PG_TT_TRACE_DF: "", //TRACE
PG_TT_SRS22_DF: "", //SRS-22
"PG_SM_PHQ-9_DF": "", // PHQ-9
PG_SM_EPSW_DF: "", //Epworth
PG_SM_PSQI_DF: "", //PSQI
"PG_JL_HAMD-24_DF": "", //HAMD-24
PG_JL_SAS_DF: "", //SAS
ZLFA_ZLLX: "", //
ZLFA_XWXLGY: "", //
ZLFA_YDGY: "", //
ZLFA_ZJ_LF: "", //-
ZLFA_ZJ_XW: "", //-
ZLFA_YW: "", //
ZLFA_SHXG: "", //
ZLFA_XLTS: "", //
ZLFA_LCYYZL: "", //
ZLFA_ZJ_LF_SMZ: "", // --
ZLFA_ZJ_XW_SMZ: "", // --
ZLFA_YW_SMZ: "", // -
ZLFA_ZJ_LF_QT: "", // --
ZLFA_ZJ_XW_QT: "", // --
ZLFA_YW_QT: "", // -
}, //
// //
rules: { rules: {
name: [ name: [
@ -970,6 +979,7 @@ export default {
}, },
], ],
}, },
reporTypeList: [],
}; };
}, },
created() { created() {
@ -992,10 +1002,29 @@ export default {
this.open = true; this.open = true;
} }
this.getList(); this.getList();
this.getManagerMy();
this.getReportType();
this.userInfo = JSON.parse(localStorage.getItem("user")); this.userInfo = JSON.parse(localStorage.getItem("user"));
// this.getFollowupQuery(); // this.getFollowupQuery();
}, },
methods: { methods: {
//
getReportType() {
reportList({
pageNum: -1,
param: {},
}).then((res) => {
this.reporTypeList = res.data.list;
});
},
getManagerMy() {
managerMy({
pageNum: -1,
param: {},
}).then((res) => {
this.managerList = res.data.list;
});
},
// 访 // 访
getFollowupQuery() { getFollowupQuery() {
followupQuery({ followupQuery({
@ -1049,8 +1078,8 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
treatmentQuery(this.queryParams).then((res) => { treatmentQuery(this.queryParams).then((res) => {
this.listDat = res.data.list; this.listDat = res.data.list || [];
this.total = res.data.total; this.total = res.data.total || 0;
this.loading = false; this.loading = false;
}); });
}, },
@ -1077,12 +1106,21 @@ export default {
doctor: "", doctor: "",
status: 0, status: 0,
queueIdList: [], queueIdList: [],
managementId: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
// time + 00:00:00 + 23:59:59
if (this.time?.length > 0) {
this.queryParams.param.startTime = this.time[0] + " 00:00:00";
this.queryParams.param.endTime = this.time[1] + " 23:59:59";
} else {
this.queryParams.param.startTime = "";
this.queryParams.param.endTime = "";
}
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
@ -1098,7 +1136,10 @@ export default {
endAge: "", endAge: "",
doctor: "", doctor: "",
status: "", status: "",
managementId: "",
reportTypeId: "",
}; };
this.time = [];
this.handleQuery(); this.handleQuery();
}, },
// //
@ -1170,78 +1211,6 @@ export default {
row row
)}`, )}`,
}); });
// this.getDetailsForm() //
// this.form = JSON.parse(JSON.stringify(row));
// queryRecord({
// treatmentId: row.id
// }).then((res) => {
// let arrList = ["JBXX_ZYZD", "PG_RTCF_TXLX", "PG_TZBS_JJTZ"];
// let recordValDict = res.data.recordValDict;
// for (let key in recordValDict) {
// if (arrList.includes(key)) {
// recordValDict[key] = recordValDict[key][0].answer;
// } else {
// recordValDict[key] = recordValDict[key][0].answer.join(",");
// }
// }
// this.detailsForm = {
// ...this.detailsForm,
// ...recordValDict
// };
// console.log(" this.detailsForm", this.detailsForm);
// this.drawer = true;
// this.title = "";
// });
},
getDetailsForm() {
this.detailsForm = {
JBXX_ZYZD: [], //
JBXX_ZYZD_QT: "", //_
PG_RTCF_TZ: "", //
PG_RTCF_QZTZ: "", //
PG_RTCF_JRL: "", //
PG_RTCF_TBW: "", //TBW
PG_RTCF_DBZ: "", //
PG_RTCF_GZ: "", //GZ
G_RTCF_ZF: "", //
PG_RTCF_PBF: "", //
PG_RTCF_GGJ: "", //
PG_RTCF_BMI: "", //BMI
PG_RTCF_WHR: "", //WHR
PG_RTCF_NZZFSP: "", //
PG_RTCF_STGCFBFB: "", //
PG_RTCF_TXLX: "", //
PG_RTCF_STNL: "", //
PG_RTCF_JKPF: "", //
PG_TZBS_ZYTZ: "", //
PG_TZBS_JJTZ: [], //
PG_TT_TAPS_DF: "", //TAPS
PG_TT_TRACE_DF: "", //TRACE
PG_TT_SRS22_DF: "", //SRS-22
"PG_SM_PHQ-9_DF": "", // PHQ-9
PG_SM_EPSW_DF: "", //Epworth
PG_SM_PSQI_DF: "", //PSQI
"PG_JL_HAMD-24_DF": "", //HAMD-24
PG_JL_SAS_DF: "", //SAS
ZLFA_ZLLX: "", //
ZLFA_XWXLGY: "", //
ZLFA_YDGY: "", //
ZLFA_ZJ_LF: "", //-
ZLFA_ZJ_XW: "", //-
ZLFA_YW: "", //
ZLFA_SHXG: "", //
ZLFA_XLTS: "", //
ZLFA_LCYYZL: "", //
ZLFA_ZJ_LF_SMZ: "", // --
ZLFA_ZJ_XW_SMZ: "", // --
ZLFA_YW_SMZ: "", // -
ZLFA_ZJ_LF_QT: "", // --
ZLFA_ZJ_XW_QT: "", // --
ZLFA_YW_QT: "", // -
};
}, },
/** 诊疗档案 */ /** 诊疗档案 */
submitForm: function () { submitForm: function () {

2
acupuncture-前台/src/views/patientFile/index.vue

@ -321,7 +321,7 @@
type="text" type="text"
icon="el-icon-plus" icon="el-icon-plus"
@click="handleArchivesAdd(scope.row)" @click="handleArchivesAdd(scope.row)"
>新增诊疗档案 >新增病历直报
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>

BIN
acupuncture-前台/南宁针灸前台ssl-添加不良反应、并发症1.zip → acupuncture-前台/南宁针灸前台ssl-4.zip

Binary file not shown.

BIN
acupuncture-前台/针灸前台clientssl-2.zip

Binary file not shown.

8
acupuncture-后台/src/api/medicalFile.js

@ -64,3 +64,11 @@ export function exportTreatmentPg(data) {
data: data, data: data,
}); });
} }
// 审核
export function treatmentAudit(data) {
return request({
url: "/admin/treatment/aduit",
method: "post",
data: data,
});
}

52
acupuncture-后台/src/api/monitor/cache.js

@ -1,57 +1,65 @@
import request from '@/utils/request' import request from "@/utils/request";
// 查询缓存详细 // 查询缓存详细
export function getCache() { export function getCache() {
return request({ return request({
url: '/monitor/cache', url: "/monitor/cache",
method: 'get' method: "get",
}) });
} }
// 查询缓存名称列表 // 查询缓存名称列表
export function listCacheName() { export function listCacheName() {
return request({ return request({
url: '/monitor/cache/getNames', url: "/monitor/cache/getNames",
method: 'get' method: "get",
}) });
} }
// 查询缓存键名列表 // 查询缓存键名列表
export function listCacheKey(cacheName) { export function listCacheKey(cacheName) {
return request({ return request({
url: '/monitor/cache/getKeys/' + cacheName, url: "/monitor/cache/getKeys/" + cacheName,
method: 'get' method: "get",
}) });
} }
// 查询缓存内容 // 查询缓存内容
export function getCacheValue(cacheName, cacheKey) { export function getCacheValue(cacheName, cacheKey) {
return request({ return request({
url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, url: "/monitor/cache/getValue/" + cacheName + "/" + cacheKey,
method: 'get' method: "get",
}) });
} }
// 清理指定名称缓存 // 清理指定名称缓存
export function clearCacheName(cacheName) { export function clearCacheName(cacheName) {
return request({ return request({
url: '/monitor/cache/clearCacheName/' + cacheName, url: "/monitor/cache/clearCacheName/" + cacheName,
method: 'delete' method: "delete",
}) });
} }
// 清理指定键名缓存 // 清理指定键名缓存
export function clearCacheKey(cacheKey) { export function clearCacheKey(cacheKey) {
return request({ return request({
url: '/monitor/cache/clearCacheKey/' + cacheKey, url: "/monitor/cache/clearCacheKey/" + cacheKey,
method: 'delete' method: "delete",
}) });
} }
// 清理全部缓存 // 清理全部缓存
export function clearCacheAll() { export function clearCacheAll() {
return request({ return request({
url: '/monitor/cache/clearCacheAll', url: "/monitor/cache/clearCacheAll",
method: 'delete' method: "delete",
}) });
}
// 新增修改
export function cacheAdd(query) {
return request({
url: "/monitor/cache/add",
method: "get",
params: query,
});
} }

10
acupuncture-后台/src/api/report.js

@ -61,4 +61,12 @@ export function managerDel(data) {
method: "post", method: "post",
data: data, data: data,
}); });
} }
// 下载上报汇总表
export function reportDown(data) {
return request({
url: "/admin/treatment/adminExportTreatmentPgZip",
method: "post",
data: data,
});
}

2
acupuncture-后台/src/views/followFile/work.vue

@ -530,7 +530,7 @@ export default {
created() { created() {
let { name, phone } = this.$route.query; let { name, phone } = this.$route.query;
this.queryParams.param.keywords = name || ""; this.queryParams.param.keywords = name || "";
this.queryParams.param.phone = phone || ""; this.queryParams.param.phone = phone !== 'null' ? phone : "";
this.getList(); this.getList();
this.getTenantsList(); // this.getTenantsList(); //
}, },

523
acupuncture-后台/src/views/medicalFile/index.vue

@ -6,7 +6,6 @@
size="small" size="small"
:inline="true" :inline="true"
v-show="showSearch" v-show="showSearch"
label-width="80px"
> >
<el-form-item label="" prop="noticeTitle"> <el-form-item label="" prop="noticeTitle">
<el-input <el-input
@ -93,7 +92,23 @@
<el-option label="驳回" :value="3" /> <el-option label="驳回" :value="3" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="建档组织" prop="tenantId"> <el-form-item label="上报标题" prop="managementId">
<el-select
v-model="queryParams.param.managementId"
placeholder="请选择"
filterable
clearable
>
<el-option
v-for="item in managerList"
:key="item.id"
:label="item.reportTitle"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="上报单位" prop="tenantId">
<el-select <el-select
v-model="queryParams.param.tenantId" v-model="queryParams.param.tenantId"
placeholder="请选择" placeholder="请选择"
@ -108,6 +123,17 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="门诊/住院时间" prop="time">
<el-date-picker
v-model="time"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
type="primary" type="primary"
@ -359,9 +385,16 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="建档人" label="上报标题"
align="center"
prop="reportTitle"
show-overflow-tooltip
min-width="150"
>
</el-table-column>
<el-table-column
label="上报人"
align="center" align="center"
prop="createBy" prop="createBy"
show-overflow-tooltip show-overflow-tooltip
@ -369,7 +402,7 @@
/> />
<el-table-column <el-table-column
prop="tenantName" prop="tenantName"
label="建档组织" label="上报单位"
align="center" align="center"
show-overflow-tooltip show-overflow-tooltip
min-width="150" min-width="150"
@ -400,7 +433,7 @@
label="操作" label="操作"
align="center" align="center"
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
width="300" width="250"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button <!-- <el-button
@ -456,7 +489,7 @@
提交审核 提交审核
</el-button> --> </el-button> -->
<!-- 审核 --> <!-- 审核 -->
<!-- <el-button <el-button
:disabled="scope.row.status != 1" :disabled="scope.row.status != 1"
size="mini" size="mini"
type="text" type="text"
@ -475,7 +508,7 @@
v-hasPermi="['medicalFile:index:reject']" v-hasPermi="['medicalFile:index:reject']"
> >
驳回 驳回
</el-button> --> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -661,7 +694,9 @@ import {
saveAidRecord, saveAidRecord,
queueAdd, queueAdd,
exportTreatmentPg, exportTreatmentPg,
treatmentAudit,
} from "@/api/medicalFile"; } from "@/api/medicalFile";
import { managerQuery } from "@/api/report";
import { tenantsList } from "@/api/member"; import { tenantsList } from "@/api/member";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { followupQuery } from "@/api/followupFile"; import { followupQuery } from "@/api/followupFile";
@ -670,6 +705,8 @@ export default {
dicts: ["sys_normal_disable", "sys_user_sex"], dicts: ["sys_normal_disable", "sys_user_sex"],
data() { data() {
return { return {
time: [],
managerList: [], //
tenantsListData: [], tenantsListData: [],
qzUrl: process.env.VUE_APP_API_QZURL, // qzUrl: process.env.VUE_APP_API_QZURL, //
// //
@ -755,16 +792,6 @@ export default {
fileList: [], fileList: [],
followupList: [], followupList: [],
queueOpen: false, queueOpen: false,
//
medicalHistory: [
"肥胖症",
"失眠病",
"中风病",
"面瘫病",
"项痹病",
"腰痛病",
"痉挛性斜颈",
],
idCardType: [ idCardType: [
{ {
label: "身份证", label: "身份证",
@ -794,392 +821,6 @@ export default {
3: "台湾居民来往大陆通行证", 3: "台湾居民来往大陆通行证",
4: "其他", 4: "其他",
}, },
//
systemType: [
"隐形肥胖型",
"脂肪过多型",
"肥胖型",
"肌肉不足型",
"健康匀称型",
"超重肌肉型",
"消瘦型",
"低脂肪型",
"运动员型",
],
//
habitus: [
"平和质",
"气虚质",
" 阳虚质",
"阴虚质",
"痰湿质",
" 湿热质",
"血瘀质",
"气郁质",
"特禀质",
],
//
healType: [
{
title: "肥胖症",
list: [
{
title: "行为心理干预",
valueCode: "ZLFA_XWXLGY",
list: [
{
title:
"行为技能训练:辅导有效的应对压力技巧,避免因情绪波动导致过度进食,训练正念饮食,提高对饥饿和饱足感的感知能力",
value: "行为技能训练",
type: "but",
},
{
title:
"目标设定与追踪:与患者共同设立短期和长期减重目标,定期进行进度评估,强化正面反馈,提高自我管理能力",
value: "目标设定与追踪",
type: "but",
},
],
},
{
title: "运动干预",
valueCode: "ZLFA_YDGY",
list: [
{
title:
"有氧运动:如快走、慢跑、游泳等,建议每周至少进行150分钟中等强度的有氧运动",
value: "有氧运动",
type: "but",
},
{
title:
"抗阻运动:如举重、俯卧撑等,建议每周进行2-3次抗阻运动",
value: "抗阻运动",
type: "but",
},
],
},
{
title: "临床营养治疗",
valueCode: "ZLFA_LCYYZL",
list: [
{
title:
"限能量饮食:在限制能量摄入(日常饮食能量减去30%)的基础上,营养素比例符合平衡膳食的要求",
value: "限能量饮食",
type: "but",
},
{
title: "高蛋白饮食:每日蛋白质摄入量超过20%,但一般不高于35%",
value: "高蛋白饮食",
type: "but",
},
{
title: "低碳水化合物饮食:碳水化合物供能比一般在20%-40%",
value: "低碳水化合物饮食",
type: "but",
},
{
title:
"断食:如5+2模式,1周中5天相对正常进食,其他2天摄取平常的1/4能量",
value: "断食",
type: "but",
},
],
},
{
title: "针灸疗法",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF",
list: [
{
title: "毫针/电针疗法",
type: "but",
},
{
title: "温针疗法",
type: "but",
},
{
title: "耳穴贴压疗法",
type: "but",
},
{
title: "穴位埋针法",
type: "but",
},
{
title: "穴位埋线法",
type: "but",
},
],
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW",
list: [
{
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "but",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "but",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "but",
},
{
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "but",
},
],
},
],
},
{
title: "药物治疗",
valueCode: "ZLFA_YW",
list: [
{
title: "奥利司他:通过抑制胃肠道脂肪酶,减少脂肪吸收",
value: "奥利司他",
type: "but",
},
{
title: "利拉鲁肽:GLP-1受体激动剂,延缓胃排空,增加饱腹感",
value: "利拉鲁肽",
type: "but",
},
{
title: "贝那鲁肽:GLP-1受体激动剂,作用机制与利拉鲁肽类似",
value: "贝那鲁肽",
type: "but",
},
{
title:
"司美格鲁肽:GLP-1受体激动剂,每周一次给药,减重效果显著",
value: "司美格鲁肽",
type: "but",
},
{
title: "替尔泊肽:GLP-1受体激动剂,适用于肥胖症治疗",
value: "替尔泊肽",
type: "but",
},
],
},
],
},
{
title: "失眠症",
list: [
{
title: "生活习惯",
valueCode: "ZLFA_SHXG",
list: [
{
title:
"科学膳食:避免午后摄入咖啡、茶、酒精等刺激性饮品,以及睡前过度进食",
value: "科学膳食",
type: "but",
},
{
title:
"充足日照:增加日间自然光照,减少夜间人工光源,特别是电子产品的使用",
value: "充足日照",
type: "but",
},
{
title:
"合理运动:推荐瑜伽、太极拳、八段锦等传统运动,有助于改善睡眠质量",
value: "合理运动",
type: "but",
},
],
},
{
title: "心理调适",
valueCode: "ZLFA_XLTS",
list: [
{
title:
"放松训练:包括渐进式肌肉放松训练、腹式呼吸、冥想等,可降低紧张与过度警觉,提高睡眠质量",
value: "放松训练",
type: "but",
},
{
title:
"音乐疗法:轻柔舒缓的音乐可以降低神经系统兴奋性,减轻焦虑情绪从而改善睡眠",
value: "音乐疗法",
type: "but",
},
{
title:
"认知调整:不灾难化和过分关注失眠,不因偶尔失眠而产生挫败感,培养失眠的耐受性",
value: "认知调整",
type: "but",
},
],
},
{
title: "针灸疗法",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF_SMZ",
list: [
{
title: "毫针/电针疗法",
type: "but",
},
{
title: "温针疗法",
type: "but",
},
{
title: "耳穴贴压疗法",
type: "but",
},
{
title: "穴位埋针法",
type: "but",
},
{
title: "穴位埋线法",
type: "but",
},
],
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW_SMZ",
list: [
{
title: "神门:安神定志,改善睡眠质量",
value: "神门",
type: "but",
},
{
title: "三阴交:调理脾胃,养血安神",
value: "三阴交",
type: "but",
},
{
title: "百会:调节大脑功能,促进睡眠",
value: "百会",
type: "but",
},
{
title: "安眠:直接作用于睡眠中枢,帮助入睡",
value: "安眠",
type: "but",
},
],
},
],
},
{
title: "药物治疗",
valueCode: "ZLFA_YW_SMZ",
list: [
{
title:
"苯二氮䓬受体激动剂(BZRAs):艾司唑仑、阿普唑仑、劳拉西泮等",
value: "苯二氮䓬受体激动剂(BZRAs)",
type: "but",
},
{
title:
"非苯二氮䓬类药物(non-BZDs):唑吡坦、扎来普隆、右佐匹克隆、佐匹克隆",
value: "非苯二氮䓬类药物(non-BZDs)",
type: "but",
},
{
title: "褪黑素和褪黑素受体激动剂:调节生物钟,改善睡眠",
value: "褪黑素和褪黑素受体激动剂",
type: "but",
},
{
title:
"抗抑郁药物:具有镇静作用的抗抑郁药物,如曲唑酮、米氮平等,可用于失眠伴抑郁症状的患者",
value: "抗抑郁药物",
type: "but",
},
{
title:
"其他药物:选择性食欲素受体拮抗剂苏沃雷生,可用于改善睡眠质量",
value: "其他药物",
type: "but",
},
],
},
],
},
{
title: "其他",
list: [
{
title: "针灸疗法",
list: [
{
title: "疗法",
valueCode: "ZLFA_ZJ_LF_QT",
list: [
{
title: "毫针/电针疗法",
type: "but",
},
{
title: "温针疗法",
type: "but",
},
{
title: "耳穴贴压疗法",
type: "but",
},
{
title: "穴位埋针法",
type: "but",
},
{
title: "穴位埋线法",
type: "but",
},
],
},
{
title: "穴位",
valueCode: "ZLFA_ZJ_XW_QT",
list: [
{
title: "填写",
type: "input",
},
],
},
],
},
{
title: "药物治疗",
valueCode: "ZLFA_YW_QT",
list: [
{
title: "填写",
type: "input",
},
],
},
],
},
],
status: { status: {
0: "保存", 0: "保存",
1: "待审核", 1: "待审核",
@ -1213,6 +854,9 @@ export default {
doctor: "", doctor: "",
status: "", status: "",
tenantId: "", tenantId: "",
managementId: "",
startTime: "",
endTime: "",
}, },
}, },
formDisabled: false, formDisabled: false,
@ -1367,13 +1011,24 @@ export default {
}; };
}, },
created() { created() {
let { name, phone } = this.$route.query; let { name, phone, managementId } = this.$route.query;
this.queryParams.param.keywords = name || ""; this.queryParams.param.keywords = name;
this.queryParams.param.phone = phone || ""; this.queryParams.param.phone = phone !== "null" ? phone : "";
this.queryParams.param.managementId = managementId;
this.getList(); this.getList();
this.getTenantsList(); // this.getTenantsList(); //
this.getManagerList(); //
}, },
methods: { methods: {
/** 上报管理列表 */
getManagerList() {
managerQuery({
pageNum: -1,
param: {},
}).then((res) => {
this.managerList = res.data.list;
});
},
// //
getTenantsList() { getTenantsList() {
tenantsList({ tenantsList({
@ -1470,6 +1125,14 @@ export default {
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
// time + 00:00:00 + 23:59:59
if (this.time?.length > 0) {
this.queryParams.param.startTime = this.time[0] + " 00:00:00";
this.queryParams.param.endTime = this.time[1] + " 23:59:59";
} else {
this.queryParams.param.startTime = "";
this.queryParams.param.endTime = "";
}
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
@ -1485,7 +1148,10 @@ export default {
endAge: "", endAge: "",
doctor: "", doctor: "",
status: "", status: "",
tenantId: "",
managementId: "",
}; };
this.time = [];
this.handleQuery(); this.handleQuery();
}, },
// //
@ -1514,15 +1180,17 @@ export default {
}, },
/** 提交审核 */ /** 提交审核 */
handleExamine(row, _status) { handleExamine(row, _status) {
let form = JSON.parse(JSON.stringify(row)); let params = {
form = { tenantId: row.tenantId, // id
...JSON.parse(JSON.stringify(row)), treatmentId: row.id, // id
status: _status, // 0 1 2 3
}; };
form.status = _status; let title = this.status[_status];
title = title == "待审核" ? "提交" : title;
this.$modal this.$modal
.confirm(`是否确认提交当前选择的数据(${row.name})?`) .confirm(`是否确认${title}当前选择的数据(${row.name})?`)
.then(function () { .then(function () {
return treatmentUpd(form); return treatmentAudit(params);
}) })
.then(() => { .then(() => {
this.getList(); this.getList();
@ -1636,35 +1304,6 @@ export default {
} }
}); });
}, },
//
submitDetailsForm: function () {
this.$refs["detailsForm"].validate((valid) => {
if (valid) {
let codeAndAnswerList = [];
for (let key in this.detailsForm) {
let data = {
questionCode: key,
answer: "",
};
if (typeof this.detailsForm[key] === "string") {
data.answer = this.detailsForm[key].split(",");
} else {
data.answer = this.detailsForm[key];
}
codeAndAnswerList.push(data);
}
saveAidRecord({
treatmentId: this.form.id,
codeAndAnswerList,
}).then((response) => {
this.$modal.msgSuccess("保存成功");
this.drawer = false;
this.getList();
});
}
});
},
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const idList = row.id ? [row.id] : this.ids; const idList = row.id ? [row.id] : this.ids;

103
acupuncture-后台/src/views/monitor/cache/list.vue

@ -11,6 +11,12 @@
icon="el-icon-refresh-right" icon="el-icon-refresh-right"
@click="refreshCacheNames()" @click="refreshCacheNames()"
></el-button> ></el-button>
<el-button
style="float: right; padding: 3px 0"
type="text"
icon="el-icon-plus"
@click="handelAdd()"
></el-button>
</div> </div>
<el-table <el-table
v-loading="loading" v-loading="loading"
@ -47,6 +53,12 @@
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpd(scope.row)"
></el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -148,33 +160,106 @@
</el-card> </el-card>
</el-col> </el-col>
</el-row> </el-row>
<el-dialog
:title="title"
:visible.sync="open"
width="620px"
append-to-body
class="popup"
>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="缓存名称" prop="cacheName">
<el-input
v-model="form.cacheName"
placeholder="请输入缓存名称"
:disabled="title == '修改缓存'"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label=" " style="margin-bottom: 0px">
<template slot-scope="scope">
<el-button type="primary" @click="submit" size="mini"
> </el-button
>
<el-button @click="open = false"> </el-button>
</template>
</el-form-item>
</el-form>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listCacheName, listCacheKey, getCacheValue, clearCacheName, clearCacheKey, clearCacheAll } from "@/api/monitor/cache"; import {
listCacheName,
listCacheKey,
getCacheValue,
clearCacheName,
clearCacheKey,
clearCacheAll,
cacheAdd,
} from "@/api/monitor/cache";
export default { export default {
name: "CacheList", name: "CacheList",
data() { data() {
return { return {
form: {
cacheName: "",
remark: "",
},
rules: {
cacheName: [
{ required: true, message: "缓存名称不能为空", trigger: "blur" },
],
},
open: false,
cacheNames: [], cacheNames: [],
cacheKeys: [], cacheKeys: [],
cacheForm: {}, cacheForm: {},
loading: true, loading: true,
subLoading: false, subLoading: false,
nowCacheName: "", nowCacheName: "",
tableHeight: window.innerHeight - 200 tableHeight: window.innerHeight - 200,
}; };
}, },
created() { created() {
this.getCacheNames(); this.getCacheNames();
}, },
methods: { methods: {
handleUpd(row) {
this.title = "修改缓存";
this.form = {
cacheName: row.cacheName,
remark: row.remark,
};
this.open = true;
},
handelAdd() {
this.title = "新增缓存";
this.open = true;
this.form = {
cacheName: "",
remark: "",
};
},
submit() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
cacheAdd(this.form).then((response) => {
this.$modal.msgSuccess("添加成功");
this.open = false;
this.getCacheNames();
});
}
});
},
/** 查询缓存名称列表 */ /** 查询缓存名称列表 */
getCacheNames() { getCacheNames() {
this.loading = true; this.loading = true;
listCacheName().then(response => { listCacheName().then((response) => {
this.cacheNames = response.data; this.cacheNames = response.data;
this.loading = false; this.loading = false;
}); });
@ -186,7 +271,7 @@ export default {
}, },
/** 清理指定名称缓存 */ /** 清理指定名称缓存 */
handleClearCacheName(row) { handleClearCacheName(row) {
clearCacheName(row.cacheName).then(response => { clearCacheName(row.cacheName).then((response) => {
this.$modal.msgSuccess("清理缓存名称[" + row.cacheName + "]成功"); this.$modal.msgSuccess("清理缓存名称[" + row.cacheName + "]成功");
this.getCacheKeys(); this.getCacheKeys();
}); });
@ -198,7 +283,7 @@ export default {
return; return;
} }
this.subLoading = true; this.subLoading = true;
listCacheKey(cacheName).then(response => { listCacheKey(cacheName).then((response) => {
this.cacheKeys = response.data; this.cacheKeys = response.data;
this.subLoading = false; this.subLoading = false;
this.nowCacheName = cacheName; this.nowCacheName = cacheName;
@ -211,7 +296,7 @@ export default {
}, },
/** 清理指定键名缓存 */ /** 清理指定键名缓存 */
handleClearCacheKey(cacheKey) { handleClearCacheKey(cacheKey) {
clearCacheKey(cacheKey).then(response => { clearCacheKey(cacheKey).then((response) => {
this.$modal.msgSuccess("清理缓存键名[" + cacheKey + "]成功"); this.$modal.msgSuccess("清理缓存键名[" + cacheKey + "]成功");
this.getCacheKeys(); this.getCacheKeys();
}); });
@ -226,16 +311,16 @@ export default {
}, },
/** 查询缓存内容详细 */ /** 查询缓存内容详细 */
handleCacheValue(cacheKey) { handleCacheValue(cacheKey) {
getCacheValue(this.nowCacheName, cacheKey).then(response => { getCacheValue(this.nowCacheName, cacheKey).then((response) => {
this.cacheForm = response.data; this.cacheForm = response.data;
}); });
}, },
/** 清理全部缓存 */ /** 清理全部缓存 */
handleClearCacheAll() { handleClearCacheAll() {
clearCacheAll().then(response => { clearCacheAll().then((response) => {
this.$modal.msgSuccess("清理全部缓存成功"); this.$modal.msgSuccess("清理全部缓存成功");
}); });
} },
}, },
}; };
</script> </script>

5
acupuncture-后台/src/views/monitor/online/index.vue

@ -45,6 +45,11 @@
<span>{{ parseTime(scope.row.loginTime) }}</span> <span>{{ parseTime(scope.row.loginTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="最后访问时间" align="center" prop="lastVisitTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.lastVisitTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button

25
acupuncture-后台/src/views/monitor/server/index.vue

@ -171,6 +171,31 @@
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
<el-col :span="24" class="card-box">
<el-card>
<div slot="header">
<span><i class="el-icon-s-data"></i> 数据库状态</span>
</div>
<div class="el-table el-table--enable-row-hover el-table--medium">
<table cellspacing="0" style="width: 100%;">
<thead>
<tr>
<th class="el-table__cell el-table__cell is-leaf"><div class="cell">数据库类型</div></th>
<th class="el-table__cell is-leaf"><div class="cell">版本号</div></th>
<th class="el-table__cell is-leaf"><div class="cell">状态</div></th>
</tr>
</thead>
<tbody v-if="server.sysFiles">
<tr >
<td class="el-table__cell is-leaf"><div class="cell">MariaDB</div></td>
<td class="el-table__cell is-leaf"><div class="cell">10.3.23</div></td>
<td class="el-table__cell is-leaf"><div class="cell">在线</div></td>
</tr>
</tbody>
</table>
</div>
</el-card>
</el-col>
</el-row> </el-row>
</div> </div>
</template> </template>

32
acupuncture-后台/src/views/patientFile/index.vue

@ -82,14 +82,27 @@
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
@click="handleDelete">删除</el-button> @click="handleDelete">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-bottom" size="mini"
@click="handleDownload">下载模版</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入</el-button>
</el-col> --> </el-col> -->
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-bottom"
size="mini"
@click="handleDownload"
>下载模版</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-upload2"
size="mini"
@click="handleImport"
>导入</el-button
>
</el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
@ -454,7 +467,8 @@ export default {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
deptId: localStorage.getItem("hospitalId"), deptId: localStorage.getItem("hospitalId"),
}, },
uploadFileUrl1: process.env.VUE_APP_API_QZURL + "/patient/import", // uploadFileUrl1:
process.env.VUE_APP_API_QZURL + "/admin/treatment/importTreatment", //
fileList: [], fileList: [],
// //
educationYearsValue: { educationYearsValue: {
@ -818,7 +832,7 @@ export default {
/** 下载按钮操作 */ /** 下载按钮操作 */
handleDownload() { handleDownload() {
window.open( window.open(
`${process.env.VUE_APP_API_QZURL}/profile/PatientTemplate.xlsx` `${process.env.VUE_APP_API_QZURL}profile/PatientTemplateAdmin.xlsx`
); );
// this.download1( // this.download1(
// "/patient/export", {}, // "/patient/export", {},

915
acupuncture-后台/src/views/report/manage.vue

@ -1,345 +1,620 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" <el-form
label-width="80px"> :model="queryParams"
<el-form-item label="标题" prop="reportTitle"> ref="queryForm"
<el-input v-model="queryParams.param.reportTitle" placeholder="请输入" clearable size="small"
@keyup.enter.native="handleQuery" /> :inline="true"
</el-form-item> v-show="showSearch"
<el-form-item> label-width="80px"
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> >
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-form-item label="标题" prop="reportTitle">
</el-form-item> <el-input
</el-form> v-model="queryParams.param.reportTitle"
<el-row :gutter="10" class="mb8"> placeholder="请输入"
<el-col :span="1.5"> clearable
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button> @keyup.enter.native="handleQuery"
</el-col> />
<el-col :span="1.5"> </el-form-item>
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" <el-form-item>
@click="handleDelete">删除</el-button> <el-button
</el-col> type="primary"
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> icon="el-icon-search"
</el-row> size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
>删除</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="listData" @selection-change="handleSelectionChange" max-height="600"> <el-table
<el-table-column type="selection" width="55" align="center" /> v-loading="loading"
<el-table-column fixed label="标题" align="center" prop="reportTitle" min-width="100" /> :data="listData"
<el-table-column fixed label="类型" align="center" prop="typeName" show-overflow-tooltip min-width="100"> @selection-change="handleSelectionChange"
</el-table-column> max-height="600"
<el-table-column fixed label="开始时间" align="center" prop="timeRangeStart" show-overflow-tooltip >
min-width="100"> <el-table-column type="selection" width="55" align="center" />
<template slot-scope="scope"> <el-table-column
<span> fixed
{{ parseTime(scope.row.timeRangeStart, "{y}-{m}-{d}") }} label="标题"
</span> align="center"
</template> prop="reportTitle"
</el-table-column> min-width="100"
<el-table-column fixed label="结束时间" align="center" prop="timeRangeEnd" show-overflow-tooltip />
min-width="100"> <el-table-column
<template slot-scope="scope"> fixed
<span> label="类型"
{{ parseTime(scope.row.timeRangeEnd, "{y}-{m}-{d}") }} align="center"
</span> prop="typeName"
</template> show-overflow-tooltip
</el-table-column> min-width="100"
<el-table-column label="创建人/创建时间" align="center" min-width="140"> >
<template slot-scope="scope"> </el-table-column>
<div>{{scope.row.createBy}}</div> <el-table-column
<span> label="单位"
{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }} align="center"
</span> prop="tenantIdList"
</template> min-width="250"
</el-table-column> show-overflow-tooltip
<el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="200"> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <!-- 通过id列表找到tenantsData中匹配的数据并替换为中文数据后面添加逗号 -->
:disabled="scope.row.id == 1 || scope.row.id == 2">修改</el-button> <template v-for="(item, index) in scope.row.tenantIdList">
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <template v-if="tenantsData.some((tenant) => tenant.id === item)">
:disabled="scope.row.id == 1 || scope.row.id == 2">删除</el-button> {{ tenantsData.find((tenant) => tenant.id === item).name
</template> }}{{ index < scope.row.tenantIdList.length - 1 ? "," : "" }}
</el-table-column> </template>
</el-table> </template>
</template>
</el-table-column>
<el-table-column
fixed
label="开始时间"
align="center"
prop="timeRangeStart"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.timeRangeStart, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
<el-table-column
fixed
label="结束时间"
align="center"
prop="timeRangeEnd"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<span>
{{ parseTime(scope.row.timeRangeEnd, "{y}-{m}-{d}") }}
</span>
</template>
</el-table-column>
<el-table-column
label="状态"
align="center"
prop="status"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<span v-if="scope.row.status === 0"> 未开始 </span>
<span v-if="scope.row.status === 1"> 进行中 </span>
<span v-if="scope.row.status === 2"> 已结束 </span>
</template>
</el-table-column>
<!-- <el-table-column
label="开启/结束"
align="center"
prop="typeName"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<el-switch
v-model="scope.row.status"
active-color="#13ce66"
inactive-color="#ff4949"
></el-switch>
</template>
</el-table-column> -->
<el-table-column label="创建人/创建时间" align="center" min-width="140">
<template slot-scope="scope">
<div>{{ scope.row.createBy }}</div>
<span>
{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }}
</span>
</template>
</el-table-column>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" <el-table-column
:limit.sync="queryParams.pageSize" @pagination="getList" /> fixed="right"
label="操作"
align="center"
class-name="small-padding fixed-width"
width="150"
>
<template slot-scope="scope">
<el-button
v-if="scope.row.status === 0 || scope.row.status === 2"
size="mini"
type="text"
icon="el-icon-folder-checked"
@click="handleSwitch(scope.row, 1)"
>开启</el-button
>
<el-button
v-if="scope.row.status === 1"
size="mini"
type="text"
icon="el-icon-folder-delete"
@click="handleSwitch(scope.row, 2)"
>结束</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-document"
@click="handleDetails(scope.row)"
>上报详情</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-download"
@click="handleDownload(scope.row)"
>上报汇总表</el-button
>
<el-button
:disabled="scope.row.status === 1"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button
>
<el-button
:disabled="scope.row.status === 1"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 添加或修改公告对话框 --> <pagination
<el-dialog class="popup" :title="title" :visible.sync="open" width="780px" append-to-body> v-show="total > 0"
<el-form ref="form" :model="form" :rules="rules" label-width="140px" class="formStep"> :total="total"
<el-form-item label="标题" prop="reportTitle"> :page.sync="queryParams.pageNum"
<el-input v-model="form.reportTitle" placeholder="请输入" /> :limit.sync="queryParams.pageSize"
</el-form-item> @pagination="getList"
<el-form-item label="上报类型" prop="reportType"> />
<el-select v-model="form.reportType" placeholder="请选择">
<el-option v-for="item in reporTypeList" :key="item.id" :label="item.typeName" :value="item.id"> <!-- 添加或修改公告对话框 -->
</el-option> <el-dialog
</el-select> class="popup"
</el-form-item> :title="title"
<el-form-item label="时间范围" prop="time"> :visible.sync="open"
<!-- <el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="form.timeRangeStart" width="780px"
type="date" placeholder="选择日期"> append-to-body
</el-date-picker> --> >
<el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="form.time" type="daterange" <el-form
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @input="$forceUpdate()"> ref="form"
</el-date-picker> :model="form"
</el-form-item> :rules="rules"
<!-- <el-form-item label="结束时间" prop="timeRangeEnd"> label-width="100px"
<el-date-picker format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="form.timeRangeEnd" type="date" class="formStep"
placeholder="选择日期"> >
</el-date-picker> <el-form-item label="标题" prop="reportTitle">
</el-form-item> --> <el-input v-model="form.reportTitle" placeholder="请输入" />
</el-form> </el-form-item>
<div slot="footer" class="dialog-footer"> <el-form-item label="上报类型" prop="reportType">
<el-button type="primary" @click="submitForm"> </el-button> <el-select
<el-button @click="cancel"> </el-button> v-model="form.reportType"
</div> placeholder="请选择"
</el-dialog> @change="handleTypeChage"
</div> >
<el-option
v-for="item in reporTypeList"
:key="item.id"
:label="item.typeName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="单位" prop="tenantIdList">
<el-select v-model="form.tenantIdList" multiple placeholder="请选择">
<el-option
v-for="item in tenantsData"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="时间范围" prop="time">
<el-date-picker
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
v-model="form.time"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@input="$forceUpdate()"
>
</el-date-picker>
</el-form-item>
<el-form-item label="状态" prop="status" v-if="!form.id">
<el-radio-group v-model="form.status">
<el-radio :label="0">未开始</el-radio>
<el-radio :label="1">进行中</el-radio>
<el-radio :label="2">已结束</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template> </template>
<script> <script>
import { import {
managerQuery, managerQuery,
managerAdd, managerAdd,
managerUpd, managerUpd,
managerDel, managerDel,
reportList reportList,
} from "@/api/report"; reportDown,
export default { } from "@/api/report";
name: "Notice", import { tenantsList } from "@/api/member";
data() { export default {
return { name: "Notice",
reporTypeList: [], data() {
queryParams: { return {
param: { reporTypeList: [],
reportTitle: "", queryParams: {
} pageNum: 1,
}, pageSize: 10,
listData: [], param: {
title: '', reportTitle: "",
open: false, },
total: 0, },
form: {}, listData: [],
loading: false, title: "",
showSearch: true, open: false,
multiple: false, total: 0,
// form: {},
rules: { loading: false,
reportTitle: [{ showSearch: true,
required: true, multiple: false,
message: "标题不能为空", //
trigger: "blur", rules: {
}], reportTitle: [
reportType: [{ {
required: true, required: true,
message: "类型不能为空", message: "标题不能为空",
trigger: "blur", trigger: "blur",
}], },
time: [{ ],
required: true, reportType: [
message: "时间范围不能为空", {
trigger: "change", required: true,
}] message: "类型不能为空",
// timeRangeStart: [{ trigger: "blur",
// required: true, },
// message: "", ],
// trigger: "blur", time: [
// }], {
// timeRangeEnd: [{ required: true,
// required: true, message: "时间范围不能为空",
// message: "", trigger: "change",
// trigger: "blur" },
// }], ],
}, tenantIdList: [
}; {
}, required: true,
created() { message: "单位不能为空",
this.getList(); trigger: "change",
this.getReportType(); },
}, ],
methods: { // timeRangeStart: [{
getReportType() { // required: true,
reportList({ // message: "",
pageNum: -1, // trigger: "blur",
param: {}, // }],
}).then((res) => { // timeRangeEnd: [{
this.reporTypeList = res.data.list; // required: true,
}); // message: "",
}, // trigger: "blur"
/** 查询公告列表 */ // }],
getList() { },
this.loading = true; tenantsData: [],
managerQuery(this.queryParams).then((res) => { qzUrl: process.env.VUE_APP_API_QZURL, //
this.listData = res.data.list; };
this.total = res.data.total; },
this.loading = false; created() {
}); this.getList();
}, this.getReportType();
// this.getTenantsList();
cancel() { },
this.open = false; methods: {
this.reset(); handleDownload(row) {
}, reportDown({
// managementId: row.id,
reset() { }).then((res) => {
this.form = { if (res.data) {
"reportTitle": "", window.open(this.qzUrl + res.data);
"reportType": "", } else {
time:[], this.$modal.msgError("暂无上报汇总表");
"timeRangeStart": "", }
"timeRangeEnd": "", });
}; },
this.resetForm("form"); //
}, handleDetails(row) {
/** 搜索按钮操作 */ this.$router.push({
handleQuery() { path: "/medicalFile/index",
this.queryParams.pageNum = 1; query: { managementId: row.id },
this.getList(); });
}, },
/** 重置按钮操作 */ //
resetQuery() { handleTypeChage() {
this.queryParams.param = { // form.reportType reporTypeList id tenantIdList
reportTitle: "", let reportType = this.form.reportType;
}; let tenantIdList = this.reporTypeList.find(
this.handleQuery(); (item) => item.id == reportType
}, ).tenantIdList;
// this.form.tenantIdList = tenantIdList;
handleSelectionChange(selection) { },
this.ids = selection.map((item) => item.id); //
this.single = selection.length != 1; getReportType() {
this.multiple = !selection.length; reportList({
}, pageNum: -1,
/** 新增按钮操作 */ param: {},
handleAdd() { }).then((res) => {
this.reset(); this.reporTypeList = res.data.list;
this.open = true; });
this.title = "新增上报"; },
}, /** 查询公告列表 */
/** 修改按钮操作 */ getTenantsList() {
handleUpdate(row) { tenantsList({
this.open = true; pageNum: -1,
this.title = "修改上报"; param: {},
this.form = JSON.parse(JSON.stringify(row)) }).then((res) => {
let timeRangeStart = this.parseTime(this.form.timeRangeStart, "{y}-{m}-{d}") this.tenantsData = res.data.list;
let timeRangeEnd = this.parseTime(this.form.timeRangeEnd, "{y}-{m}-{d}") });
this.form.time = [] },
this.form.time[0] = timeRangeStart /** 查询公告列表 */
this.form.time[1] = timeRangeEnd getList() {
}, this.loading = true;
/** 诊疗档案 */ managerQuery(this.queryParams).then((res) => {
submitForm: function() { this.listData = res.data.list;
this.$refs["form"].validate((valid) => { this.total = res.data.total;
if (valid) { this.loading = false;
let data = JSON.parse(JSON.stringify(this.form)) });
let time = data.time },
data.timeRangeStart = data.time[0] //
data.timeRangeEnd = data.time[1] cancel() {
if (data.id != undefined) { this.open = false;
managerUpd(data).then((response) => { this.reset();
this.$modal.msgSuccess("修改成功"); },
this.open = false; //
this.getList(); reset() {
}); this.form = {
} else { reportTitle: "",
managerAdd(data).then((response) => { reportType: "",
this.$modal.msgSuccess("新增成功"); time: [],
this.open = false; timeRangeStart: "",
this.getList(); timeRangeEnd: "",
}); tenantIdList: [],
} status: 0,
} };
}); this.resetForm("form");
}, },
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.param = {
reportTitle: "",
};
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "新增上报";
},
/** 修改按钮操作 */
handleSwitch(row, status) {
this.form = JSON.parse(JSON.stringify(row));
this.form.status = status;
managerUpd(this.form).then((response) => {
this.$modal.msgSuccess("操作成功");
this.getList();
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.open = true;
this.title = "修改上报";
this.form = JSON.parse(JSON.stringify(row));
let timeRangeStart = this.parseTime(
this.form.timeRangeStart,
"{y}-{m}-{d}"
);
let timeRangeEnd = this.parseTime(this.form.timeRangeEnd, "{y}-{m}-{d}");
this.form.time = [];
this.form.time[0] = timeRangeStart;
this.form.time[1] = timeRangeEnd;
},
/** 诊疗档案 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
let data = JSON.parse(JSON.stringify(this.form));
let time = data.time;
data.timeRangeStart = data.time[0];
data.timeRangeEnd = data.time[1];
if (data.id != undefined) {
managerUpd(data).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
managerAdd(data).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const idList = row.id ? [row.id] : this.ids; const idList = row.id ? [row.id] : this.ids;
this.$modal this.$modal
.confirm("是否确认删除当前选择的数据?") .confirm("是否确认删除当前选择的数据?")
.then(function() { .then(function () {
return managerDel({ return managerDel({
idList: idList, idList: idList,
}); });
}) })
.then(() => { .then(() => {
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
this.getList(); this.getList();
}) })
.catch(() => {}); .catch(() => {});
}, },
}, },
}; };
</script> </script>
<style scoped src="@/assets/styles/common.css"></style> <style scoped src="@/assets/styles/common.css"></style>
<style scoped> <style scoped>
.div-title1 { .div-title1 {
font-size: 22px; font-size: 22px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px; margin-bottom: 10px;
} }
.div-title2 { .div-title2 {
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px; margin-bottom: 10px;
} }
.div-title3 { .div-title3 {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px; margin-bottom: 10px;
} }
.span-but { .span-but {
display: inline-block; display: inline-block;
border-radius: 4px; border-radius: 4px;
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
line-height: 32px; line-height: 32px;
padding: 0 15px; padding: 0 15px;
margin: 5px; margin: 5px;
} }
.span-but-active { .span-but-active {
border: 1px solid #1890ff; border: 1px solid #1890ff;
} }
.human-body { .human-body {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.human-body>>>.el-form-item { .human-body >>> .el-form-item {
width: 49%; width: 49%;
margin-right: 2%; margin-right: 2%;
} }
.human-body>>>.el-form-item:nth-of-type(2n) { .human-body >>> .el-form-item:nth-of-type(2n) {
margin-right: 0; margin-right: 0;
} }
.formStep1>>>.el-form-item__label {} .formStep1 >>> .el-form-item__label {
}
.form-item-zd { .form-item-zd {
width: 100%; width: 100%;
text-align: left; text-align: left;
} }
.form-item-age { .form-item-age {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.form-item-age span { .form-item-age span {
margin: 0 10px; margin: 0 10px;
} }
.form-item-age>>>.el-input { .form-item-age >>> .el-input {
width: 100px; width: 100px;
} }
>>>.el-drawer.rtl { >>> .el-drawer.rtl {
width: 50% !important; width: 50% !important;
} }
</style> </style>

719
acupuncture-后台/src/views/report/type.vue

@ -1,265 +1,504 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" <el-form
label-width="80px"> :model="queryParams"
<el-form-item label="类型名称" prop="typeName"> ref="queryForm"
<el-input v-model="queryParams.param.typeName" placeholder="请输入" clearable size="small"
@keyup.enter.native="handleQuery" /> :inline="true"
</el-form-item> v-show="showSearch"
<el-form-item> label-width="80px"
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> >
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-form-item label="类型名称" prop="typeName">
</el-form-item> <el-input
</el-form> v-model="queryParams.param.typeName"
<el-row :gutter="10" class="mb8"> placeholder="请输入"
<el-col :span="1.5"> clearable
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button> @keyup.enter.native="handleQuery"
</el-col> />
<el-col :span="1.5"> </el-form-item>
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" <el-form-item>
@click="handleDelete">删除</el-button> <el-button
</el-col> type="primary"
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> icon="el-icon-search"
</el-row> size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
>删除</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="listData" @selection-change="handleSelectionChange" max-height="600"> <el-table
<el-table-column type="selection" width="55" align="center" /> v-loading="loading"
<el-table-column fixed label="类型名称" align="center" prop="typeName" min-width="100" /> :data="listData"
<el-table-column label="创建人/创建时间" align="center" min-width="140"> @selection-change="handleSelectionChange"
<template slot-scope="scope"> max-height="600"
<div>{{scope.row.createBy}}</div> >
<span> <el-table-column type="selection" width="55" align="center" />
{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }} <el-table-column
</span> fixed
</template> label="类型名称"
</el-table-column> align="center"
<el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="200"> prop="typeName"
<template slot-scope="scope"> min-width="100"
<el-button size="mini" type="text" icon="el-icon-edit" show-overflow-tooltip
@click="handleUpdate(scope.row)">修改</el-button> />
<el-button size="mini" type="text" icon="el-icon-delete" <el-table-column
@click="handleDelete(scope.row)">删除</el-button> label="单位"
</template> align="center"
</el-table-column> prop="tenantIdList"
</el-table> min-width="250"
show-overflow-tooltip
>
<template slot-scope="scope">
<!-- 通过id列表找到tenantsData中匹配的数据并替换为中文数据后面添加逗号 -->
<template v-for="(item, index) in scope.row.tenantIdList">
<template v-if="tenantsData.some((tenant) => tenant.id === item)">
{{ tenantsData.find((tenant) => tenant.id === item).name
}}{{ index < scope.row.tenantIdList.length - 1 ? "," : "" }}
</template>
</template>
</template>
</el-table-column>
<el-table-column
label="附件"
align="center"
prop="typeName"
min-width="150"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-button type="text" size="mini" @click="handleDownload(scope.row)">
<span v-if="scope.row.file">
<i class="el-icon-download"></i>
<span>{{
scope.row.file.substring(scope.row.file.lastIndexOf("/") + 1)
}}</span>
</span>
</el-button>
</template>
</el-table-column>
<el-table-column
label="备注"
align="center"
prop="remark"
min-width="150"
show-overflow-tooltip
/>
<el-table-column label="创建人/创建时间" align="center" min-width="140">
<template slot-scope="scope">
<div>{{ scope.row.createBy }}</div>
<span>
{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }}
</span>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" <pagination
:limit.sync="queryParams.pageSize" @pagination="getList" /> v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改公告对话框 --> <!-- 添加或修改公告对话框 -->
<el-dialog class="popup" :title="title" :visible.sync="open" width="780px" append-to-body> <el-dialog
<el-form ref="form" :model="form" :rules="rules" label-width="90px" class="formStep"> class="popup"
<el-form-item label="类型名称" prop="typeName"> :title="title"
<el-input v-model="form.typeName" placeholder="请输入" /> :visible.sync="open"
</el-form-item> width="780px"
</el-form> append-to-body
<div slot="footer" class="dialog-footer"> >
<el-button type="primary" @click="submitForm"> </el-button> <el-form
<el-button @click="cancel"> </el-button> ref="form"
</div> :model="form"
</el-dialog> :rules="rules"
</div> label-width="90px"
class="formStep"
>
<el-form-item label="类型名称" prop="typeName">
<el-input v-model="form.typeName" placeholder="请输入" />
</el-form-item>
<el-form-item label="单位" prop="tenantIdList">
<el-select v-model="form.tenantIdList" multiple placeholder="请选择">
<el-option
v-for="item in tenantsData"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="附件" prop="file">
<el-upload
:limit="1"
class="avatar-uploader wj-uploader"
:headers="headers"
:action="uploadFileUrl"
accept=".xlsx,.xls,.pdf,.doc,.docx"
:before-upload="handleBeforePdfUpload1"
:on-success="handleUploadPdfAdd1"
:on-remove="handleRemove"
:file-list="fileList"
:show-file-list="true"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
</el-upload>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
type="textarea"
v-model="form.remark"
placeholder="请输入"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template> </template>
<script> <script>
import { import { getToken } from "@/utils/auth";
reportList, import { tenantsList } from "@/api/member";
reportAdd, import { reportList, reportAdd, reportUpd, reportDel } from "@/api/report";
reportUpd, export default {
reportDel name: "Notice",
} from "@/api/report"; data() {
export default { return {
name: "Notice", uploadFileUrl: process.env.VUE_APP_API_QZURL + "/common/upload", //
data() { headers: {
return { Authorization: "Bearer " + getToken(),
dataSourceList: [], },
queryParams: { dataSourceList: [],
param: { queryParams: {
name: "", param: {
} name: "",
}, },
listData: [], },
title: '', listData: [],
open: false, title: "",
total: 0, open: false,
form: {}, total: 0,
loading: false, form: {},
showSearch: true, loading: false,
multiple: false, showSearch: true,
// multiple: false,
rules: { //
typeName: [{ rules: {
required: true, typeName: [
message: "上报类型不能为空", {
trigger: "blur", required: true,
}], message: "上报类型不能为空",
}, trigger: "blur",
}; },
}, ],
created() { tenantIdList: [
this.getList(); {
}, required: true,
methods: { message: "单位不能为空",
/** 查询公告列表 */ trigger: "change",
getList() { },
this.loading = true; ],
reportList(this.queryParams).then((res) => { file: [
this.listData = res.data.list; {
this.total = res.data.total; required: true,
this.loading = false; message: "附件不能为空",
}); trigger: "change",
}, },
// ],
cancel() { },
this.open = false; tenantsData: [],
this.reset(); fileList: [],
}, qzUrl: process.env.VUE_APP_API_QZURL, //
// };
reset() { },
this.form = { created() {
"typeName": "", this.getList();
}; this.getTenantsList();
this.resetForm("form"); },
}, methods: {
/** 搜索按钮操作 */ handleDownload(row) {
handleQuery() { window.open(this.qzUrl + row.file);
this.queryParams.pageNum = 1; },
this.getList(); handleRemove(file, fileList) {
}, this.form.file = "";
/** 重置按钮操作 */ this.fileList = [];
resetQuery() { },
this.queryParams.param = { // - pdg
typeName: "", handleUploadPdfAdd1(res) {
}; if (res.code == 200) {
this.handleQuery(); this.$message.success(res.msg || "导入成功");
}, this.form.file = res.fileName;
// setTimeout(() => {
handleSelectionChange(selection) { this.$refs["form"].validateField("file", (errorMessage) => {});
this.ids = selection.map((item) => item.id); });
this.single = selection.length != 1; } else {
this.multiple = !selection.length; this.$message.error(res.msg || "导入失败");
}, this.fileList = [];
/** 新增按钮操作 */ }
handleAdd() { },
this.reset();
this.open = true;
this.title = "新增上报类型";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.open = true;
this.title = "修改诊疗档案";
this.form = JSON.parse(JSON.stringify(row))
},
/** 诊疗档案 */
submitForm: function() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != undefined) {
reportUpd(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
reportAdd(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */ // -
handleDelete(row) { handleBeforePdfUpload1(file) {
const idList = row.id ? [row.id] : this.ids; const fileSuffix = file.name.substring(file.name.lastIndexOf(".") + 1);
this.$modal const whiteList = ["xlsx", "xls", "pdf", "doc", "docx"];
.confirm("是否确认删除当前选择的数据?") if (whiteList.indexOf(fileSuffix) === -1) {
.then(function() { this.$message.error("上传文件只能是xlsx/xls/pdf/doc/docx 格式!");
return reportDel({ return false;
idList: idList, }
}); },
}) /** 查询公告列表 */
.then(() => { getTenantsList() {
this.getList(); tenantsList({
this.$modal.msgSuccess("删除成功"); pageNum: -1,
}) param: {},
.catch(() => {}); }).then((res) => {
}, this.tenantsData = res.data.list;
}, });
}; },
/** 查询公告列表 */
getList() {
this.loading = true;
reportList(this.queryParams).then((res) => {
this.listData = res.data.list;
this.total = res.data.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.fileList = [];
this.form = {
typeName: "",
tenantIdList: [],
remark: "",
file: "",
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.param = {
typeName: "",
};
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "新增上报类型";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.open = true;
this.title = "修改上报类型";
this.form = JSON.parse(JSON.stringify(row));
if (row.file) {
this.fileList = [
{
//
name: row.file.substring(row.file.lastIndexOf("/") + 1),
url: row.file,
},
];
} else {
this.fileList = [];
}
},
/** 诊疗档案 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != undefined) {
reportUpd(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
reportAdd(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const idList = row.id ? [row.id] : this.ids;
this.$modal
.confirm("是否确认删除当前选择的数据?")
.then(function () {
return reportDel({
idList: idList,
});
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
},
};
</script> </script>
<style scoped src="@/assets/styles/common.css"></style> <style scoped src="@/assets/styles/common.css"></style>
<style scoped> <style scoped>
.div-title1 { >>> .el-upload-list__item:first-child {
font-size: 22px; margin-top: 0 !important;
font-weight: bold; }
margin-bottom: 10px; .div-title1 {
} font-size: 22px;
font-weight: bold;
margin-bottom: 10px;
}
.div-title2 { .div-title2 {
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px; margin-bottom: 10px;
} }
.div-title3 { .div-title3 {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px; margin-bottom: 10px;
} }
.span-but { .span-but {
display: inline-block; display: inline-block;
border-radius: 4px; border-radius: 4px;
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
line-height: 32px; line-height: 32px;
padding: 0 15px; padding: 0 15px;
margin: 5px; margin: 5px;
} }
.span-but-active { .span-but-active {
border: 1px solid #1890ff; border: 1px solid #1890ff;
} }
.human-body { .human-body {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
.human-body>>>.el-form-item { .human-body >>> .el-form-item {
width: 49%; width: 49%;
margin-right: 2%; margin-right: 2%;
} }
.human-body>>>.el-form-item:nth-of-type(2n) { .human-body >>> .el-form-item:nth-of-type(2n) {
margin-right: 0; margin-right: 0;
} }
.formStep1>>>.el-form-item__label {} .formStep1 >>> .el-form-item__label {
}
.form-item-zd { .form-item-zd {
width: 100%; width: 100%;
text-align: left; text-align: left;
} }
.form-item-age { .form-item-age {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.form-item-age span { .form-item-age span {
margin: 0 10px; margin: 0 10px;
} }
.form-item-age>>>.el-input { .form-item-age >>> .el-input {
width: 100px; width: 100px;
} }
>>>.el-drawer.rtl { >>> .el-drawer.rtl {
width: 50% !important; width: 50% !important;
} }
</style> </style>

268
acupuncture-后台/src/views/system/dict/data.vue

@ -1,6 +1,13 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="字典名称" prop="dictType"> <el-form-item label="字典名称" prop="dictType">
<el-select v-model="queryParams.dictType"> <el-select v-model="queryParams.dictType">
<el-option <el-option
@ -20,7 +27,11 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="数据状态" clearable> <el-select
v-model="queryParams.status"
placeholder="数据状态"
clearable
>
<el-option <el-option
v-for="dict in dict.type.sys_normal_disable" v-for="dict in dict.type.sys_normal_disable"
:key="dict.value" :key="dict.value"
@ -30,8 +41,16 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -44,7 +63,8 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['system:dict:add']" v-hasPermi="['system:dict:add']"
>新增</el-button> >新增</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -55,7 +75,8 @@
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['system:dict:edit']" v-hasPermi="['system:dict:edit']"
>修改</el-button> >修改</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -66,7 +87,8 @@
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['system:dict:remove']" v-hasPermi="['system:dict:remove']"
>删除</el-button> >删除</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -76,7 +98,8 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['system:dict:export']" v-hasPermi="['system:dict:export']"
>导出</el-button> >导出</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -85,34 +108,87 @@
icon="el-icon-close" icon="el-icon-close"
size="mini" size="mini"
@click="handleClose" @click="handleClose"
>关闭</el-button> >关闭</el-button
>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange"> <el-table
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="字典编码" align="center" prop="dictCode" /> <el-table-column label="字典编码" align="center" prop="dictCode" />
<el-table-column label="字典标签" align="center" prop="dictLabel"> <el-table-column label="字典标签" align="center" prop="dictLabel">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="(scope.row.listClass == '' || scope.row.listClass == 'default') && (scope.row.cssClass == '' || scope.row.cssClass == null)">{{ scope.row.dictLabel }}</span> <span
<el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass" :class="scope.row.cssClass">{{ scope.row.dictLabel }}</el-tag> v-if="
(scope.row.listClass == '' || scope.row.listClass == 'default') &&
(scope.row.cssClass == '' || scope.row.cssClass == null)
"
>{{ scope.row.dictLabel }}</span
>
<el-tag
v-else
:type="scope.row.listClass == 'primary' ? '' : scope.row.listClass"
:class="scope.row.cssClass"
>{{ scope.row.dictLabel }}</el-tag
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="字典键值" align="center" prop="dictValue" /> <el-table-column label="字典键值" align="center" prop="dictValue" />
<el-table-column label="字典排序" align="center" prop="dictSort" /> <el-table-column label="字典排序" align="center" prop="dictSort" />
<el-table-column label="数据类型" align="center" prop="dataType" />
<!-- 长度是否必填是否唯一 -->
<el-table-column label="长度" align="center" prop="dataLength" />
<el-table-column label="是否必填" align="center" width="100">
<template slot-scope="scope">
<el-tag type="info" v-if="scope.row.isRequired == 0"></el-tag>
<el-tag type="success" v-if="scope.row.isRequired == 1"></el-tag>
</template>
</el-table-column>
<el-table-column label="是否唯一" align="center" width="100">
<template slot-scope="scope">
<el-tag type="info" v-if="scope.row.isSole == 0"></el-tag>
<el-tag type="success" v-if="scope.row.isSole == 1"></el-tag>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status"> <el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> <dict-tag
:options="dict.type.sys_normal_disable"
:value="scope.row.status"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" /> <el-table-column
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> label="备注"
align="center"
prop="remark"
:show-overflow-tooltip="true"
/>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@ -120,20 +196,22 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['system:dict:edit']" v-hasPermi="['system:dict:edit']"
>修改</el-button> >修改</el-button
>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:dict:remove']" v-hasPermi="['system:dict:remove']"
>删除</el-button> >删除</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@ -155,8 +233,30 @@
<el-form-item label="样式属性" prop="cssClass"> <el-form-item label="样式属性" prop="cssClass">
<el-input v-model="form.cssClass" placeholder="请输入样式属性" /> <el-input v-model="form.cssClass" placeholder="请输入样式属性" />
</el-form-item> </el-form-item>
<el-form-item label="数据类型" prop="dataType">
<el-input v-model="form.dataType" placeholder="请输入" />
</el-form-item>
<el-form-item label="长度" prop="dataLength">
<el-input v-model="form.dataLength" placeholder="请输入长度" />
</el-form-item>
<el-form-item label="是否必填" prop="isRequired">
<el-radio-group v-model="form.isRequired">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否唯一" prop="isSole">
<el-radio-group v-model="form.isSole">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="显示排序" prop="dictSort"> <el-form-item label="显示排序" prop="dictSort">
<el-input-number v-model="form.dictSort" controls-position="right" :min="0" /> <el-input-number
v-model="form.dictSort"
controls-position="right"
:min="0"
/>
</el-form-item> </el-form-item>
<el-form-item label="回显样式" prop="listClass"> <el-form-item label="回显样式" prop="listClass">
<el-select v-model="form.listClass"> <el-select v-model="form.listClass">
@ -174,11 +274,16 @@
v-for="dict in dict.type.sys_normal_disable" v-for="dict in dict.type.sys_normal_disable"
:key="dict.value" :key="dict.value"
:label="dict.value" :label="dict.value"
>{{dict.label}}</el-radio> >{{ dict.label }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input> <el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -190,12 +295,21 @@
</template> </template>
<script> <script>
import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data"; import {
import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type"; listData,
getData,
delData,
addData,
updateData,
} from "@/api/system/dict/data";
import {
optionselect as getDictOptionselect,
getType,
} from "@/api/system/dict/type";
export default { export default {
name: "Data", name: "Data",
dicts: ['sys_normal_disable'], dicts: ["sys_normal_disable"],
data() { data() {
return { return {
// //
@ -222,28 +336,28 @@ export default {
listClassOptions: [ listClassOptions: [
{ {
value: "default", value: "default",
label: "默认" label: "默认",
}, },
{ {
value: "primary", value: "primary",
label: "主要" label: "主要",
}, },
{ {
value: "success", value: "success",
label: "成功" label: "成功",
}, },
{ {
value: "info", value: "info",
label: "信息" label: "信息",
}, },
{ {
value: "warning", value: "warning",
label: "警告" label: "警告",
}, },
{ {
value: "danger", value: "danger",
label: "危险" label: "危险",
} },
], ],
// //
typeOptions: [], typeOptions: [],
@ -253,22 +367,22 @@ export default {
pageSize: 10, pageSize: 10,
dictType: undefined, dictType: undefined,
dictLabel: undefined, dictLabel: undefined,
status: undefined status: undefined,
}, },
// //
form: {}, form: {},
// //
rules: { rules: {
dictLabel: [ dictLabel: [
{ required: true, message: "数据标签不能为空", trigger: "blur" } { required: true, message: "数据标签不能为空", trigger: "blur" },
], ],
dictValue: [ dictValue: [
{ required: true, message: "数据键值不能为空", trigger: "blur" } { required: true, message: "数据键值不能为空", trigger: "blur" },
], ],
dictSort: [ dictSort: [
{ required: true, message: "数据顺序不能为空", trigger: "blur" } { required: true, message: "数据顺序不能为空", trigger: "blur" },
] ],
} },
}; };
}, },
created() { created() {
@ -279,7 +393,7 @@ export default {
methods: { methods: {
/** 查询字典类型详细 */ /** 查询字典类型详细 */
getType(dictId) { getType(dictId) {
getType(dictId).then(response => { getType(dictId).then((response) => {
this.queryParams.dictType = response.data.dictType; this.queryParams.dictType = response.data.dictType;
this.defaultDictType = response.data.dictType; this.defaultDictType = response.data.dictType;
this.getList(); this.getList();
@ -287,14 +401,14 @@ export default {
}, },
/** 查询字典类型列表 */ /** 查询字典类型列表 */
getTypeList() { getTypeList() {
getDictOptionselect().then(response => { getDictOptionselect().then((response) => {
this.typeOptions = response.data; this.typeOptions = response.data;
}); });
}, },
/** 查询字典数据列表 */ /** 查询字典数据列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listData(this.queryParams).then(response => { listData(this.queryParams).then((response) => {
this.dataList = response.rows; this.dataList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -312,10 +426,14 @@ export default {
dictLabel: undefined, dictLabel: undefined,
dictValue: undefined, dictValue: undefined,
cssClass: undefined, cssClass: undefined,
listClass: 'default', listClass: "default",
dictSort: 0, dictSort: 0,
status: "0", status: "0",
remark: undefined remark: undefined,
dataType: "",
dataLength: "",
isRequired: 1,
isSole: 1,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -344,34 +462,40 @@ export default {
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.dictCode) this.ids = selection.map((item) => item.dictCode);
this.single = selection.length!=1 this.single = selection.length != 1;
this.multiple = !selection.length this.multiple = !selection.length;
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const dictCode = row.dictCode || this.ids const dictCode = row.dictCode || this.ids;
getData(dictCode).then(response => { getData(dictCode).then((response) => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改字典数据"; this.title = "修改字典数据";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function () {
this.$refs["form"].validate(valid => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
if (this.form.dictCode != undefined) { if (this.form.dictCode != undefined) {
updateData(this.form).then(response => { updateData(this.form).then((response) => {
this.$store.dispatch('dict/removeDict', this.queryParams.dictType); this.$store.dispatch(
"dict/removeDict",
this.queryParams.dictType
);
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addData(this.form).then(response => { addData(this.form).then((response) => {
this.$store.dispatch('dict/removeDict', this.queryParams.dictType); this.$store.dispatch(
"dict/removeDict",
this.queryParams.dictType
);
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
@ -383,20 +507,28 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const dictCodes = row.dictCode || this.ids; const dictCodes = row.dictCode || this.ids;
this.$modal.confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?').then(function() { this.$modal
return delData(dictCodes); .confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?')
}).then(() => { .then(function () {
this.getList(); return delData(dictCodes);
this.$modal.msgSuccess("删除成功"); })
this.$store.dispatch('dict/removeDict', this.queryParams.dictType); .then(() => {
}).catch(() => {}); this.getList();
this.$modal.msgSuccess("删除成功");
this.$store.dispatch("dict/removeDict", this.queryParams.dictType);
})
.catch(() => {});
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/dict/data/export', { this.download(
...this.queryParams "system/dict/data/export",
}, `data_${new Date().getTime()}.xlsx`) {
} ...this.queryParams,
} },
`data_${new Date().getTime()}.xlsx`
);
},
},
}; };
</script> </script>

2
acupuncture-后台/src/views/system/dict/index.vue

@ -168,6 +168,7 @@
</router-link> </router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center" prop="status"> <el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
@ -235,6 +236,7 @@
<el-form-item label="字典类型" prop="dictType"> <el-form-item label="字典类型" prop="dictType">
<el-input v-model="form.dictType" placeholder="请输入字典类型" /> <el-input v-model="form.dictType" placeholder="请输入字典类型" />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio <el-radio

30
acupuncture-后台/src/views/system/menu/index.vue

@ -19,6 +19,17 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户端类型" prop="status">
<el-select
v-model="queryParams.clientType"
placeholder="客户端类型"
clearable
style="width: 240px"
>
<el-option label="PC端" :value="0" />
<el-option label="移动端" :value="1" />
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -70,6 +81,12 @@
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="客户端类型" align="center" width="100">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.clientType === 0">PC端</el-tag>
<el-tag type="info" v-if="scope.row.clientType === 1">移动端</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime"> <el-table-column label="创建时间" align="center" prop="createTime">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
@ -278,6 +295,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="12">
<el-form-item label="客户端类型">
<el-radio-group v-model="form.clientType">
<el-radio :label="0">PC端</el-radio>
<el-radio :label="1">移动端</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -389,7 +416,8 @@ export default {
isFrame: "1", isFrame: "1",
isCache: "0", isCache: "0",
visible: "0", visible: "0",
status: "0" status: "0",
clientType: 0
}; };
this.resetForm("form"); this.resetForm("form");
}, },

276
acupuncture-后台/src/views/system/notice/index.vue

@ -1,6 +1,13 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="公告标题" prop="noticeTitle"> <el-form-item label="公告标题" prop="noticeTitle">
<el-input <el-input
v-model="queryParams.noticeTitle" v-model="queryParams.noticeTitle"
@ -18,7 +25,11 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="noticeType"> <el-form-item label="类型" prop="noticeType">
<el-select v-model="queryParams.noticeType" placeholder="公告类型" clearable> <el-select
v-model="queryParams.noticeType"
placeholder="公告类型"
clearable
>
<el-option <el-option
v-for="dict in dict.type.sys_notice_type" v-for="dict in dict.type.sys_notice_type"
:key="dict.value" :key="dict.value"
@ -28,8 +39,16 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -42,7 +61,8 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['system:notice:add']" v-hasPermi="['system:notice:add']"
>新增</el-button> >新增</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -53,7 +73,8 @@
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['system:notice:edit']" v-hasPermi="['system:notice:edit']"
>修改</el-button> >修改</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -64,37 +85,88 @@
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['system:notice:remove']" v-hasPermi="['system:notice:remove']"
>删除</el-button> >删除</el-button
>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange"> <el-table
v-loading="loading"
:data="noticeList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" prop="noticeId" width="100" /> <el-table-column
label="序号"
align="center"
prop="noticeId"
width="100"
/>
<el-table-column <el-table-column
label="公告标题" label="公告标题"
align="center" align="center"
prop="noticeTitle" prop="noticeTitle"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
/> />
<el-table-column label="公告类型" align="center" prop="noticeType" width="100">
<el-table-column
label="公告类型"
align="center"
prop="noticeType"
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_notice_type" :value="scope.row.noticeType"/> <dict-tag
:options="dict.type.sys_notice_type"
:value="scope.row.noticeType"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center" prop="status" width="100"> <el-table-column label="状态" align="center" prop="status" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_notice_status" :value="scope.row.status"/> <dict-tag
:options="dict.type.sys_notice_status"
:value="scope.row.status"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建者" align="center" prop="createBy" width="100" /> <el-table-column
<el-table-column label="创建时间" align="center" prop="createTime" width="100"> label="创建者"
align="center"
prop="createBy"
width="100"
/>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column
label="更新时间"
align="center"
prop="createTime"
width="140"
>
<template slot-scope="scope">
<span>{{
parseTime(scope.row.updateTime, "{y}-{m}-{d} {h}:{i}")
}}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@ -102,20 +174,22 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['system:notice:edit']" v-hasPermi="['system:notice:edit']"
>修改</el-button> >修改</el-button
>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:notice:remove']" v-hasPermi="['system:notice:remove']"
>删除</el-button> >删除</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@ -125,41 +199,48 @@
<!-- 添加或修改公告对话框 --> <!-- 添加或修改公告对话框 -->
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row> <el-form-item label="公告标题" prop="noticeTitle">
<el-col :span="12"> <el-input v-model="form.noticeTitle" placeholder="请输入公告标题" />
<el-form-item label="公告标题" prop="noticeTitle"> </el-form-item>
<el-input v-model="form.noticeTitle" placeholder="请输入公告标题" /> <el-form-item label="公告类型" prop="noticeType">
</el-form-item> <el-select v-model="form.noticeType" placeholder="请选择公告类型">
</el-col> <el-option
<el-col :span="12"> v-for="dict in dict.type.sys_notice_type"
<el-form-item label="公告类型" prop="noticeType"> :key="dict.value"
<el-select v-model="form.noticeType" placeholder="请选择公告类型"> :label="dict.label"
<el-option :value="dict.value"
v-for="dict in dict.type.sys_notice_type" ></el-option>
:key="dict.value" </el-select>
:label="dict.label" </el-form-item>
:value="dict.value" <el-form-item label="通知用户" prop="userIdList">
></el-option> <el-select
</el-select> v-model="form.userIdList"
</el-form-item> multiple
</el-col> placeholder="请选择"
<el-col :span="24"> style="width: 100%"
<el-form-item label="状态"> >
<el-radio-group v-model="form.status"> <el-option
<el-radio v-for="item in userList"
v-for="dict in dict.type.sys_notice_status" :key="item.userId"
:key="dict.value" :label="`${item.userName}-${item.nickName}`"
:label="dict.value" :value="item.userId"
>{{dict.label}}</el-radio> >
</el-radio-group> </el-option>
</el-form-item> </el-select>
</el-col> </el-form-item>
<el-col :span="24"> <el-form-item label="状态">
<el-form-item label="内容"> <el-radio-group v-model="form.status">
<editor v-model="form.noticeContent" :min-height="192"/> <el-radio
</el-form-item> v-for="dict in dict.type.sys_notice_status"
</el-col> :key="dict.value"
</el-row> :label="dict.value"
>{{ dict.label }}</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="内容">
<editor v-model="form.noticeContent" :min-height="192" />
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -170,11 +251,17 @@
</template> </template>
<script> <script>
import { listNotice, getNotice, delNotice, addNotice, updateNotice } from "@/api/system/notice"; import {
listNotice,
getNotice,
delNotice,
addNotice,
updateNotice,
} from "@/api/system/notice";
import { listUser } from "@/api/system/user";
export default { export default {
name: "Notice", name: "Notice",
dicts: ['sys_notice_status', 'sys_notice_type'], dicts: ["sys_notice_status", "sys_notice_type"],
data() { data() {
return { return {
// //
@ -201,29 +288,47 @@ export default {
pageSize: 10, pageSize: 10,
noticeTitle: undefined, noticeTitle: undefined,
createBy: undefined, createBy: undefined,
status: undefined status: undefined,
}, },
// //
form: {}, form: {},
// //
rules: { rules: {
noticeTitle: [ noticeTitle: [
{ required: true, message: "公告标题不能为空", trigger: "blur" } { required: true, message: "公告标题不能为空", trigger: "blur" },
], ],
noticeType: [ noticeType: [
{ required: true, message: "公告类型不能为空", trigger: "change" } { required: true, message: "公告类型不能为空", trigger: "change" },
] ],
} userIdList: [
{ required: true, message: "通知用户不能为空", trigger: "blur" },
],
},
userList: [],
}; };
}, },
created() { created() {
this.getList(); this.getList();
this.getUserList();
}, },
methods: { methods: {
/** 查询用户列表 */
getUserList() {
listUser({
pageNum: 1,
pageSize: 1000000,
}).then((response) => {
// userNameadmin
response.rows = response.rows.filter(
(item) => item.userName != "admin"
);
this.userList = response.rows;
});
},
/** 查询公告列表 */ /** 查询公告列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listNotice(this.queryParams).then(response => { listNotice(this.queryParams).then((response) => {
this.noticeList = response.rows; this.noticeList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -241,7 +346,8 @@ export default {
noticeTitle: undefined, noticeTitle: undefined,
noticeType: undefined, noticeType: undefined,
noticeContent: undefined, noticeContent: undefined,
status: "0" status: "0",
userIdList: [],
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -257,9 +363,9 @@ export default {
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.noticeId) this.ids = selection.map((item) => item.noticeId);
this.single = selection.length!=1 this.single = selection.length != 1;
this.multiple = !selection.length this.multiple = !selection.length;
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
@ -270,25 +376,25 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const noticeId = row.noticeId || this.ids const noticeId = row.noticeId || this.ids;
getNotice(noticeId).then(response => { getNotice(noticeId).then((response) => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改公告"; this.title = "修改公告";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function () {
this.$refs["form"].validate(valid => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
if (this.form.noticeId != undefined) { if (this.form.noticeId != undefined) {
updateNotice(this.form).then(response => { updateNotice(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addNotice(this.form).then(response => { addNotice(this.form).then((response) => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
@ -299,14 +405,18 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const noticeIds = row.noticeId || this.ids const noticeIds = row.noticeId || this.ids;
this.$modal.confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?').then(function() { this.$modal
return delNotice(noticeIds); .confirm('是否确认删除公告编号为"' + noticeIds + '"的数据项?')
}).then(() => { .then(function () {
this.getList(); return delNotice(noticeIds);
this.$modal.msgSuccess("删除成功"); })
}).catch(() => {}); .then(() => {
} this.getList();
} this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
},
}; };
</script> </script>

388
acupuncture-后台/src/views/system/role/index.vue

@ -1,6 +1,12 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
>
<el-form-item label="角色名称" prop="roleName"> <el-form-item label="角色名称" prop="roleName">
<el-input <el-input
v-model="queryParams.roleName" v-model="queryParams.roleName"
@ -34,6 +40,17 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户端类型" prop="status">
<el-select
v-model="queryParams.clientType"
placeholder="客户端类型"
clearable
style="width: 240px"
>
<el-option label="PC端" :value="0" />
<el-option label="移动端" :value="1" />
</el-select>
</el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker <el-date-picker
v-model="dateRange" v-model="dateRange"
@ -46,8 +63,16 @@
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -60,7 +85,8 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['system:role:add']" v-hasPermi="['system:role:add']"
>新增</el-button> >新增</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -71,7 +97,8 @@
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['system:role:edit']" v-hasPermi="['system:role:edit']"
>修改</el-button> >修改</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -82,7 +109,8 @@
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['system:role:remove']" v-hasPermi="['system:role:remove']"
>删除</el-button> >删除</el-button
>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -92,16 +120,34 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['system:role:export']" v-hasPermi="['system:role:export']"
>导出</el-button> >导出</el-button
>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange"> <el-table
v-loading="loading"
:data="roleList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="角色编号" prop="roleId" width="120" /> <el-table-column label="角色编号" prop="roleId" width="120" />
<el-table-column label="角色名称" prop="roleName" :show-overflow-tooltip="true" width="150" /> <el-table-column
<el-table-column label="权限字符" prop="roleKey" :show-overflow-tooltip="true" width="150" /> label="角色名称"
prop="roleName"
:show-overflow-tooltip="true"
width="150"
/>
<el-table-column
label="权限字符"
prop="roleKey"
:show-overflow-tooltip="true"
width="150"
/>
<el-table-column label="显示顺序" prop="roleSort" width="100" /> <el-table-column label="显示顺序" prop="roleSort" width="100" />
<el-table-column label="状态" align="center" width="100"> <el-table-column label="状态" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
@ -113,12 +159,27 @@
></el-switch> ></el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="客户端类型" align="center" width="100">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.clientType === 0">PC端</el-tag>
<el-tag type="info" v-if="scope.row.clientType === 1">移动端</el-tag>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope" v-if="scope.row.roleId !== 1"> <template slot-scope="scope" v-if="scope.row.roleId !== 1">
<el-button <el-button
size="mini" size="mini"
@ -126,21 +187,37 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['system:role:edit']" v-hasPermi="['system:role:edit']"
>修改</el-button> >修改</el-button
>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:role:remove']" v-hasPermi="['system:role:remove']"
>删除</el-button> >删除</el-button
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']"> >
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button> <el-dropdown
size="mini"
@command="(command) => handleCommand(command, scope.row)"
v-hasPermi="['system:role:edit']"
>
<el-button size="mini" type="text" icon="el-icon-d-arrow-right"
>更多</el-button
>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleDataScope" icon="el-icon-circle-check" <el-dropdown-item
v-hasPermi="['system:role:edit']">数据权限</el-dropdown-item> command="handleDataScope"
<el-dropdown-item command="handleAuthUser" icon="el-icon-user" icon="el-icon-circle-check"
v-hasPermi="['system:role:edit']">分配用户</el-dropdown-item> v-hasPermi="['system:role:edit']"
>数据权限</el-dropdown-item
>
<el-dropdown-item
command="handleAuthUser"
icon="el-icon-user"
v-hasPermi="['system:role:edit']"
>分配用户</el-dropdown-item
>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
@ -148,7 +225,7 @@
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@ -163,7 +240,10 @@
</el-form-item> </el-form-item>
<el-form-item prop="roleKey"> <el-form-item prop="roleKey">
<span slot="label"> <span slot="label">
<el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)" placement="top"> <el-tooltip
content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)"
placement="top"
>
<i class="el-icon-question"></i> <i class="el-icon-question"></i>
</el-tooltip> </el-tooltip>
权限字符 权限字符
@ -171,7 +251,11 @@
<el-input v-model="form.roleKey" placeholder="请输入权限字符" /> <el-input v-model="form.roleKey" placeholder="请输入权限字符" />
</el-form-item> </el-form-item>
<el-form-item label="角色顺序" prop="roleSort"> <el-form-item label="角色顺序" prop="roleSort">
<el-input-number v-model="form.roleSort" controls-position="right" :min="0" /> <el-input-number
v-model="form.roleSort"
controls-position="right"
:min="0"
/>
</el-form-item> </el-form-item>
<el-form-item label="状态"> <el-form-item label="状态">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
@ -179,13 +263,32 @@
v-for="dict in dict.type.sys_normal_disable" v-for="dict in dict.type.sys_normal_disable"
:key="dict.value" :key="dict.value"
:label="dict.value" :label="dict.value"
>{{dict.label}}</el-radio> >{{ dict.label }}</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="客户端类型">
<el-radio-group v-model="form.clientType">
<el-radio :label="0">PC端</el-radio>
<el-radio :label="1">移动端</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="菜单权限"> <el-form-item label="菜单权限">
<el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox> <el-checkbox
<el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox> v-model="menuExpand"
<el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox> @change="handleCheckedTreeExpand($event, 'menu')"
>展开/折叠</el-checkbox
>
<el-checkbox
v-model="menuNodeAll"
@change="handleCheckedTreeNodeAll($event, 'menu')"
>全选/全不选</el-checkbox
>
<el-checkbox
v-model="form.menuCheckStrictly"
@change="handleCheckedTreeConnect($event, 'menu')"
>父子联动</el-checkbox
>
<el-tree <el-tree
class="tree-border" class="tree-border"
:data="menuOptions" :data="menuOptions"
@ -198,7 +301,11 @@
></el-tree> ></el-tree>
</el-form-item> </el-form-item>
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input> <el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -208,7 +315,12 @@
</el-dialog> </el-dialog>
<!-- 分配角色数据权限对话框 --> <!-- 分配角色数据权限对话框 -->
<el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body> <el-dialog
:title="title"
:visible.sync="openDataScope"
width="500px"
append-to-body
>
<el-form :model="form" label-width="80px"> <el-form :model="form" label-width="80px">
<el-form-item label="角色名称"> <el-form-item label="角色名称">
<el-input v-model="form.roleName" :disabled="true" /> <el-input v-model="form.roleName" :disabled="true" />
@ -227,9 +339,21 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="数据权限" v-show="form.dataScope == 2"> <el-form-item label="数据权限" v-show="form.dataScope == 2">
<el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox> <el-checkbox
<el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox> v-model="deptExpand"
<el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox> @change="handleCheckedTreeExpand($event, 'dept')"
>展开/折叠</el-checkbox
>
<el-checkbox
v-model="deptNodeAll"
@change="handleCheckedTreeNodeAll($event, 'dept')"
>全选/全不选</el-checkbox
>
<el-checkbox
v-model="form.deptCheckStrictly"
@change="handleCheckedTreeConnect($event, 'dept')"
>父子联动</el-checkbox
>
<el-tree <el-tree
class="tree-border" class="tree-border"
:data="deptOptions" :data="deptOptions"
@ -252,12 +376,24 @@
</template> </template>
<script> <script>
import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role"; import {
import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu"; listRole,
getRole,
delRole,
addRole,
updateRole,
dataScope,
changeRoleStatus,
deptTreeSelect,
} from "@/api/system/role";
import {
treeselect as menuTreeselect,
roleMenuTreeselect,
} from "@/api/system/menu";
export default { export default {
name: "Role", name: "Role",
dicts: ['sys_normal_disable'], dicts: ["sys_normal_disable"],
data() { data() {
return { return {
// //
@ -290,24 +426,24 @@ export default {
dataScopeOptions: [ dataScopeOptions: [
{ {
value: "1", value: "1",
label: "全部数据权限" label: "全部数据权限",
}, },
{ {
value: "2", value: "2",
label: "自定数据权限" label: "自定数据权限",
}, },
{ {
value: "3", value: "3",
label: "本部门数据权限" label: "本部门数据权限",
}, },
{ {
value: "4", value: "4",
label: "本部门及以下数据权限" label: "本部门及以下数据权限",
}, },
{ {
value: "5", value: "5",
label: "仅本人数据权限" label: "仅本人数据权限",
} },
], ],
// //
menuOptions: [], menuOptions: [],
@ -319,26 +455,26 @@ export default {
pageSize: 10, pageSize: 10,
roleName: undefined, roleName: undefined,
roleKey: undefined, roleKey: undefined,
status: undefined status: undefined,
}, },
// //
form: {}, form: {},
defaultProps: { defaultProps: {
children: "children", children: "children",
label: "label" label: "label",
}, },
// //
rules: { rules: {
roleName: [ roleName: [
{ required: true, message: "角色名称不能为空", trigger: "blur" } { required: true, message: "角色名称不能为空", trigger: "blur" },
], ],
roleKey: [ roleKey: [
{ required: true, message: "权限字符不能为空", trigger: "blur" } { required: true, message: "权限字符不能为空", trigger: "blur" },
], ],
roleSort: [ roleSort: [
{ required: true, message: "角色顺序不能为空", trigger: "blur" } { required: true, message: "角色顺序不能为空", trigger: "blur" },
] ],
} },
}; };
}, },
created() { created() {
@ -348,7 +484,8 @@ export default {
/** 查询角色列表 */ /** 查询角色列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => { listRole(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.roleList = response.rows; this.roleList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -357,7 +494,7 @@ export default {
}, },
/** 查询菜单树结构 */ /** 查询菜单树结构 */
getMenuTreeselect() { getMenuTreeselect() {
menuTreeselect().then(response => { menuTreeselect().then((response) => {
this.menuOptions = response.data; this.menuOptions = response.data;
}); });
}, },
@ -381,14 +518,14 @@ export default {
}, },
/** 根据角色ID查询菜单树结构 */ /** 根据角色ID查询菜单树结构 */
getRoleMenuTreeselect(roleId) { getRoleMenuTreeselect(roleId) {
return roleMenuTreeselect(roleId).then(response => { return roleMenuTreeselect(roleId).then((response) => {
this.menuOptions = response.menus; this.menuOptions = response.menus;
return response; return response;
}); });
}, },
/** 根据角色ID查询部门树结构 */ /** 根据角色ID查询部门树结构 */
getDeptTree(roleId) { getDeptTree(roleId) {
return deptTreeSelect(roleId).then(response => { return deptTreeSelect(roleId).then((response) => {
this.deptOptions = response.depts; this.deptOptions = response.depts;
return response; return response;
}); });
@ -396,13 +533,17 @@ export default {
// //
handleStatusChange(row) { handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用"; let text = row.status === "0" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '""' + row.roleName + '"角色吗?').then(function() { this.$modal
return changeRoleStatus(row.roleId, row.status); .confirm('确认要"' + text + '""' + row.roleName + '"角色吗?')
}).then(() => { .then(function () {
this.$modal.msgSuccess(text + "成功"); return changeRoleStatus(row.roleId, row.status);
}).catch(function() { })
row.status = row.status === "0" ? "1" : "0"; .then(() => {
}); this.$modal.msgSuccess(text + "成功");
})
.catch(function () {
row.status = row.status === "0" ? "1" : "0";
});
}, },
// //
cancel() { cancel() {
@ -419,22 +560,23 @@ export default {
if (this.$refs.menu != undefined) { if (this.$refs.menu != undefined) {
this.$refs.menu.setCheckedKeys([]); this.$refs.menu.setCheckedKeys([]);
} }
this.menuExpand = false, (this.menuExpand = false),
this.menuNodeAll = false, (this.menuNodeAll = false),
this.deptExpand = true, (this.deptExpand = true),
this.deptNodeAll = false, (this.deptNodeAll = false),
this.form = { (this.form = {
roleId: undefined, roleId: undefined,
roleName: undefined, roleName: undefined,
roleKey: undefined, roleKey: undefined,
roleSort: 0, roleSort: 0,
status: "0", status: "0",
menuIds: [], menuIds: [],
deptIds: [], deptIds: [],
menuCheckStrictly: true, menuCheckStrictly: true,
deptCheckStrictly: true, deptCheckStrictly: true,
remark: undefined remark: undefined,
}; clientType: 0,
});
this.resetForm("form"); this.resetForm("form");
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
@ -450,9 +592,9 @@ export default {
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.roleId) this.ids = selection.map((item) => item.roleId);
this.single = selection.length!=1 this.single = selection.length != 1;
this.multiple = !selection.length this.multiple = !selection.length;
}, },
// //
handleCommand(command, row) { handleCommand(command, row) {
@ -469,12 +611,12 @@ export default {
}, },
// / // /
handleCheckedTreeExpand(value, type) { handleCheckedTreeExpand(value, type) {
if (type == 'menu') { if (type == "menu") {
let treeList = this.menuOptions; let treeList = this.menuOptions;
for (let i = 0; i < treeList.length; i++) { for (let i = 0; i < treeList.length; i++) {
this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value; this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
} }
} else if (type == 'dept') { } else if (type == "dept") {
let treeList = this.deptOptions; let treeList = this.deptOptions;
for (let i = 0; i < treeList.length; i++) { for (let i = 0; i < treeList.length; i++) {
this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value; this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
@ -483,18 +625,18 @@ export default {
}, },
// / // /
handleCheckedTreeNodeAll(value, type) { handleCheckedTreeNodeAll(value, type) {
if (type == 'menu') { if (type == "menu") {
this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []); this.$refs.menu.setCheckedNodes(value ? this.menuOptions : []);
} else if (type == 'dept') { } else if (type == "dept") {
this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []); this.$refs.dept.setCheckedNodes(value ? this.deptOptions : []);
} }
}, },
// //
handleCheckedTreeConnect(value, type) { handleCheckedTreeConnect(value, type) {
if (type == 'menu') { if (type == "menu") {
this.form.menuCheckStrictly = value ? true: false; this.form.menuCheckStrictly = value ? true : false;
} else if (type == 'dept') { } else if (type == "dept") {
this.form.deptCheckStrictly = value ? true: false; this.form.deptCheckStrictly = value ? true : false;
} }
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
@ -507,19 +649,19 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const roleId = row.roleId || this.ids const roleId = row.roleId || this.ids;
const roleMenu = this.getRoleMenuTreeselect(roleId); const roleMenu = this.getRoleMenuTreeselect(roleId);
getRole(roleId).then(response => { getRole(roleId).then((response) => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.$nextTick(() => { this.$nextTick(() => {
roleMenu.then(res => { roleMenu.then((res) => {
let checkedKeys = res.checkedKeys let checkedKeys = res.checkedKeys;
checkedKeys.forEach((v) => { checkedKeys.forEach((v) => {
this.$nextTick(()=>{ this.$nextTick(() => {
this.$refs.menu.setChecked(v, true ,false); this.$refs.menu.setChecked(v, true, false);
}) });
}) });
}); });
}); });
}); });
@ -527,7 +669,7 @@ export default {
}, },
/** 选择角色权限范围触发 */ /** 选择角色权限范围触发 */
dataScopeSelectChange(value) { dataScopeSelectChange(value) {
if(value !== '2') { if (value !== "2") {
this.$refs.dept.setCheckedKeys([]); this.$refs.dept.setCheckedKeys([]);
} }
}, },
@ -535,11 +677,11 @@ export default {
handleDataScope(row) { handleDataScope(row) {
this.reset(); this.reset();
const deptTreeSelect = this.getDeptTree(row.roleId); const deptTreeSelect = this.getDeptTree(row.roleId);
getRole(row.roleId).then(response => { getRole(row.roleId).then((response) => {
this.form = response.data; this.form = response.data;
this.openDataScope = true; this.openDataScope = true;
this.$nextTick(() => { this.$nextTick(() => {
deptTreeSelect.then(res => { deptTreeSelect.then((res) => {
this.$refs.dept.setCheckedKeys(res.checkedKeys); this.$refs.dept.setCheckedKeys(res.checkedKeys);
}); });
}); });
@ -547,24 +689,24 @@ export default {
this.title = "分配数据权限"; this.title = "分配数据权限";
}, },
/** 分配用户操作 */ /** 分配用户操作 */
handleAuthUser: function(row) { handleAuthUser: function (row) {
const roleId = row.roleId; const roleId = row.roleId;
this.$router.push("/system/role-auth/user/" + roleId); this.$router.push("/system/role-auth/user/" + roleId);
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function () {
this.$refs["form"].validate(valid => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
if (this.form.roleId != undefined) { if (this.form.roleId != undefined) {
this.form.menuIds = this.getMenuAllCheckedKeys(); this.form.menuIds = this.getMenuAllCheckedKeys();
updateRole(this.form).then(response => { updateRole(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
this.form.menuIds = this.getMenuAllCheckedKeys(); this.form.menuIds = this.getMenuAllCheckedKeys();
addRole(this.form).then(response => { addRole(this.form).then((response) => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
@ -574,10 +716,10 @@ export default {
}); });
}, },
/** 提交按钮(数据权限) */ /** 提交按钮(数据权限) */
submitDataScope: function() { submitDataScope: function () {
if (this.form.roleId != undefined) { if (this.form.roleId != undefined) {
this.form.deptIds = this.getDeptAllCheckedKeys(); this.form.deptIds = this.getDeptAllCheckedKeys();
dataScope(this.form).then(response => { dataScope(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.openDataScope = false; this.openDataScope = false;
this.getList(); this.getList();
@ -587,19 +729,27 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const roleIds = row.roleId || this.ids; const roleIds = row.roleId || this.ids;
this.$modal.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?').then(function() { this.$modal
return delRole(roleIds); .confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?')
}).then(() => { .then(function () {
this.getList(); return delRole(roleIds);
this.$modal.msgSuccess("删除成功"); })
}).catch(() => {}); .then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/role/export', { this.download(
...this.queryParams "system/role/export",
}, `role_${new Date().getTime()}.xlsx`) {
} ...this.queryParams,
} },
`role_${new Date().getTime()}.xlsx`
);
},
},
}; };
</script> </script>

BIN
acupuncture-后台/南宁后台ssl-3.zip → acupuncture-后台/南宁针灸后台ssl-4.zip

Binary file not shown.
Loading…
Cancel
Save