质控参数维护

This commit is contained in:
jiangs 2025-12-31 09:46:13 +08:00
parent 10fb851023
commit b4af9dac82
13 changed files with 368 additions and 1 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 = "质控设置";
}

View File

@ -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<ComOpt> comOptList){
return qualitySetService.saveOpt(comOptList);
}
@Log(title = SysLogConstants.QCRULES_LOG,businessType = BusinessType.UPDATE_DETAIL)
@ApiOperation("保存质控项目数据")
@PostMapping("/saveQCItem")
public Result saveQCItem(@RequestBody List<QcRulesDTO> 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);
}
}

View File

@ -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<QcFrmsmpl> queryDataFromSample(String yq);
QcFrmsmpl queryOne(QcFrmsmpl qcFrmsmpl);
}

View File

@ -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<QcSample> queryQcSample(QcSample qcSample);
}

View File

@ -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);
}

View File

@ -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<QcSample> qcSampleList;
private List<QcFrmsmpl> 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; //仪器
}

View File

@ -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<QcRulesDTO> QcRulesDTOList);
Result queryRules(QcRules qcRules);
Result queryDataFromSample(String yq);
Result queryQcSample(QcSample qcSample);
Result saveQcSample(QcSampleDTO qcSampleDTO);
}

View File

@ -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<ComOpt> 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<QcFrmsmpl> qcFrmsmplList = qcFrmsmplMapper.queryDataFromSample(yq);
return new Result("0","查询成功!",qcFrmsmplList);
}
@Override
public Result queryQcSample(QcSample qcSample) {
List<QcSample> qcSampleList = qcRulesMapper.queryQcSample(qcSample);
return new Result("0","查询成功!",qcSampleList);
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result saveQcSample(QcSampleDTO qcSampleDTO) {
List<QcSample> qcSampleList = qcSampleDTO.getQcSampleList();
List<QcFrmsmpl> 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","保存数据成功!");
}
}

View File

