Compare commits

...

2 Commits

Author SHA1 Message Date
tangw
683f98875c Merge remote-tracking branch 'origin/master' 2026-01-19 17:21:09 +08:00
tangw
522fbf8743 QC 2026-01-19 17:16:32 +08:00
17 changed files with 195 additions and 41 deletions

View File

@ -1,5 +1,7 @@
package com.czlis.common.core.domain.entity.lis; package com.czlis.common.core.domain.entity.lis;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -11,10 +13,16 @@ import java.util.Date;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class QcSample { public class QcSample {
@ApiModelProperty(value = "仪器")
private String yq; private String yq;
@ApiModelProperty(value = "项目代码")
private String xmdh; private String xmdh;
@ApiModelProperty(value = "质控号")
private String zkph; private String zkph;
@ApiModelProperty(value = "开始时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date ksrq; private Date ksrq;
@ApiModelProperty(value = "批号")
private String zkpph; private String zkpph;
private String ld; private String ld;
private BigDecimal cv; private BigDecimal cv;
@ -28,6 +36,7 @@ public class QcSample {
private Date endrq; private Date endrq;
private String standsrc; private String standsrc;
private Date outdt; private Date outdt;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date stopdate; private Date stopdate;
private String qcsrc; private String qcsrc;
private Integer qc_sampleid; private Integer qc_sampleid;

View File

@ -5,6 +5,7 @@ import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.QcBatchno; import com.czlis.common.core.domain.entity.lis.QcBatchno;
import com.czlis.common.core.domain.entity.lis.QcSample; import com.czlis.common.core.domain.entity.lis.QcSample;
import com.czlis.common.core.page.TableDataInfo; import com.czlis.common.core.page.TableDataInfo;
import com.czlis.liswork.pojo.DTO.QcCopySampleDTO;
import com.czlis.liswork.service.QcBatchnoService; import com.czlis.liswork.service.QcBatchnoService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -12,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -64,4 +66,14 @@ public class QcBatchnoController extends BaseController {
public Result saveQcSample(@RequestBody List<QcSample> qcSampleList){ public Result saveQcSample(@RequestBody List<QcSample> qcSampleList){
return qcBatchnoService.saveQcSample(qcSampleList); return qcBatchnoService.saveQcSample(qcSampleList);
} }
@ApiOperation("复制靶值")
@GetMapping("/copyQcSample")
public Result copyQcSample(QcCopySampleDTO qcCopySample){
return qcBatchnoService.copyQcSample(qcCopySample);
}
@ApiOperation("删除质控品参数")
@DeleteMapping("/delQcSample")
public Result delQcSample(QcSample qcSample){
return qcBatchnoService.delQcSample(qcSample);
}
} }

View File

@ -0,0 +1,25 @@
package com.czlis.liswork.controller.qc;
import com.czlis.common.core.controller.BaseController;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.QcVal;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/qcstat")
@Slf4j
@Api(tags = "质控数据统计")
public class QcStatController extends BaseController {
@ApiOperation("查询质控数据")
@GetMapping("/getmonthst")
public Result getmonthst(QcVal qcVal) {
return new Result("0","获取数据成功!");
}
}

View File

@ -3,14 +3,11 @@ package com.czlis.liswork.controller.qc;
import com.czlis.common.annotation.Log; import com.czlis.common.annotation.Log;
import com.czlis.common.core.controller.BaseController; import com.czlis.common.core.controller.BaseController;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.ComOpt;
import com.czlis.common.core.domain.entity.lis.QcFrmsmpl; 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.QcRules;
import com.czlis.common.core.domain.entity.lis.QcSample;
import com.czlis.common.enums.BusinessType; import com.czlis.common.enums.BusinessType;
import com.czlis.interfaceCommon.constants.SysLogConstants; import com.czlis.interfaceCommon.constants.SysLogConstants;
import com.czlis.liswork.pojo.DTO.QcRulesDTO; import com.czlis.liswork.pojo.DTO.QcRulesDTO;
import com.czlis.liswork.pojo.DTO.QcSampleDTO;
import com.czlis.liswork.service.QualitySetService; import com.czlis.liswork.service.QualitySetService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;

View File

@ -1,6 +1,7 @@
package com.czlis.liswork.mapper; package com.czlis.liswork.mapper;
import com.czlis.common.core.domain.entity.lis.QcBatchno; import com.czlis.common.core.domain.entity.lis.QcBatchno;
import com.czlis.common.core.domain.entity.lis.QcSample;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -11,6 +12,7 @@ public interface QcBatchnoMapper {
void insert(QcBatchno qcBatchno); void insert(QcBatchno qcBatchno);
void update(QcBatchno qcBatchno); void update(QcBatchno qcBatchno);
void delete(QcBatchno qcBatchno); void delete(QcBatchno qcBatchno);
List<QcSample> qcSampleonly(@Param("yq") String yq, @Param("zkpph") String zkpph,@Param("zkph") String zkph);
List<Map<String,Object>> qcSampleList(@Param("yq") String yq, @Param("zkpph") String zkpph,@Param("zkph") String zkph); List<Map<String,Object>> qcSampleList(@Param("yq") String yq, @Param("zkpph") String zkpph,@Param("zkph") String zkph);
List<Map<String,Object>> qcSampleByXmdh(@Param("yq") String yq, @Param("zkpph") String zkpph,@Param("zkph") String zkph,@Param("xmdh") String xmdh); List<Map<String,Object>> qcSampleByXmdh(@Param("yq") String yq, @Param("zkpph") String zkpph,@Param("zkph") String zkph,@Param("xmdh") String xmdh);
} }

View File

@ -0,0 +1,4 @@
package com.czlis.liswork.mapper;
public interface QcStatMapper {
}

View File

@ -0,0 +1,33 @@
package com.czlis.liswork.pojo.DTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QcCopySampleDTO {
@ApiModelProperty(value = "本质控仪器")
private String yq;
@ApiModelProperty(value = "本质控品批号")
private String zkpph;
@ApiModelProperty(value = "本质控品号")
private String zkph;
@ApiModelProperty(value = "新质控仪器")
private String newyq;
@ApiModelProperty(value = "新质控品批号")
private String newzkpph;
@ApiModelProperty(value = "新质控品号")
private String newzkph;
@ApiModelProperty(value = "新质控是否使用新日期")
private String newdtflag;
@ApiModelProperty(value = "新质控日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date newstartda;
}

View File

@ -1,26 +0,0 @@
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,7 +3,9 @@ package com.czlis.liswork.service;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.QcBatchno; import com.czlis.common.core.domain.entity.lis.QcBatchno;
import com.czlis.common.core.domain.entity.lis.QcSample; import com.czlis.common.core.domain.entity.lis.QcSample;
import com.czlis.liswork.pojo.DTO.QcCopySampleDTO;
import java.util.Date;
import java.util.List; import java.util.List;
public interface QcBatchnoService { public interface QcBatchnoService {
@ -14,4 +16,6 @@ public interface QcBatchnoService {
Result saveQcSample(List<QcSample> qcSampleList); Result saveQcSample(List<QcSample> qcSampleList);
Result queryValList(String yq,String zkpph,String zkph); Result queryValList(String yq,String zkpph,String zkph);
Result queryValXmdh(String yq,String zkpph,String zkph,String xmdh); Result queryValXmdh(String yq,String zkpph,String zkph,String xmdh);
Result copyQcSample(QcCopySampleDTO qcCopySample);
Result delQcSample(QcSample qcSample);
} }

View File

@ -0,0 +1,4 @@
package com.czlis.liswork.service;
public interface QcStatService {
}

View File

@ -2,7 +2,6 @@ package com.czlis.liswork.service;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.QcVal; import com.czlis.common.core.domain.entity.lis.QcVal;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -3,7 +3,6 @@ package com.czlis.liswork.service;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.*; import com.czlis.common.core.domain.entity.lis.*;
import com.czlis.liswork.pojo.DTO.QcRulesDTO; import com.czlis.liswork.pojo.DTO.QcRulesDTO;
import com.czlis.liswork.pojo.DTO.QcSampleDTO;
import java.util.List; import java.util.List;

View File

@ -5,8 +5,8 @@ import com.czlis.common.core.domain.entity.lis.QcBatchno;
import com.czlis.common.core.domain.entity.lis.QcSample; import com.czlis.common.core.domain.entity.lis.QcSample;
import com.czlis.liswork.mapper.QcBatchnoMapper; import com.czlis.liswork.mapper.QcBatchnoMapper;
import com.czlis.liswork.mapper.QcSampleMapper; import com.czlis.liswork.mapper.QcSampleMapper;
import com.czlis.liswork.pojo.DTO.QcCopySampleDTO;
import com.czlis.liswork.service.QcBatchnoService; import com.czlis.liswork.service.QcBatchnoService;
import lombok.Data;
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 org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -15,7 +15,6 @@ import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
@Service @Service
public class QcBatchnoServiceImpl implements QcBatchnoService { public class QcBatchnoServiceImpl implements QcBatchnoService {
@ -27,8 +26,7 @@ public class QcBatchnoServiceImpl implements QcBatchnoService {
@Override @Override
public List<QcBatchno> queryList(QcBatchno qcBatchno) { public List<QcBatchno> queryList(QcBatchno qcBatchno) {
List<QcBatchno> qcBatchnoList = qcBatchnoMapper.selectList(qcBatchno); return qcBatchnoMapper.selectList(qcBatchno);
return qcBatchnoList;
} }
@Override @Override
@ -44,6 +42,8 @@ public class QcBatchnoServiceImpl implements QcBatchnoService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Result addBatchno(QcBatchno qcBatchno){ public Result addBatchno(QcBatchno qcBatchno){
List<QcBatchno> qcBatchno0=qcBatchnoMapper.selectList(qcBatchno);
if(qcBatchno0.size()>0&&qcBatchno0!=null)return new Result("-1","已存在该批号!");
qcBatchnoMapper.insert(qcBatchno); qcBatchnoMapper.insert(qcBatchno);
return new Result("0","成功!"); return new Result("0","成功!");
} }
@ -85,7 +85,7 @@ public class QcBatchnoServiceImpl implements QcBatchnoService {
if(qcSampleList != null && !qcSampleList.isEmpty()){ if(qcSampleList != null && !qcSampleList.isEmpty()){
for (QcSample qcSample : qcSampleList) { for (QcSample qcSample : qcSampleList) {
Date ksrq=qcSample.getKsrq(); Date ksrq=qcSample.getKsrq();
if(ksrq!=null) continue; if(ksrq==null) continue;
QcSample qcSample1 = qcSampleMapper.queryOne(qcSample); QcSample qcSample1 = qcSampleMapper.queryOne(qcSample);
BigDecimal zkbz= qcSample.getZkbz(); BigDecimal zkbz= qcSample.getZkbz();
if(zkbz==null) { if(zkbz==null) {
@ -103,5 +103,60 @@ public class QcBatchnoServiceImpl implements QcBatchnoService {
} }
return new Result("0","保存数据成功!"); return new Result("0","保存数据成功!");
} }
@Override
public Result copyQcSample(QcCopySampleDTO qcCopySample){
String yq=qcCopySample.getYq();
String zkpph=qcCopySample.getZkpph();
String zkph=qcCopySample.getZkph();
List<QcSample> qcSampleList = qcBatchnoMapper.qcSampleonly(yq,zkpph,zkph);
if(qcSampleList == null || qcSampleList.isEmpty())return new Result("-1","当前质控品数据不存在!");
String newYq=qcCopySample.getNewyq();
String newZkpph=qcCopySample.getNewzkpph();
String newZkph=qcCopySample.getNewzkph();
String newdtflag=qcCopySample.getNewdtflag();
Date newstartda=qcCopySample.getNewstartda();
for (QcSample qcSample : qcSampleList) {
if("1".equals(newdtflag))qcSample.setKsrq(newstartda);
qcSample.setYq(newYq);
qcSample.setZkpph(newZkpph);
qcSample.setZkph(newZkph);
}
QcBatchno qcBatchno=new QcBatchno();
qcBatchno.setYq(newYq);
qcBatchno.setZkpph(newZkpph);
qcBatchno.setZkph(newZkph);
qcBatchno.setStartda(newstartda);
List<QcBatchno> qcBatchnolist=qcBatchnoMapper.selectList(qcBatchno);
if(qcBatchnolist.size()==0||qcBatchnolist==null) {
qcBatchnoMapper.insert(qcBatchno);
}
return saveQcSamplenew(qcSampleList);
}
public Result saveQcSamplenew(List<QcSample> qcSampleList) {
if(qcSampleList != null && !qcSampleList.isEmpty()){
for (QcSample qcSample : qcSampleList) {
Date ksrq=qcSample.getKsrq();
if(ksrq==null) continue;
QcSample qcSample1 = qcSampleMapper.queryOne(qcSample);
if(qcSample1 == null){
qcSampleMapper.insert(qcSample);
}
}
}
return new Result("0","保存数据成功!");
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result delQcSample(QcSample qcSample){
String yq=qcSample.getYq();
String zkph=qcSample.getZkph();
String xmdh=qcSample.getXmdh();
Date ksrq=qcSample.getKsrq();
if("".equals(yq)||yq==null)return new Result("-1","仪器为空!");
if("".equals(zkph)||zkph==null)return new Result("-1","质控水平为空!");
if("".equals(xmdh)||xmdh==null)return new Result("-1","项目为空!");
if(ksrq==null)return new Result("-1","开始时间为空!");
qcSampleMapper.delete(qcSample);
return new Result("0","成功!");
}
} }

View File

@ -0,0 +1,8 @@
package com.czlis.liswork.service.impl.qc;
import com.czlis.liswork.service.QcStatService;
import org.springframework.stereotype.Service;
@Service
public class QcStatServiceImpl implements QcStatService {
}

View File

@ -2,15 +2,11 @@ package com.czlis.liswork.service.impl.qc;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.*; import com.czlis.common.core.domain.entity.lis.*;
import com.czlis.common.utils.ComOptionUtils;
import com.czlis.interfaceCommon.mapper.ComOptMapper;
import com.czlis.interfaceCommon.utils.CommonUtil;
import com.czlis.liswork.mapper.QcFrmsmplMapper; import com.czlis.liswork.mapper.QcFrmsmplMapper;
import com.czlis.liswork.mapper.QcRulesMapper; import com.czlis.liswork.mapper.QcRulesMapper;
import com.czlis.liswork.mapper.QcSampleMapper; import com.czlis.liswork.mapper.QcSampleMapper;
import com.czlis.liswork.mapper.dict.ReportItemMapper; import com.czlis.liswork.mapper.dict.ReportItemMapper;
import com.czlis.liswork.pojo.DTO.QcRulesDTO; import com.czlis.liswork.pojo.DTO.QcRulesDTO;
import com.czlis.liswork.pojo.DTO.QcSampleDTO;
import com.czlis.liswork.service.QualitySetService; import com.czlis.liswork.service.QualitySetService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -61,6 +61,31 @@
WHERE ( xm_info.yq = #{yq} ) AND ( xm_info.zkxm = 'Y' ) WHERE ( xm_info.yq = #{yq} ) AND ( xm_info.zkxm = 'Y' )
order by xm_info.dyxh order by xm_info.dyxh
</select> </select>
<select id="qcSampleonly" resultType="com.czlis.common.core.domain.entity.lis.QcSample">
SELECT qc_sample.yq,
qc_sample.xmdh,
xm_info.xmmc,
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.sm,
qc_sample.expiredt,
qc_sample.qcsrc,
qc_sample.standsrc,
qc_sample.outdt,
qc_sample.stopdate,isnull(qc_sample.qccv,xm_info.qccv) as qccv
FROM xm_info JOIN qc_sample ON xm_info.yq = qc_sample.yq and qc_sample.xmdh = xm_info.xmdh and qc_sample.zkpph=#{zkpph} and qc_sample.zkph=#{zkph}
and qc_sample.ksrq=(select max(ksrq) from qc_sample x where x.yq=qc_sample.yq and x.zkpph=qc_sample.zkpph and x.zkph=qc_sample.zkph and x.xmdh=qc_sample.xmdh)
WHERE ( xm_info.yq = #{yq} ) AND ( xm_info.zkxm = 'Y' )
order by xm_info.dyxh
</select>
<select id="qcSampleByXmdh" resultType="map"> <select id="qcSampleByXmdh" resultType="map">
SELECT xm_info.yq, SELECT xm_info.yq,
xm_info.xmdh, xm_info.xmdh,

View File

@ -0,0 +1,8 @@
<?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.QcStatMapper">
<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>