From b4af9dac828a80018219e701bc2b16ace720f6a7 Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Wed, 31 Dec 2025 09:46:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A8=E6=8E=A7=E5=8F=82=E6=95=B0=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/entity/lis/QcFrmsmpl.java | 16 +++ .../core/domain/entity/lis/QcSample.java | 36 ++++++ .../constants/SysLogConstants.java | 1 + .../controller/qc/QualitySetController.java | 26 +++++ .../czlis/liswork/mapper/QcFrmsmplMapper.java | 13 +++ .../czlis/liswork/mapper/QcRulesMapper.java | 6 + .../czlis/liswork/mapper/QcSampleMapper.java | 10 ++ .../czlis/liswork/pojo/DTO/QcSampleDTO.java | 26 +++++ .../liswork/service/QualitySetService.java | 8 ++ .../impl/qc/QualitySetServiceImpl.java | 110 +++++++++++++++++- .../main/resources/mapper/QcFrmsmplMapper.xml | 29 +++++ .../main/resources/mapper/QcRulesMapper.xml | 8 ++ .../main/resources/mapper/QcSampleMapper.xml | 80 +++++++++++++ 13 files changed, 368 insertions(+), 1 deletion(-) create mode 100644 lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/QcFrmsmpl.java create mode 100644 lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/QcSample.java create mode 100644 liswork/src/main/java/com/czlis/liswork/mapper/QcFrmsmplMapper.java create mode 100644 liswork/src/main/java/com/czlis/liswork/mapper/QcSampleMapper.java create mode 100644 liswork/src/main/java/com/czlis/liswork/pojo/DTO/QcSampleDTO.java create mode 100644 liswork/src/main/resources/mapper/QcFrmsmplMapper.xml create mode 100644 liswork/src/main/resources/mapper/QcSampleMapper.xml diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/QcFrmsmpl.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/QcFrmsmpl.java new file mode 100644 index 0000000..60e41f4 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/QcFrmsmpl.java @@ -0,0 +1,16 @@ +package com.czlis.common.core.domain.entity.lis; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QcFrmsmpl { + private String yq; + private String ybh; + private String zkph; + private Integer cs; + private String batchno; +} diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/QcSample.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/QcSample.java new file mode 100644 index 0000000..8e867d4 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/QcSample.java @@ -0,0 +1,36 @@ +package com.czlis.common.core.domain.entity.lis; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QcSample { + private String yq; + private String xmdh; + private String zkph; + private Date ksrq; + private String zkpph; + private String ld; + private BigDecimal cv; + private BigDecimal sd; + private BigDecimal zkbz; + private String bc; + private String ff; + private String sjph; + private String sm; + private String bz1; + private Date endrq; + private String standsrc; + private Date outdt; + private Date stopdate; + private String qcsrc; + private Integer qc_sampleid; + private Date expiredt; + private BigDecimal qccv; +} diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/constants/SysLogConstants.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/constants/SysLogConstants.java index a2c3c13..f6ab157 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/constants/SysLogConstants.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/constants/SysLogConstants.java @@ -30,4 +30,5 @@ public class SysLogConstants { public static final String XMMEDMAIN_LOG = "细菌抗生素组对照"; public static final String XMKNOWLEDGE_LOG = "知识库"; public static final String LABCHECKRULES_LOG = "高级审核条件"; + public static final String QCRULES_LOG = "质控设置"; } diff --git a/liswork/src/main/java/com/czlis/liswork/controller/qc/QualitySetController.java b/liswork/src/main/java/com/czlis/liswork/controller/qc/QualitySetController.java index 6f472a4..85c82f1 100644 --- a/liswork/src/main/java/com/czlis/liswork/controller/qc/QualitySetController.java +++ b/liswork/src/main/java/com/czlis/liswork/controller/qc/QualitySetController.java @@ -1,10 +1,15 @@ package com.czlis.liswork.controller.qc; +import com.czlis.common.annotation.Log; import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.ComOpt; import com.czlis.common.core.domain.entity.lis.QcRules; +import com.czlis.common.core.domain.entity.lis.QcSample; import com.czlis.common.core.domain.entity.lis.XmInfoNew; +import com.czlis.common.enums.BusinessType; +import com.czlis.interfaceCommon.constants.SysLogConstants; import com.czlis.liswork.pojo.DTO.QcRulesDTO; +import com.czlis.liswork.pojo.DTO.QcSampleDTO; import com.czlis.liswork.service.QualitySetService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -27,12 +32,14 @@ public class QualitySetController { private QualitySetService qualitySetService; + @Log(title = SysLogConstants.QCRULES_LOG,businessType = BusinessType.UPDATE) @ApiOperation("保存数据") @PostMapping("/saveOpt") public Result saveOpt(@RequestBody List comOptList){ return qualitySetService.saveOpt(comOptList); } + @Log(title = SysLogConstants.QCRULES_LOG,businessType = BusinessType.UPDATE_DETAIL) @ApiOperation("保存质控项目数据") @PostMapping("/saveQCItem") public Result saveQCItem(@RequestBody List QcRulesDTOList){ @@ -46,4 +53,23 @@ public class QualitySetController { return qualitySetService.queryRules(qcRules); } + @ApiOperation("普通标本和质控标本对应关系") + @GetMapping("/queryDataFromSample") + public Result queryDataFromSample(String yq){ + return qualitySetService.queryDataFromSample(yq); + } + + @ApiOperation("查询质控品数据") + @GetMapping("/queryQcSample") + public Result queryQcSample(QcSample qcSample){ + return qualitySetService.queryQcSample(qcSample); + } + + @ApiOperation("保存质控品标本数据") + @PostMapping("/saveQcSample") + public Result saveQcSample(@RequestBody QcSampleDTO qcSampleDTO){ + return qualitySetService.saveQcSample(qcSampleDTO); + + } + } diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/QcFrmsmplMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/QcFrmsmplMapper.java new file mode 100644 index 0000000..53257f7 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/mapper/QcFrmsmplMapper.java @@ -0,0 +1,13 @@ +package com.czlis.liswork.mapper; + +import com.czlis.common.core.domain.entity.lis.QcFrmsmpl; + +import java.util.List; + +public interface QcFrmsmplMapper { + void insert(QcFrmsmpl qcFrmsmpl); + void update(QcFrmsmpl qcFrmsmpl); + void delete(QcFrmsmpl qcFrmsmpl); + List queryDataFromSample(String yq); + QcFrmsmpl queryOne(QcFrmsmpl qcFrmsmpl); +} diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/QcRulesMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/QcRulesMapper.java index 5278983..a6d9b75 100644 --- a/liswork/src/main/java/com/czlis/liswork/mapper/QcRulesMapper.java +++ b/liswork/src/main/java/com/czlis/liswork/mapper/QcRulesMapper.java @@ -1,6 +1,10 @@ package com.czlis.liswork.mapper; +import com.czlis.common.core.domain.entity.lis.QcFrmsmpl; import com.czlis.common.core.domain.entity.lis.QcRules; +import com.czlis.common.core.domain.entity.lis.QcSample; + +import java.util.List; public interface QcRulesMapper { @@ -8,4 +12,6 @@ public interface QcRulesMapper { void insert(QcRules qcRules); void update(QcRules qcRules); void delete(QcRules qcRules); + + List queryQcSample(QcSample qcSample); } diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/QcSampleMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/QcSampleMapper.java new file mode 100644 index 0000000..9413758 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/mapper/QcSampleMapper.java @@ -0,0 +1,10 @@ +package com.czlis.liswork.mapper; + +import com.czlis.common.core.domain.entity.lis.QcSample; + +public interface QcSampleMapper { + void insert(QcSample qcSample); + void update(QcSample qcSample); + void delete(QcSample qcSample); + QcSample queryOne(QcSample qcSample); +} diff --git a/liswork/src/main/java/com/czlis/liswork/pojo/DTO/QcSampleDTO.java b/liswork/src/main/java/com/czlis/liswork/pojo/DTO/QcSampleDTO.java new file mode 100644 index 0000000..34a5127 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/pojo/DTO/QcSampleDTO.java @@ -0,0 +1,26 @@ +package com.czlis.liswork.pojo.DTO; + +import com.czlis.common.core.domain.entity.lis.QcFrmsmpl; +import com.czlis.common.core.domain.entity.lis.QcSample; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QcSampleDTO { + private List qcSampleList; + private List qcFrmsmplList; + @ApiModelProperty(value = "质控品个数") + private String QCSAMPLECNT; //质控品个数 + private String REFSAMPLENO; //每日报告参考标本号 + private String QCMODE; //质控模式 + private String qcdisplayotherdot; //质控图显示非画图点 + private String qcavesdbyph; //质控图累积SD/CV值通过批号计算 + private String qc_dotline; //质控图是否画虚线 + private String yq; //仪器 +} diff --git a/liswork/src/main/java/com/czlis/liswork/service/QualitySetService.java b/liswork/src/main/java/com/czlis/liswork/service/QualitySetService.java index db66db7..7bff0d8 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/QualitySetService.java +++ b/liswork/src/main/java/com/czlis/liswork/service/QualitySetService.java @@ -3,8 +3,10 @@ package com.czlis.liswork.service; import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.ComOpt; import com.czlis.common.core.domain.entity.lis.QcRules; +import com.czlis.common.core.domain.entity.lis.QcSample; import com.czlis.common.core.domain.entity.lis.XmInfoNew; import com.czlis.liswork.pojo.DTO.QcRulesDTO; +import com.czlis.liswork.pojo.DTO.QcSampleDTO; import java.util.List; @@ -14,4 +16,10 @@ public interface QualitySetService { Result saveQCItem(List QcRulesDTOList); Result queryRules(QcRules qcRules); + + Result queryDataFromSample(String yq); + + Result queryQcSample(QcSample qcSample); + + Result saveQcSample(QcSampleDTO qcSampleDTO); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/qc/QualitySetServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/qc/QualitySetServiceImpl.java index dbbd3b8..06e01d1 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/qc/QualitySetServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/qc/QualitySetServiceImpl.java @@ -4,10 +4,13 @@ import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.*; import com.czlis.common.utils.ComOptionUtils; import com.czlis.interfaceCommon.mapper.ComOptMapper; -import com.czlis.interfaceCommon.mapper.XmInfoMapper; +import com.czlis.interfaceCommon.utils.CommonUtil; +import com.czlis.liswork.mapper.QcFrmsmplMapper; import com.czlis.liswork.mapper.QcRulesMapper; +import com.czlis.liswork.mapper.QcSampleMapper; import com.czlis.liswork.mapper.dict.ReportItemMapper; import com.czlis.liswork.pojo.DTO.QcRulesDTO; +import com.czlis.liswork.pojo.DTO.QcSampleDTO; import com.czlis.liswork.service.QualitySetService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -26,6 +29,10 @@ public class QualitySetServiceImpl implements QualitySetService { ReportItemMapper reportItemMapper; @Autowired QcRulesMapper qcRulesMapper; + @Autowired + QcFrmsmplMapper qcFrmsmplMapper; + @Autowired + QcSampleMapper qcSampleMapper; @Override public Result saveOpt(List comOptList) { @@ -96,4 +103,105 @@ public class QualitySetServiceImpl implements QualitySetService { QcRules qcRulesOne = qcRulesMapper.queryOne(qcRules); return new Result("0","获取数据成功!",qcRulesOne); } + + @Override + public Result queryDataFromSample(String yq) { + List qcFrmsmplList = qcFrmsmplMapper.queryDataFromSample(yq); + return new Result("0","查询成功!",qcFrmsmplList); + } + + @Override + public Result queryQcSample(QcSample qcSample) { + List qcSampleList = qcRulesMapper.queryQcSample(qcSample); + return new Result("0","查询成功!",qcSampleList); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public Result saveQcSample(QcSampleDTO qcSampleDTO) { + List qcSampleList = qcSampleDTO.getQcSampleList(); + List qcFrmsmplList = qcSampleDTO.getQcFrmsmplList(); + String yq = qcSampleDTO.getYq(); + for (QcSample qcSample : qcSampleList) { + QcSample qcSample1 = qcSampleMapper.queryOne(qcSample); + if(qcSample1 == null){ + qcSampleMapper.insert(qcSample); + }else{ + qcSampleMapper.update(qcSample); + } + } + + for (QcFrmsmpl qcFrmsmpl : qcFrmsmplList) { + QcFrmsmpl qcFrmsmpl1 = qcFrmsmplMapper.queryOne(qcFrmsmpl); + if(qcFrmsmpl1 == null){ + qcFrmsmplMapper.insert(qcFrmsmpl); + }else{ + qcFrmsmplMapper.update(qcFrmsmpl); + } + } + + //保存参数设置 + ComOpt comOpt = new ComOpt(); + comOpt.setYq(yq); + comOpt.setXxlb("QC"); + comOpt.setXxdh("QCSAMPLECNT"); + comOpt.setXxqz(qcSampleDTO.getQCSAMPLECNT()); + comOpt.setBz("质控品个数"); + ComOpt comOptOne = comOptMapper.getComOptOne(yq, "QCSAMPLECNT"); + if(comOptOne != null){ + comOptMapper.update(comOpt); + }else{ + comOptMapper.add(comOpt); + } + //设置缓存 + ComOptionUtils.setOptCache(yq, "QCSAMPLECNT", comOpt); + + ComOpt comOpt1 = new ComOpt(yq,"REFSAMPLENO","QC",qcSampleDTO.getREFSAMPLENO(),"每日报告参考标本号"); + comOptOne = comOptMapper.getComOptOne(yq, "REFSAMPLENO"); + if(comOptOne != null){ + comOptMapper.update(comOpt1); + }else{ + comOptMapper.add(comOpt1); + } + ComOptionUtils.setOptCache(yq, "REFSAMPLENO", comOpt1); + + ComOpt comOpt2 = new ComOpt(yq,"QCMODE","QC",qcSampleDTO.getQCMODE(),"质控模式"); + comOptOne = comOptMapper.getComOptOne(yq, "QCMODE"); + if(comOptOne != null){ + comOptMapper.update(comOpt2); + }else{ + comOptMapper.add(comOpt2); + } + ComOptionUtils.setOptCache(yq, "QCMODE", comOpt2); + + ComOpt comOpt3 = new ComOpt(yq,"qcdisplayotherdot","QC",qcSampleDTO.getQcdisplayotherdot(),"质控图显示非画图点"); + comOptOne = comOptMapper.getComOptOne(yq, "qcdisplayotherdot"); + if(comOptOne != null){ + comOptMapper.update(comOpt3); + }else{ + comOptMapper.add(comOpt3); + } + ComOptionUtils.setOptCache(yq, "qcdisplayotherdot", comOpt3); + + ComOpt comOpt4 = new ComOpt(yq,"qcavesdbyph","QC",qcSampleDTO.getQcavesdbyph(),"质控图累积SD/CV值通过批号计算"); + comOptOne = comOptMapper.getComOptOne(yq, "qcavesdbyph"); + if(comOptOne != null){ + comOptMapper.update(comOpt4); + }else{ + comOptMapper.add(comOpt4); + } + ComOptionUtils.setOptCache(yq, "qcavesdbyph", comOpt4); + + ComOpt comOpt5 = new ComOpt(yq,"qc_dotline","QC",qcSampleDTO.getQc_dotline(),"质控图是否画虚线"); + comOptOne = comOptMapper.getComOptOne(yq, "qc_dotline"); + if(comOptOne != null){ + comOptMapper.update(comOpt5); + }else{ + comOptMapper.add(comOpt5); + } + ComOptionUtils.setOptCache(yq, "qc_dotline", comOpt5); + + + return new Result("0","保存数据成功!"); + } } diff --git a/liswork/src/main/resources/mapper/QcFrmsmplMapper.xml b/liswork/src/main/resources/mapper/QcFrmsmplMapper.xml new file mode 100644 index 0000000..5d96f18 --- /dev/null +++ b/liswork/src/main/resources/mapper/QcFrmsmplMapper.xml @@ -0,0 +1,29 @@ + + + + + insert into qc_frmsmpl(yq, ybh, zkph, cs, batchno) values (#{yq},#{ybh},#{zkph},#{cs},#{batchno}) + + + + update qc_frmsmpl set + zkph = #{zkph}, + cs = #{cs}, + batchno = #{batchno}, + where yq = #{yq} and ybh = #{ybh} + + + + delete from qc_frmsmpl where yq = #{yq} and ybh = #{ybh} + + + + + + + diff --git a/liswork/src/main/resources/mapper/QcRulesMapper.xml b/liswork/src/main/resources/mapper/QcRulesMapper.xml index 016a0c4..6255b56 100644 --- a/liswork/src/main/resources/mapper/QcRulesMapper.xml +++ b/liswork/src/main/resources/mapper/QcRulesMapper.xml @@ -18,4 +18,12 @@ delete from qc_rules where yq = #{yq} and xmdh = #{xmdh} + + + diff --git a/liswork/src/main/resources/mapper/QcSampleMapper.xml b/liswork/src/main/resources/mapper/QcSampleMapper.xml new file mode 100644 index 0000000..302e41e --- /dev/null +++ b/liswork/src/main/resources/mapper/QcSampleMapper.xml @@ -0,0 +1,80 @@ + + + + + insert into qc_sample( + zkpph, + ld, + cv, + sd, + zkbz, + bc, + ff, + sjph, + sm, + bz1, + endrq, + standsrc, + outdt, + stopdate, + qcsrc, + expiredt, + qccv, + yq, xmdh, zkph, ksrq + values( + #{zkpph}, + #{ld}, + #{cv}, + #{sd}, + #{zkbz}, + #{bc}, + #{ff}, + #{sjph}, + #{sm}, + #{bz1}, + #{endrq}, + #{standsrc}, + #{outdt}, + #{stopdate}, + #{qcsrc}, + #{expiredt}, + #{qccv}, + #{yq},#{xmdh},#{zkph},#{ksrq} + ) + + + + update qc_sample set + zkpph = #{zkpph}, + ld = #{ld}, + cv = #{cv}, + sd = #{sd}, + zkbz = #{zkbz}, + bc = #{bc}, + ff = #{ff}, + sjph = #{sjph}, + sm = #{sm}, + bz1 = #{bz1}, + endrq = #{endrq}, + standsrc = #{standsrc}, + outdt = #{outdt}, + stopdate = #{stopdate}, + qcsrc = #{qcsrc}, + expiredt = #{expiredt}, + qccv = #{qccv}, + yq = #{yq}, xmdh = #{xmdh}, zkph = #{zkph}, ksrq = #{ksrq} + where yq = #{yq} and xmdh = #{xmdh} and zkph = #{zkph} and ksrq = #{ksrq} + + + + + delete from qc_sample where yq = #{yq} and xmdh = #{xmdh} and zkph = #{zkph} and ksrq = #{ksrq} + + + + + +