@ -0,0 +1,29 @@
<?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.czlis.liswork.mapper.QcFrmsmplMapper">
<insert id="insert">
insert into qc_frmsmpl(yq, ybh, zkph, cs, batchno) values (#{yq},#{ybh},#{zkph},#{cs},#{batchno})
</insert>
<update id="update">
update qc_frmsmpl set
<if test="zkph != null and zkph != ''">zkph = #{zkph},</if>
<if test="cs != null">cs = #{cs},</if>
<if test="batchno != null and batchno != ''">batchno = #{batchno},</if>
where yq = #{yq} and ybh = #{ybh}
</update>
<delete id="delete">
delete from qc_frmsmpl where yq = #{yq} and ybh = #{ybh}
</delete>
<select id="queryDataFromSample" resultType="com.czlis.common.core.domain.entity.lis.QcFrmsmpl">
select * from qc_frmsmpl where yq = #{yq}
</select>
<select id="queryOne" resultType="com.czlis.common.core.domain.entity.lis.QcFrmsmpl">
select * from qc_frmsmpl where yq = #{yq} and ybh = #{ybh}
</select>
</mapper>

View File

@ -18,4 +18,12 @@
delete from qc_rules where yq = #{yq} and xmdh = #{xmdh}
</delete>
<select id="queryQcSample" resultType="com.czlis.common.core.domain.entity.lis.QcSample">
<![CDATA[
SELECT qc_sample.yq , qc_sample.xmdh , qc_sample.zkph , qc_sample.ksrq , qc_sample.zkpph , qc_sample.ld , qc_sample.cv , qc_sample.sd , qc_sample.zkbz , qc_sample.bc , qc_sample.ff , qc_sample.sjph , qc_sample.endrq , qc_sample.qcsrc , qc_sample.standsrc , qc_sample.qccv FROM qc_sample WHERE ( qc_sample.yq = #{yq} ) and ( qc_sample.xmdh = #{xmdh} ) and ( qc_sample.zkph >= '1' ) and ( qc_sample.zkph <= #{zkph} ) and ( isnumeric(zkph) = 1 )
]]>
</select>
</mapper>

View File

@ -0,0 +1,80 @@
<?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.czlis.liswork.mapper.QcSampleMapper">
<insert id="insert">
insert into qc_sample(
<if test="zkpph != null and zkpph != ''">zkpph,</if>
<if test="ld != null and ld != ''">ld,</if>
<if test="cv != null">cv,</if>
<if test="sd != null">sd,</if>
<if test="zkbz != null">zkbz,</if>
<if test="bc != null and bc != ''">bc,</if>
<if test="ff != null and ff != ''">ff,</if>
<if test="sjph != null and sjph != ''">sjph,</if>
<if test="sm != null and sm != ''">sm,</if>
<if test="bz1 != null and bz1 != ''">bz1,</if>
<if test="endrq != null ">endrq,</if>
<if test="standsrc != null and standsrc != ''">standsrc,</if>
<if test="outdt != null ">outdt,</if>
<if test="stopdate != null ">stopdate,</if>
<if test="qcsrc != null and qcsrc != ''">qcsrc,</if>
<if test="expiredt != null ">expiredt,</if>
<if test="qccv != null ">qccv,</if>
yq, xmdh, zkph, ksrq
values(
<if test="zkpph != null and zkpph != ''">#{zkpph},</if>
<if test="ld != null and ld != ''">#{ld},</if>
<if test="cv != null">#{cv},</if>
<if test="sd != null">#{sd},</if>
<if test="zkbz != null">#{zkbz},</if>
<if test="bc != null and bc != ''">#{bc},</if>
<if test="ff != null and ff != ''">#{ff},</if>
<if test="sjph != null and sjph != ''">#{sjph},</if>
<if test="sm != null and sm != ''">#{sm},</if>
<if test="bz1 != null and bz1 != ''">#{bz1},</if>
<if test="endrq != null ">#{endrq},</if>
<if test="standsrc != null and standsrc != ''">#{standsrc},</if>
<if test="outdt != null ">#{outdt},</if>
<if test="stopdate != null ">#{stopdate},</if>
<if test="qcsrc != null and qcsrc != ''">#{qcsrc},</if>
<if test="expiredt != null ">#{expiredt},</if>
<if test="qccv != null ">#{qccv},</if>
#{yq},#{xmdh},#{zkph},#{ksrq}
)
</insert>
<update id="update">
update qc_sample set
<if test="zkpph != null and zkpph != ''">zkpph = #{zkpph},</if>
<if test="ld != null and ld != ''">ld = #{ld},</if>
<if test="cv != null">cv = #{cv},</if>
<if test="sd != null">sd = #{sd},</if>
<if test="zkbz != null">zkbz = #{zkbz},</if>
<if test="bc != null and bc != ''">bc = #{bc},</if>
<if test="ff != null and ff != ''">ff = #{ff},</if>
<if test="sjph != null and sjph != ''">sjph = #{sjph},</if>
<if test="sm != null and sm != ''">sm = #{sm},</if>
<if test="bz1 != null and bz1 != ''">bz1 = #{bz1},</if>
<if test="endrq != null ">endrq = #{endrq},</if>
<if test="standsrc != null and standsrc != ''">standsrc = #{standsrc},</if>
<if test="outdt != null ">outdt = #{outdt},</if>
<if test="stopdate != null ">stopdate = #{stopdate},</if>
<if test="qcsrc != null and qcsrc != ''">qcsrc = #{qcsrc},</if>
<if test="expiredt != null ">expiredt = #{expiredt},</if>
<if test="qccv != null ">qccv = #{qccv},</if>
yq = #{yq}, xmdh = #{xmdh}, zkph = #{zkph}, ksrq = #{ksrq}
where yq = #{yq} and xmdh = #{xmdh} and zkph = #{zkph} and ksrq = #{ksrq}
</update>
<delete id="delete">
delete from qc_sample where yq = #{yq} and xmdh = #{xmdh} and zkph = #{zkph} and ksrq = #{ksrq}
</delete>
<select id="queryOne" resultType="com.czlis.common.core.domain.entity.lis.QcSample">
select * from qc_sample where yq = #{yq} and xmdh = #{xmdh} and zkph = #{zkph} and ksrq = #{ksrq}
</select>
</mapper>