From 2090db00209492fd9e6766f2418ce7785c235ec0 Mon Sep 17 00:00:00 2001 From: haown <454902499@qq.com> Date: Wed, 13 Mar 2024 17:20:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=B5=8B=E9=A1=B9=E7=9B=AE=E3=80=81?= =?UTF-8?q?=E5=B0=B1=E8=AF=8A=E8=AE=B0=E5=BD=95=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/出院患者信息导入表.xlsx | Bin 11801 -> 11802 bytes .../template/在院患者信息导入表.xlsx | Bin 11611 -> 11610 bytes .../template/门诊患者信息导入表.xlsx | Bin 11682 -> 12577 bytes .../template/预住院患者信息导入表.xlsx | Bin 11740 -> 11749 bytes .../constant/DeviceStatusConstants.java | 19 +++ .../ImportDownloadController.java | 16 ++- .../PatientPreHospitalizationController.java | 3 +- .../PatientVisitRecordController.java | 23 +++- .../ProjectDeviceController.java | 10 +- .../ProjectResultController.java | 2 + .../xinelu/manage/domain/project/Project.java | 11 +- .../domain/projectdevice/ProjectDevice.java | 6 +- .../projectlastresult/ProjectLastResult.java | 5 +- .../domain/projectresult/ProjectResult.java | 5 +- .../PatientVisitRecordImportDto.java | 4 + .../PatientVisitRecordSaveDto.java | 110 ++++++++++++++++++ .../manage/mapper/project/ProjectMapper.java | 4 +- .../projectgroup/ProjectGroupMapper.java | 2 + .../PatientPreHospitalizationServiceImpl.java | 1 + .../IPatientVisitRecordService.java | 13 ++- .../impl/PatientVisitRecordServiceImpl.java | 72 ++++++++---- .../project/impl/ProjectServiceImpl.java | 29 ++++- .../impl/ProjectDeviceServiceImpl.java | 34 +++++- .../impl/ProjectGroupServiceImpl.java | 22 ++++ .../PatientPreHospitalizationMapper.xml | 2 +- .../mapper/manage/project/ProjectMapper.xml | 29 ++++- .../projectdevice/ProjectDeviceMapper.xml | 20 ++-- .../projectgroup/ProjectGroupMapper.xml | 12 ++ 28 files changed, 378 insertions(+), 76 deletions(-) create mode 100644 postdischarge-common/src/main/java/com/xinelu/common/constant/DeviceStatusConstants.java create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordSaveDto.java diff --git a/postdischarge-admin/src/main/resources/template/出院患者信息导入表.xlsx b/postdischarge-admin/src/main/resources/template/出院患者信息导入表.xlsx index e914f2353ef0954c97f60856fefbbe4b4f3701c8..b1213419fb8ea7d8be55a0db1a0a010e2a10a919 100644 GIT binary patch delta 1592 zcmV-82FLlCT$)_4lmP`}e(NtrlbHb?f6+?AFc^jJ1>d3MzD?SWp`q+rs@EKW2iuaau&x?jK94O zjI@6abjqGnmTsf{PJP^cw%}WFaIbAS7@MYvnzW1I^T+sRc7EBd8kVZ^Eb{3N3Fdokd zq20O7@XpoG7XwiC3H~J}qmZOwoXkl|(=i<-d&C`}=yL!3^x_LpO9KRx5Goq87z3sT z2`)y4P5%P`0FIN#2_b)5bDKC6e&3n>4~*Um7IqxlW8CQ`o2?tCP2+6)tblB50*Do| zN&4%1bi-V{ttS~K5{HlP+`b%?`TLhF^$t{&jOP);{s4J2k9orKZG`@Pym>c4UMWeQ zkd)^%La($$?-zgmF|W9IE_akl4;bU3Q| zR33S%s`9I%^y7crM$sq`z6_|m+Lw}N*F+MunClMQi(oNN7*tWU-V<~ap$~ZWI7DFA zh;NKmWn=G2^0cNYjU`P$D#(+(SkaBVqG=kTzrmn1@x=MFdUFYwfpVtbP%cO;*?}7L zY6PW~`5ek)~n5V!BzrBnp#Un2xFM6#EBL-6`UsDh}>|$Lw>kL~0^J-{ch1I

~ zPxz*IE-il#tS%nxk8$ItP7G4~MNeQ_=>oxOiH@bz%B~v^cGGy6cs;0=WDQk{Fj&|) ztRD{XXi{Hi#)q9~)W%WO?{?feUEqc=-ssi|2RAy7TU_wKO6S)V#;)gT<1+B;I;hRr zRIcr~(f9DQ4u2Dr>pMO+9#7j*ots}R4A|89{ZD_he={IJT1GeH;pF%ydsL*Ed}bo) z`KJc-VlH^)!N&{8^)S2eq0(hR)JGQ2LN!!l_51?>zy#HXkynECuo%pP1I*9ZBL3rRQ2uzq*K<n2M_a|67mHm1G(kbo32}q~5 zYXfO&4R?zBc!K3v-2g;gD;s8?)$_EW=cO{MFS`0lD}jIN8g7jN4{FG&3%Tn-KKCs5 zJ;gMNfL7U?}4+O!o~`NSn03fNG)g%pHIRUkulqgmiKrCSoe+7q=WW-N)2SSI>#6VwI& zNi2Q>kRG!G4$m3^`IFNqKmi|<6e%+SLz74;lLcdb>n}!=;3-rA`;#>)KnGR?004Mw zFO%*p9Fv$T4gqVErz$o9l9S#lM*(+}CM!Jw0h44aIRPt^o-0TJjg#jqK>@{+DJ(hx z=96SBHUSNjn=C*9CzISPJOPE187(^jx06*ZK>_KLmn}9NE=Gn;{{sL3jtl?*7ytkO q000000RSKX006NGlgtSk7EntC1^@s602Tli09yqB0I4Vd0000#tl|6s delta 1590 zcmV-62FdxFT$x<3lmP`hZF|B+lbHb?e?dybFc^jRf_Es{w@IctXlXm3GAjoJM-+D< z`Ddosq#=oRX6-c;w;sad=)zl=cG^0k2-$@9{x9!;NhfPr1`l9tQK<~kh@b!zuSB7i z8M>NJ!y^<}$CO}Yr65BauxOI+@1$Us;Fw^J;RYD$frvV!-~&?Mo3aH6j-dnz%2`Y!iod-M zjI@6aw91ZC7H*^cPF>txw%}WFaIbAK80)%@>bQ;J^HY2?JHKpK4GYzD#R26_KP9tn z=Br#3AWk;<=i~GH+snu6Q;L6!NvYs%yo4KI4n*J|Ot$fQ^RbQY51kdEhs zB<;CPaqsHp^8qNk1pg982O)_=I%UjVIj`p;M*;W={1iJ8O@a?5i}(V;+K0?NXPb?oW++2QbMjSo<@k* z_DRi$C%yPG77H%dmC<0;1}~ zQZZG^ty#nTvp-5~yC zw3Lm#r^xe$rZiSG0jVHQ@#3Ct)fG+C2wj6gYvP&n7yaffU`E=Rc|*G(v0_JR(Q6Ds zlYbkpdJjH>+G%s|0=O|cdJtYhx8#tjE1v$v619)e9Dh06BQL*Fw%aR+ZsJdn#}6uH zIlZSxn!>{fh1yZfQ(%SPUdFWMk(ZHIvzC?-gGs8l6yy%O*p#kvhARU5YFNDrt9v!{ zFQ>B$?5;D3#uX8)6%k}rh2UbgE+H!uEv(Mv$e&EZd36E9S)pH4Jg_>R*++P$6%VWx zPxv44K!1_mDdlCw1FMS%`%~QbsS|?~-ywo|WeNmqMRY2q(RSTM%?thT(l9tSp?{yj$_(JeC;DH+lX6>00q<> zvwt??TOToRBkuYL+$rk)0HjmZ^#G((*6#z5PF;VukY-JAr?3wLES<{!7=Uz2`#1pU z)OIrf=@j>A0CK8s0HUsy4YRM(^Sq(wTW!`~bp4gq0{_-E+*yM?F&M~w7qad_zV|E- zJ%SMCP-p?Nn{9SW}? z1r;0i4;+tRka5A_Aa2gz5h}P)f-t2UXvuC23*4r3N8-2YQ0<8YOClt06LY!=>IHu$ zR{sK%0R|ef4$~R|_>R diff --git a/postdischarge-admin/src/main/resources/template/在院患者信息导入表.xlsx b/postdischarge-admin/src/main/resources/template/在院患者信息导入表.xlsx index 1f2ede012e756bd9194cdba87ae082a217c4bd67..b068f26fe5c9ba8e18bbdf4cfbcef6f80190d48b 100644 GIT binary patch delta 2729 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 diff --git a/postdischarge-admin/src/main/resources/template/门诊患者信息导入表.xlsx b/postdischarge-admin/src/main/resources/template/门诊患者信息导入表.xlsx index 199e617641d7554180ca899609a843b76378ddcf..68b0cfbb1debe38e727317c208936e5ab64b87bd 100644 GIT binary patch delta 7598 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 delta 6723 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 diff --git a/postdischarge-admin/src/main/resources/template/预住院患者信息导入表.xlsx b/postdischarge-admin/src/main/resources/template/预住院患者信息导入表.xlsx index fe410cea2d6a2fb195d7d93c0f5134f2ccae968b..708660dfe1d1d547d3bd1fbc7fe2d1488e66e7d9 100644 GIT binary patch delta 5045 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 delta 5054 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 diff --git a/postdischarge-common/src/main/java/com/xinelu/common/constant/DeviceStatusConstants.java b/postdischarge-common/src/main/java/com/xinelu/common/constant/DeviceStatusConstants.java new file mode 100644 index 00000000..c3246f60 --- /dev/null +++ b/postdischarge-common/src/main/java/com/xinelu/common/constant/DeviceStatusConstants.java @@ -0,0 +1,19 @@ +package com.xinelu.common.constant; + +/** + * @description: 设备状态常量 + * @author: haown + * @create: 2024-03-13 10:46 + **/ +public class DeviceStatusConstants { + + /** + * 绑定 + */ + public static final String BIND = "BIND"; + + /** + * 解绑 + */ + public static final String UN_BIND = "UN_BIND"; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/importdownload/ImportDownloadController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/importdownload/ImportDownloadController.java index 08502b62..3f72aab4 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/importdownload/ImportDownloadController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/importdownload/ImportDownloadController.java @@ -2,6 +2,13 @@ package com.xinelu.manage.controller.importdownload; import com.xinelu.common.constant.Constants; import com.xinelu.common.exception.ServiceException; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import java.io.File; +import java.io.IOException; +import java.util.Objects; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.util.ResourceUtils; @@ -9,12 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.IOException; -import java.util.Objects; - /** * 导入与下载Controller * @@ -22,6 +23,7 @@ import java.util.Objects; * @date 2024-02-26 */ +@Api(tags = "导入与下载控制器") @RestController @RequestMapping("/system/importDownload") public class ImportDownloadController { @@ -32,6 +34,8 @@ public class ImportDownloadController { * @param fileType 文件类型 * @param res http请求 **/ + @ApiOperation(value = "下载导入模板", notes = "fileType:agency:机构信息模板,department:科室信息模板," + + "outpatient:门诊患者模板,prehospitalized:预住院患者模板,inhospital:在院患者模板,discharged:出院患者模板") @RequestMapping("downloadTemplate") public void download(@RequestParam(value = "fileType") String fileType, HttpServletResponse res) throws IOException { if (StringUtils.isBlank(fileType)) { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientprehospitalization/PatientPreHospitalizationController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientprehospitalization/PatientPreHospitalizationController.java index 790fc153..36c390da 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientprehospitalization/PatientPreHospitalizationController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientprehospitalization/PatientPreHospitalizationController.java @@ -101,7 +101,8 @@ public class PatientPreHospitalizationController extends BaseController { * @return 导入结果 * @throws Exception 异常信息 */ - @Log(title = "导入患者就诊信息", businessType = BusinessType.IMPORT) + @ApiOperation("导入预住院患者信息") + @Log(title = "导入预住院患者信息", businessType = BusinessType.IMPORT) @PostMapping("/importInfo") public AjaxResult importPatientList(MultipartFile file) throws Exception { // 判断excel里面是否有数据/文件格式 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientvisitrecord/PatientVisitRecordController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientvisitrecord/PatientVisitRecordController.java index 0221df0c..35a9076d 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientvisitrecord/PatientVisitRecordController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/patientvisitrecord/PatientVisitRecordController.java @@ -4,12 +4,14 @@ import com.xinelu.common.annotation.Log; import com.xinelu.common.constant.Constants; import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.domain.R; import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordImportDto; +import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordSaveDto; import com.xinelu.manage.service.patientvisitrecord.IPatientVisitRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -19,6 +21,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -97,13 +100,26 @@ public class PatientVisitRecordController extends BaseController { return toAjax(patientVisitRecordService.insertPatientVisitRecord(patientVisitRecord)); } - /** + /** + * 患者配置——就诊信息保存 + */ + @ApiOperation("患者配置——就诊信息保存") + @PreAuthorize("@ss.hasPermi('manage:visit:add')") + @Log(title = "患者就诊记录基本信息", businessType = BusinessType.INSERT) + @PostMapping("saveRecord") + public R saveRecord(@Validated @RequestBody PatientVisitRecordSaveDto saveDto) { + patientVisitRecordService.saveRecord(saveDto); + return R.ok(); + } + + + /** * 修改患者就诊记录基本信息 */ @PreAuthorize("@ss.hasPermi('manage:visit:edit')") @Log(title = "患者就诊记录基本信息", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody PatientVisitRecord patientVisitRecord) { + public AjaxResult edit(@RequestBody PatientVisitRecordSaveDto patientVisitRecord) { return toAjax(patientVisitRecordService.updatePatientVisitRecord(patientVisitRecord)); } @@ -124,9 +140,10 @@ public class PatientVisitRecordController extends BaseController { * @return 导入结果 * @throws Exception 异常信息 */ + @ApiOperation(value = "导入患者就诊记录", notes = "patientType: outpatient:门诊患者,inhospital:在院患者,discharged:出院患者") @Log(title = "导入患者就诊信息", businessType = BusinessType.IMPORT) @PostMapping("/importPatientInfo") - public AjaxResult importPatientList(MultipartFile file, @RequestParam(value = "patientType") String patientType) throws Exception { + public AjaxResult importPatientList(MultipartFile file, @RequestParam(value = "patientType") String patientType) throws Exception { // 判断excel里面是否有数据/文件格式 if (Objects.isNull(file) || StringUtils.isBlank(file.getOriginalFilename())) { return AjaxResult.error("请选择需要导入的文件!"); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/projectdevice/ProjectDeviceController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/projectdevice/ProjectDeviceController.java index 80366369..0dd7fbfe 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/projectdevice/ProjectDeviceController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/projectdevice/ProjectDeviceController.java @@ -33,11 +33,11 @@ public class ProjectDeviceController extends BaseController { @Resource private IProjectDeviceService projectDeviceService; -/** - * 查询检测项目设备列表 - */ -@PreAuthorize("@ss.hasPermi('manage:projectdevice:list')") -@GetMapping("/list") + /** + * 查询检测项目设备列表 + */ + @PreAuthorize("@ss.hasPermi('manage:projectdevice:list')") + @GetMapping("/list") public TableDataInfo list(ProjectDevice projectDevice) { startPage(); List list = projectDeviceService.selectProjectDeviceList(projectDevice); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/projectresult/ProjectResultController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/projectresult/ProjectResultController.java index d9907636..3f053824 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/projectresult/ProjectResultController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/projectresult/ProjectResultController.java @@ -41,6 +41,7 @@ public class ProjectResultController extends BaseController { /** * 查询检测项目结果列表 */ + @ApiOperation("查询检测项目结果列表") @PreAuthorize("@ss.hasPermi('manage:projectresult:list')") @GetMapping("/list") public TableDataInfo list(ProjectResult projectResult) { @@ -64,6 +65,7 @@ public class ProjectResultController extends BaseController { /** * 获取检测项目结果详细信息 */ + @ApiOperation("根据id获取检测项目结果详细信息") @PreAuthorize("@ss.hasPermi('manage:projectresult:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/project/Project.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/project/Project.java index f6ce23ae..9e2c4b13 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/project/Project.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/project/Project.java @@ -4,6 +4,7 @@ import com.xinelu.common.annotation.Excel; import com.xinelu.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -51,9 +52,9 @@ public class Project extends BaseEntity { @Excel(name = "项目别名") private String projectAlias; - /** 是否启用,0:是,1:否 */ - @ApiModelProperty(value = "是否启用,0:是,1:否") - @Excel(name = "是否启用,0:是,1:否") + /** 是否启用,0:否,1:是 */ + @ApiModelProperty(value = "是否启用,0:否,1:是") + @Excel(name = "是否启用,0:否,1:是") private Integer enableStatus; /** 判断模式,定量:QUANTIFY,定性:QUALITATIVE */ @@ -64,12 +65,12 @@ public class Project extends BaseEntity { /** 项目指标最大值 */ @ApiModelProperty(value = "项目指标最大值") @Excel(name = "项目指标最大值") - private Integer maxValue; + private BigDecimal maxValue; /** 项目指标最小值 */ @ApiModelProperty(value = "项目指标最小值") @Excel(name = "项目指标最小值") - private Integer minValue; + private BigDecimal minValue; /** 项目指标默认值 */ @ApiModelProperty(value = "项目指标默认值") diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectdevice/ProjectDevice.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectdevice/ProjectDevice.java index 84c1c6b9..8a35d1a5 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectdevice/ProjectDevice.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectdevice/ProjectDevice.java @@ -1,5 +1,6 @@ package com.xinelu.manage.domain.projectdevice; +import com.fasterxml.jackson.annotation.JsonFormat; import com.xinelu.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -50,9 +51,9 @@ public class ProjectDevice extends BaseEntity { @ApiModelProperty("设备编码") private String deviceCode; /** - * 设备状态 + * 设备状态,绑定:BIND,解绑:UN_BIND */ - @ApiModelProperty("设备状态") + @ApiModelProperty("设备状态,绑定:BIND,解绑:UN_BIND") private String deviceStatus; /** * 备注信息 @@ -63,6 +64,7 @@ public class ProjectDevice extends BaseEntity { * 设备绑定时间 */ @ApiModelProperty("设备绑定时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date deviceBindTime; /** * 设备解绑时间 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectlastresult/ProjectLastResult.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectlastresult/ProjectLastResult.java index 9ac32e86..2f3ecfcc 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectlastresult/ProjectLastResult.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectlastresult/ProjectLastResult.java @@ -4,6 +4,7 @@ import com.xinelu.common.annotation.Excel; import com.xinelu.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; import java.util.Date; import lombok.Data; @@ -94,12 +95,12 @@ public class ProjectLastResult extends BaseEntity { * 项目指标最大值 */ @ApiModelProperty("项目指标最大值") - private Integer maxValue; + private BigDecimal maxValue; /** * 项目指标最小值 */ @ApiModelProperty("项目指标最小值") - private Integer minValue; + private BigDecimal minValue; /** * 项目指标默认值 */ diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectresult/ProjectResult.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectresult/ProjectResult.java index 340357ef..73ad82cf 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectresult/ProjectResult.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/projectresult/ProjectResult.java @@ -5,6 +5,7 @@ import com.xinelu.common.annotation.Excel; import com.xinelu.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.math.BigDecimal; import java.util.Date; import lombok.AllArgsConstructor; import lombok.Data; @@ -102,12 +103,12 @@ private static final long serialVersionUID=1L; /** 项目指标最大值 */ @ApiModelProperty(value = "项目指标最大值") @Excel(name = "项目指标最大值") - private Integer maxValue; + private BigDecimal maxValue; /** 项目指标最小值 */ @ApiModelProperty(value = "项目指标最小值") @Excel(name = "项目指标最小值") - private Integer minValue; + private BigDecimal minValue; /** 项目指标默认值 */ @ApiModelProperty(value = "项目指标默认值") diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordImportDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordImportDto.java index 64f759dd..70ecb3cf 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordImportDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordImportDto.java @@ -83,6 +83,10 @@ public class PatientVisitRecordImportDto { @Excel(name = "住院号") private String inHospitalNumber; + @ApiModelProperty(value = "门诊号") + @Excel(name = "门诊号") + private String outpatientNumber; + /** 责任护士 */ @ApiModelProperty(value = "责任护士") @Excel(name = "责任护士") diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordSaveDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordSaveDto.java new file mode 100644 index 00000000..5f8a47f2 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientvisitrecord/PatientVisitRecordSaveDto.java @@ -0,0 +1,110 @@ +package com.xinelu.manage.dto.patientvisitrecord; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.Date; +import javax.validation.constraints.NotBlank; +import lombok.Data; + +/** + * @description: 患者配置——就诊信息保存传输对象 + * @author: haown + * @create: 2024-03-13 14:46 + **/ +@ApiModel("患者配置——就诊信息保存传输对象") +@Data +public class PatientVisitRecordSaveDto { + + /** 患者表id */ + @ApiModelProperty(value = "患者表id") + @NotBlank(message = "患者数据不能为空") + private Long patientId; + + /** + * 就诊类型,门诊:OUTPATIENT_SERVICE,住院:BE_HOSPITALIZED + */ + @ApiModelProperty(value = "就诊类型,门诊:OUTPATIENT_SERVICE,住院:BE_HOSPITALIZED") + @NotBlank(message = "就诊类型不能为空") + private String visitType; + + /** 主要诊断 */ + @ApiModelProperty(value = "主要诊断") + @NotBlank(message = "主要诊断不能为空") + private String mainDiagnosis; + + /** 就诊流水号 */ + @ApiModelProperty(value = "就诊流水号") + @NotBlank(message = "就诊流水号不能为空") + private String visitSerialNumber; + + /** 主治医生id */ + @ApiModelProperty(value = "主治医生id") + @NotBlank(message = "主治医生不能为空") + private Long attendingPhysicianId; + + /** 主治医生姓名 */ + @ApiModelProperty(value = "主治医生姓名") + private String attendingPhysicianName; + + /** 所属医院id */ + @ApiModelProperty(value = "所属医院id") + @Excel(name = "所属医院id") + private Long hospitalAgencyId; + + /** 所属医院名称 */ + @ApiModelProperty(value = "所属医院名称") + @Excel(name = "所属医院名称") + private String hospitalAgencyName; + + /** 所属院区id */ + @ApiModelProperty(value = "所属院区id") + @Excel(name = "所属院区id") + private Long campusAgencyId; + + /** 所属院区名称 */ + @ApiModelProperty(value = "所属院区名称") + @Excel(name = "所属院区名称") + private String campusAgencyName; + + /** 所属科室id */ + @NotBlank(message = "科室不能为空") + @ApiModelProperty(value = "所属科室id") + private Long departmentId; + + /** 所属科室名称 */ + @ApiModelProperty(value = "所属科室名称") + private String departmentName; + + /** 入院时间 */ + @ApiModelProperty(value = "入院时间") + @NotBlank(message = "入院时间不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date admissionTime; + + /** 出院时间 */ + @ApiModelProperty(value = "出院时间") + @NotBlank(message = "出院时间不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date dischargeTime; + + @ApiModelProperty(value = "住院/门诊号") + private String inHospitalNumber; + + /** 入院病历信息,存储患者入院的整个病历信息 */ + @ApiModelProperty(value = "入院病历信息,存储患者入院的整个病历信息") + @NotBlank(message = "入院病历不能为空") + private String inHospitalInfo; + + /** 出院病历信息,存储患者出院的整个病历信息 */ + @ApiModelProperty(value = "出院病历信息,存储患者出院的整个病历信息") + @NotBlank(message = "出院病历不能为空") + private String outHospitalInfo; + + /** 门诊记录信息(就诊记录-门诊记录) */ + @ApiModelProperty(value = "门诊记录信息") + @NotBlank(message = "门诊记录信息不能为空") + private String outpatientVisitInfo; + +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/project/ProjectMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/project/ProjectMapper.java index a42e0f4a..638232c9 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/project/ProjectMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/project/ProjectMapper.java @@ -2,7 +2,7 @@ package com.xinelu.manage.mapper.project; import com.xinelu.manage.domain.project.Project; import java.util.List; - +import org.apache.ibatis.annotations.Param; /** * 检测项目Mapper接口 @@ -58,4 +58,6 @@ public interface ProjectMapper { * @return 结果 */ public int deleteProjectByIds(Long[] ids); + + List hasSameCodeProject(@Param("id")Long id, @Param("groupId")Long groupId, @Param("projectCode")String projectCode); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/projectgroup/ProjectGroupMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/projectgroup/ProjectGroupMapper.java index 1e15d504..b1cd7e55 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/projectgroup/ProjectGroupMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/projectgroup/ProjectGroupMapper.java @@ -62,4 +62,6 @@ public interface ProjectGroupMapper { * @return 结果 */ public int deleteProjectGroupByIds(Long[] ids); + + List hasSameCodeGroup(@Param("id")Long id, @Param("groupCode")String groupCode); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java index 903b3762..89c7fdb8 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientprehospitalization/impl/PatientPreHospitalizationServiceImpl.java @@ -78,6 +78,7 @@ public class PatientPreHospitalizationServiceImpl implements IPatientPreHospital preHospitalization.setPatientId(patientList.get(0).getId()); } // 保存预住院信息 + preHospitalization.setDelFlag(0); preHospitalization.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); preHospitalization.setCreateTime(DateUtils.getNowDate()); return preHospitalizationMapper.insertSelective(preHospitalization); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/IPatientVisitRecordService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/IPatientVisitRecordService.java index 79be4e0e..65c5ad8a 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/IPatientVisitRecordService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/IPatientVisitRecordService.java @@ -4,7 +4,9 @@ import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordImportDto; +import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordSaveDto; import java.util.List; +import org.springframework.web.bind.annotation.RequestBody; /** * 患者就诊记录基本信息Service接口 @@ -37,13 +39,20 @@ public interface IPatientVisitRecordService { */ public int insertPatientVisitRecord(PatientVisitRecord patientVisitRecord); + /** + * 患者配置——就诊信息保存 + * @param saveDto + * @return + */ + int saveRecord(@RequestBody PatientVisitRecordSaveDto saveDto); + /** * 修改患者就诊记录基本信息 * - * @param patientVisitRecord 患者就诊记录基本信息 + * @param updDto 患者就诊记录基本信息 * @return 结果 */ - public int updatePatientVisitRecord(PatientVisitRecord patientVisitRecord); + public int updatePatientVisitRecord(PatientVisitRecordSaveDto updDto); /** * 批量删除患者就诊记录基本信息 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java index c2aa39d1..0bee65c1 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java @@ -1,7 +1,7 @@ package com.xinelu.manage.service.patientvisitrecord.impl; +import com.xinelu.common.constant.Constants; import com.xinelu.common.constant.NodeTypeConstants; -import com.xinelu.common.constant.PatientTypeConstants; import com.xinelu.common.constant.VisitTypeConstants; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.exception.ServiceException; @@ -9,7 +9,6 @@ import com.xinelu.common.utils.DateUtils; import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.StringUtils; import com.xinelu.common.utils.bean.BeanUtils; -import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.common.utils.regex.RegexUtil; import com.xinelu.manage.domain.agency.Agency; import com.xinelu.manage.domain.department.Department; @@ -18,13 +17,15 @@ import com.xinelu.manage.domain.patientvisitrecord.PatientVisitRecord; import com.xinelu.manage.dto.patientinfo.PatientInfoDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordDto; import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordImportDto; +import com.xinelu.manage.dto.patientvisitrecord.PatientVisitRecordSaveDto; import com.xinelu.manage.mapper.agency.AgencyMapper; import com.xinelu.manage.mapper.department.DepartmentMapper; import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; import com.xinelu.manage.mapper.patientvisitrecord.PatientVisitRecordMapper; import com.xinelu.manage.service.patientvisitrecord.IPatientVisitRecordService; -import java.io.File; -import java.io.FileInputStream; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -83,19 +84,46 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService */ @Override public int insertPatientVisitRecord(PatientVisitRecord patientVisitRecord) { - patientVisitRecord.setCreateTime(DateUtils.getNowDate()); - return patientVisitRecordMapper.insertPatientVisitRecord(patientVisitRecord); + patientVisitRecord.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); + patientVisitRecord.setCreateTime(DateUtils.getNowDate()); + return patientVisitRecordMapper.insertPatientVisitRecord(patientVisitRecord); } - /** + @Override public int saveRecord(PatientVisitRecordSaveDto saveDto) { + PatientVisitRecord patientVisitRecord = new PatientVisitRecord(); + // 查询患者信息 + PatientInfo patientInfo = patientMapper.selectPatientInfoById(saveDto.getPatientId()); + BeanUtils.copyBeanProp(patientVisitRecord, patientInfo); + BeanUtils.copyBeanProp(patientVisitRecord, saveDto); + patientVisitRecord.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); + patientVisitRecord.setCreateTime(DateUtils.getNowDate()); + // 住院时间,出院时间-入院时间 + LocalDate admissionTime = saveDto.getAdmissionTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate dischargeTime = saveDto.getDischargeTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + long daysBetween = ChronoUnit.DAYS.between(admissionTime, dischargeTime); + patientVisitRecord.setHospitalizationDays((int) daysBetween + 1); + patientVisitRecordMapper.insertPatientVisitRecord(patientVisitRecord); + return 0; + } + + /** * 修改患者就诊记录基本信息 * - * @param patientVisitRecord 患者就诊记录基本信息 + * @param updDto 患者就诊记录基本信息 * @return 结果 */ @Override - public int updatePatientVisitRecord(PatientVisitRecord patientVisitRecord) { - patientVisitRecord.setUpdateTime(DateUtils.getNowDate()); + public int updatePatientVisitRecord(PatientVisitRecordSaveDto updDto) { + PatientVisitRecord patientVisitRecord = new PatientVisitRecord(); + BeanUtils.copyBeanProp(patientVisitRecord, updDto); + patientVisitRecord.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); + patientVisitRecord.setUpdateTime(DateUtils.getNowDate()); + // 住院时间,出院时间-入院时间 + LocalDate admissionTime = updDto.getAdmissionTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate dischargeTime = updDto.getDischargeTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + long daysBetween = ChronoUnit.DAYS.between(admissionTime, dischargeTime); + patientVisitRecord.setHospitalizationDays((int) daysBetween + 1); + patientVisitRecordMapper.insertPatientVisitRecord(patientVisitRecord); return patientVisitRecordMapper.updatePatientVisitRecord(patientVisitRecord); } @@ -142,17 +170,15 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService patientVisitRecord.setCreateTime(DateUtils.getNowDate()); patientVisitRecord.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); switch (patientType) { - // 预住院患者 - case PatientTypeConstants.PRE_HOSPITALIZED_PATIENT: - break; // 在院患者 - case PatientTypeConstants.IN_HOSPITAL_PATIENT: - case PatientTypeConstants.DISCHARGED_PATIENT: + case Constants.IN_HOSPITAL: + case Constants.DISCHARGED: patientVisitRecord.setVisitType(VisitTypeConstants.BE_HOSPITALIZED); break; // 门诊患者 - case PatientTypeConstants.OUTPATIENT: + case Constants.OUTPATIENT: patientVisitRecord.setVisitType(VisitTypeConstants.OUTPATIENT_SERVICE); + patientVisitRecord.setInHospitalNumber(item.getOutpatientNumber());// 门诊、住院号共用一个字段 break; } // 根据身份证号查询患者信息 @@ -250,14 +276,10 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService } public static void main(String[] args) { - String filePath = "E:\\在院患者导入.xlsx"; - ExcelUtil util = new ExcelUtil<>(PatientVisitRecordImportDto.class); - File file = new File(filePath); - try { - List list = util.importExcel(new FileInputStream(file)); - //importPatientList(list); - } catch (Exception e) { - throw new RuntimeException(e); - } + LocalDate date1 = LocalDate.of(2020, 1, 1); + LocalDate date2 = LocalDate.of(2020, 1, 2); + + long daysBetween = ChronoUnit.DAYS.between(date1, date2); + System.out.println("Days between: " + daysBetween); } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/project/impl/ProjectServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/project/impl/ProjectServiceImpl.java index 31eda437..436b1708 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/project/impl/ProjectServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/project/impl/ProjectServiceImpl.java @@ -1,11 +1,15 @@ package com.xinelu.manage.service.project.impl; +import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.DateUtils; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.StringUtils; import com.xinelu.manage.domain.project.Project; import com.xinelu.manage.mapper.project.ProjectMapper; import com.xinelu.manage.service.project.IProjectService; import java.util.List; import javax.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; /** @@ -49,8 +53,21 @@ public class ProjectServiceImpl implements IProjectService { */ @Override public int insertProject(Project project) { - project.setCreateTime(DateUtils.getNowDate()); - return projectMapper.insertProject(project); + if (StringUtils.isBlank(project.getProjectName())) { + throw new ServiceException("请输入检测项目名称"); + } + if (StringUtils.isBlank(project.getProjectCode())) { + throw new ServiceException("请输入检测项目编码"); + } + // 查询是否有相同code的检测项目 + List projects = projectMapper.hasSameCodeProject(null, project.getGroupId(), project.getProjectCode()); + if (CollectionUtils.isNotEmpty(projects)) { + throw new ServiceException("已存在编码为【"+project.getProjectCode() +"】的检测项目"); + } + project.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); + project.setCreateTime(DateUtils.getNowDate()); + project.setDelFlag(0); + return projectMapper.insertProject(project); } /** @@ -61,7 +78,13 @@ public class ProjectServiceImpl implements IProjectService { */ @Override public int updateProject(Project project) { - project.setUpdateTime(DateUtils.getNowDate()); + // 查询是否有相同code的检测项目 + List projects = projectMapper.hasSameCodeProject(project.getId(), project.getGroupId(), project.getProjectCode()); + if (CollectionUtils.isNotEmpty(projects)) { + throw new ServiceException("已存在编码为【"+project.getProjectCode() +"】的检测项目"); + } + project.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); + project.setUpdateTime(DateUtils.getNowDate()); return projectMapper.updateProject(project); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/projectdevice/impl/ProjectDeviceServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/projectdevice/impl/ProjectDeviceServiceImpl.java index 3e5c2c03..300377a4 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/projectdevice/impl/ProjectDeviceServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/projectdevice/impl/ProjectDeviceServiceImpl.java @@ -1,11 +1,16 @@ package com.xinelu.manage.service.projectdevice.impl; +import com.xinelu.common.constant.DeviceStatusConstants; +import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.DateUtils; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.StringUtils; import com.xinelu.manage.domain.projectdevice.ProjectDevice; import com.xinelu.manage.mapper.projectdevice.ProjectDeviceMapper; import com.xinelu.manage.service.projectdevice.IProjectDeviceService; import java.util.List; import javax.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; /** @@ -49,8 +54,30 @@ public class ProjectDeviceServiceImpl implements IProjectDeviceService { */ @Override public int insertProjectDevice(ProjectDevice projectDevice) { - projectDevice.setCreateTime(DateUtils.getNowDate()); - return projectDeviceMapper.insertProjectDevice(projectDevice); + // 查询居民是否绑定过相同类型的设备 + if (StringUtils.isBlank(projectDevice.getDeviceType())) { + throw new ServiceException("请选择设备类型"); + } + ProjectDevice query = new ProjectDevice(); + query.setPatientId(projectDevice.getPatientId()); + query.setDeviceType(projectDevice.getDeviceType()); + query.setDeviceStatus(DeviceStatusConstants.BIND); + List deviceList = projectDeviceMapper.selectProjectDeviceList(projectDevice); + if (CollectionUtils.isNotEmpty(deviceList)) { + throw new ServiceException("该居民已绑定过相同设备类型的设备,请解绑后重新绑定"); + } + // 根据设备编码查询是否已被绑定 + query.setPatientId(null); + query.setDeviceCode(projectDevice.getDeviceCode()); + deviceList = projectDeviceMapper.selectProjectDeviceList(projectDevice); + if (CollectionUtils.isNotEmpty(deviceList)) { + throw new ServiceException("该设备已被绑定,请解绑后重新绑定"); + } + projectDevice.setDeviceStatus(DeviceStatusConstants.BIND); + projectDevice.setDeviceBindTime(DateUtils.getNowDate()); + projectDevice.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); + projectDevice.setCreateTime(DateUtils.getNowDate()); + return projectDeviceMapper.insertProjectDevice(projectDevice); } /** @@ -61,7 +88,8 @@ public class ProjectDeviceServiceImpl implements IProjectDeviceService { */ @Override public int updateProjectDevice(ProjectDevice projectDevice) { - projectDevice.setUpdateTime(DateUtils.getNowDate()); + projectDevice.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); + projectDevice.setUpdateTime(DateUtils.getNowDate()); return projectDeviceMapper.updateProjectDevice(projectDevice); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/projectgroup/impl/ProjectGroupServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/projectgroup/impl/ProjectGroupServiceImpl.java index 80db55fc..d6bb22af 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/projectgroup/impl/ProjectGroupServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/projectgroup/impl/ProjectGroupServiceImpl.java @@ -3,6 +3,7 @@ package com.xinelu.manage.service.projectgroup.impl; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.DateUtils; import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.StringUtils; import com.xinelu.manage.domain.projectgroup.ProjectGroup; import com.xinelu.manage.dto.projectgroup.ProjectGroupSaveListDto; import com.xinelu.manage.mapper.projectgroup.ProjectGroupMapper; @@ -54,6 +55,17 @@ public class ProjectGroupServiceImpl implements IProjectGroupService { */ @Override public int insertProjectGroup(ProjectGroup projectGroup) { + if (StringUtils.isBlank(projectGroup.getGroupName())) { + throw new ServiceException("请输入检测项目分组名称"); + } + if (StringUtils.isBlank(projectGroup.getGroupCode())) { + throw new ServiceException("请输入检测项目分组编码"); + } + // 查询是否有相同编码的项目组 + List list = projectGroupMapper.hasSameCodeGroup(null, projectGroup.getGroupCode()); + if (CollectionUtils.isNotEmpty(list)) { + throw new ServiceException("已存在编码为【"+projectGroup.getGroupCode() +"】的分组"); + } projectGroup.setCreateTime(DateUtils.getNowDate()); projectGroup.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); projectGroup.setDelFlag(0); @@ -65,6 +77,11 @@ public class ProjectGroupServiceImpl implements IProjectGroupService { List list = saveDto.getList(); if (CollectionUtils.isNotEmpty(list)) { for (ProjectGroup projectGroup : list) { + // 查询是否有相同编码的项目组 + List groupList = projectGroupMapper.hasSameCodeGroup(null, projectGroup.getGroupCode()); + if (CollectionUtils.isNotEmpty(groupList)) { + throw new ServiceException("已存在编码为【"+projectGroup.getGroupCode() +"】的分组"); + } projectGroup.setCreateTime(DateUtils.getNowDate()); projectGroup.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); projectGroup.setDelFlag(0); @@ -86,6 +103,11 @@ public class ProjectGroupServiceImpl implements IProjectGroupService { */ @Override public int updateProjectGroup(ProjectGroup projectGroup) { + // 查询是否有相同编码的项目组 + List groupList = projectGroupMapper.hasSameCodeGroup(projectGroup.getId(), projectGroup.getGroupCode()); + if (CollectionUtils.isNotEmpty(groupList)) { + throw new ServiceException("已存在编码为【"+projectGroup.getGroupCode() +"】的分组"); + } projectGroup.setUpdateTime(DateUtils.getNowDate()); projectGroup.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); return projectGroupMapper.updateProjectGroup(projectGroup); diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientprehospitalization/PatientPreHospitalizationMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientprehospitalization/PatientPreHospitalizationMapper.xml index 3ed61a32..cad2d1c9 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientprehospitalization/PatientPreHospitalizationMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientprehospitalization/PatientPreHospitalizationMapper.xml @@ -291,7 +291,7 @@ p.department_name,p.ward_name, p.appointment_treatment_group,p.registration_no,p.registration_date, p.appointment_date,p.certificate_issuing_doctor_id,p.certificate_issuing_doctor_name - from patient_info patient left join patient_pre_hospitalization p + from patient_info patient left join patient_pre_hospitalization p on p.patient_id = patient.id p.del_flag = 0 and patient.patient_type = 'PRE_HOSPITALIZED_PATIENT' diff --git a/postdischarge-manage/src/main/resources/mapper/manage/project/ProjectMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/project/ProjectMapper.xml index 4879e421..9658d9d8 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/project/ProjectMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/project/ProjectMapper.xml @@ -34,6 +34,7 @@ + + + del_flag = 0 + + and id != #{id} + + + and group_id = #{groupId} + + + and project_code = #{projectCode} + + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/projectdevice/ProjectDeviceMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/projectdevice/ProjectDeviceMapper.xml index 42b822db..1f313d9b 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/projectdevice/ProjectDeviceMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/projectdevice/ProjectDeviceMapper.xml @@ -31,9 +31,9 @@ + + + del_flag = 0 + + and id != #{id} + + + and group_code = #{groupCode} + + + \ No newline at end of file