Compare commits
No commits in common. "550bc7f8258df02a3afb42d6883163f05eb73bf2" and "7eb1952c63e5ef92c7f04c3becf986d85f8f2658" have entirely different histories.
550bc7f825
...
7eb1952c63
@ -1,7 +1,6 @@
|
||||
package com.czlis.common.core.domain.entity.lis;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -14,16 +13,11 @@ import java.util.Date;
|
||||
@NoArgsConstructor
|
||||
public class QcVal {
|
||||
private Long qc_valid;
|
||||
@ApiModelProperty(value = "仪器")
|
||||
private String yq;
|
||||
@ApiModelProperty(value = "质控日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date zkrq;
|
||||
@ApiModelProperty(value = "项目代码")
|
||||
private String xmdh;
|
||||
@ApiModelProperty(value = "质控号")
|
||||
private String zkph;
|
||||
@ApiModelProperty(value = "批号")
|
||||
private String zkpph;
|
||||
private Integer cs;
|
||||
private String instrybh;
|
||||
|
||||
@ -3,29 +3,23 @@ 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 com.czlis.liswork.service.QcStatService;
|
||||
import com.czlis.liswork.service.QcValService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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 {
|
||||
@Autowired
|
||||
private QcStatService qcStatService;
|
||||
@ApiOperation("查询质控数据")
|
||||
@GetMapping("/getmonthst")
|
||||
public Result getmonthst(QcVal qcVal) {
|
||||
return qcStatService.queryMonthst(qcVal);
|
||||
return new Result("0","获取数据成功!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,14 +1,4 @@
|
||||
package com.czlis.liswork.mapper;
|
||||
|
||||
import com.czlis.liswork.pojo.DTO.QcMonthstDTO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface QcStatMapper {
|
||||
List<QcMonthstDTO> queryMonthst(@Param("yq") String yq , @Param("zkrq") Date zkrq, @Param("zkph") String zkph);
|
||||
List<QcMonthstDTO> queryMonthst2(@Param("yq") String yq , @Param("zkrq") Date zkrq, @Param("zkph") String zkph);
|
||||
List<QcMonthstDTO> queryMonthst3(@Param("yq") String yq , @Param("zkrq") Date zkrq, @Param("zkph") String zkph);
|
||||
}
|
||||
|
||||
@ -1,58 +0,0 @@
|
||||
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.math.BigDecimal;
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class QcMonthstDTO {
|
||||
@ApiModelProperty(value = "仪器")
|
||||
private String yq;
|
||||
@ApiModelProperty(value = "项目代码")
|
||||
private String xmdh;
|
||||
@ApiModelProperty(value = "项目名称")
|
||||
private String xmmc;
|
||||
@ApiModelProperty(value = "质控号")
|
||||
private String zkph;
|
||||
@ApiModelProperty(value = "批号")
|
||||
private String zkpph;
|
||||
@ApiModelProperty(value = "测定数")
|
||||
private Integer cnt;
|
||||
@ApiModelProperty(value = "失控数")
|
||||
private Integer badcnt;
|
||||
@ApiModelProperty(value = "处理数")
|
||||
private Integer process;
|
||||
@ApiModelProperty(value = "绘图基准CV%")
|
||||
private BigDecimal cv0;
|
||||
@ApiModelProperty(value = "绘图基准SD")
|
||||
private BigDecimal sd0;
|
||||
@ApiModelProperty(value = "绘图基准靶值")
|
||||
private BigDecimal avg0;
|
||||
@ApiModelProperty(value = "本月原始CV%")
|
||||
private BigDecimal cv1;
|
||||
@ApiModelProperty(value = "本月原始SD")
|
||||
private BigDecimal sd1;
|
||||
@ApiModelProperty(value = "本月原始平均值")
|
||||
private BigDecimal avg1;
|
||||
@ApiModelProperty(value = "本月非失控CV%")
|
||||
private BigDecimal cv2;
|
||||
@ApiModelProperty(value = "本月非失控SD")
|
||||
private BigDecimal sd2;
|
||||
@ApiModelProperty(value = "本月非失控平均值")
|
||||
private BigDecimal avg2;
|
||||
@ApiModelProperty(value = "累计CV%")
|
||||
private BigDecimal cv3;
|
||||
@ApiModelProperty(value = "累计SD")
|
||||
private BigDecimal sd3;
|
||||
@ApiModelProperty(value = "累计平均值")
|
||||
private BigDecimal avg3;
|
||||
@ApiModelProperty(value = "累计次数")
|
||||
private Integer cnt3;
|
||||
@ApiModelProperty(value = "标准CV%")
|
||||
private BigDecimal qccv;
|
||||
}
|
||||
@ -1,11 +1,4 @@
|
||||
package com.czlis.liswork.service;
|
||||
|
||||
|
||||
import com.czlis.common.core.domain.Result;
|
||||
import com.czlis.common.core.domain.entity.lis.QcVal;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public interface QcStatService {
|
||||
Result queryMonthst(QcVal qcVal);
|
||||
}
|
||||
|
||||
@ -1,45 +1,8 @@
|
||||
package com.czlis.liswork.service.impl.qc;
|
||||
|
||||
import com.czlis.common.core.domain.Result;
|
||||
import com.czlis.common.core.domain.entity.lis.QcVal;
|
||||
import com.czlis.liswork.mapper.QcStatMapper;
|
||||
import com.czlis.liswork.pojo.DTO.QcMonthstDTO;
|
||||
import com.czlis.liswork.service.QcStatService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class QcStatServiceImpl implements QcStatService {
|
||||
@Autowired
|
||||
private QcStatMapper qcStatMapper;
|
||||
@Override
|
||||
public Result queryMonthst(QcVal qcVal){
|
||||
String yq=qcVal.getYq();
|
||||
String zkph=qcVal.getZkph();
|
||||
Date zkrq=qcVal.getZkrq();
|
||||
List<QcMonthstDTO> monthst=qcStatMapper.queryMonthst(yq,zkrq,zkph);
|
||||
List<QcMonthstDTO> monthst2=qcStatMapper.queryMonthst2(yq,zkrq,zkph);
|
||||
List<QcMonthstDTO> monthst3=qcStatMapper.queryMonthst3(yq,zkrq,zkph);
|
||||
for(QcMonthstDTO qcMonthstDTO:monthst){
|
||||
String xmdh=qcMonthstDTO.getXmdh();
|
||||
Optional<QcMonthstDTO> monthst0=monthst2.stream().filter(ss->xmdh.equals(ss.getXmdh())).findAny();
|
||||
if(monthst0.isPresent()) {
|
||||
qcMonthstDTO.setAvg2(monthst0.get().getAvg2());
|
||||
qcMonthstDTO.setCv2(monthst0.get().getCv2());
|
||||
qcMonthstDTO.setSd2(monthst0.get().getSd2());
|
||||
}
|
||||
Optional<QcMonthstDTO> monthsttemp=monthst3.stream().filter(ss->xmdh.equals(ss.getXmdh())).findAny();
|
||||
if(monthsttemp.isPresent()) {
|
||||
qcMonthstDTO.setAvg3(monthsttemp.get().getAvg3());
|
||||
qcMonthstDTO.setCv3(monthsttemp.get().getCv3());
|
||||
qcMonthstDTO.setSd3(monthsttemp.get().getSd3());
|
||||
qcMonthstDTO.setCnt3(monthsttemp.get().getCnt3());
|
||||
}
|
||||
}
|
||||
return new Result("0","成功",monthst);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,43 +2,7 @@
|
||||
<!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="queryMonthst" resultType="com.czlis.liswork.pojo.DTO.QcMonthstDTO">
|
||||
SELECT qc_val.yq,qc_val.xmdh,xm_info.xmmc,xm_info.dyxh,qc_val.zkph,count(1) cnt,
|
||||
sum((case when qc_val.zkjg>(zkbz + 3*sd) then 1 when (zkbz - 3*sd)>qc_val.zkjg then 1 when isnull(outreason,'')!='' then 1 else 0 end) ) as badcnt,
|
||||
sum(case when isnull(bz,'')!='' then 1 else 0 end) as process,
|
||||
cast(qc_sample.zkbz as decimal(12, 3)) as avg0,
|
||||
cast(qc_sample.sd as decimal(12, 3)) as sd0,
|
||||
cast(qc_sample.cv as decimal(12, 3)) as cv0,
|
||||
cast(avg(zkjg) as decimal(12, 3)) avg1,
|
||||
cast(STDEV(zkjg) as decimal(12, 3)) sd1,
|
||||
cast(100*STDEV(zkjg)/avg(zkjg) as decimal(12, 3)) as cv1,
|
||||
max(qc_sample.zkpph) as zkpph,
|
||||
max(isnull(qc_sample.qccv,xm_info.qccv)) as qccv
|
||||
FROM qc_val join xm_info on xm_info.yq=qc_val.yq and xm_info.xmdh=qc_val.xmdh
|
||||
join qc_sample on qc_sample.yq=qc_val.yq and qc_sample.xmdh=qc_val.xmdh and qc_sample.zkph=qc_val.zkph
|
||||
and qc_sample.ksrq=(select max(ksrq) from qc_sample x where x.yq=qc_val.yq and x.xmdh=qc_val.xmdh and x.zkph=qc_val.zkph and qc_val.zkrq>=x.ksrq)
|
||||
where convert(char(8),zkrq,120) = convert(char(8),#{zkrq} ,120)
|
||||
and qc_val.yq=#{yq} and qc_val.zkph=#{zkph}
|
||||
group by qc_val.yq,qc_val.zkph,qc_val.xmdh,xm_info.xmmc,xm_info.dyxh,qc_sample.zkbz,qc_sample.sd,qc_sample.cv
|
||||
order by xm_info.dyxh
|
||||
</select>
|
||||
<select id="queryMonthst2" resultType="com.czlis.liswork.pojo.DTO.QcMonthstDTO">
|
||||
SELECT qc_val.yq,qc_val.xmdh,qc_val.zkph,count(1) cnt,cast(avg(zkjg) as decimal(12, 3)) avg2,
|
||||
cast(STDEV(zkjg) as decimal(12, 3)) sd2,cast(100*STDEV(zkjg)/avg(zkjg) as decimal(12, 3)) as cv2
|
||||
FROM qc_val join xm_info on xm_info.yq=qc_val.yq and xm_info.xmdh=qc_val.xmdh
|
||||
join qc_sample on qc_sample.yq=qc_val.yq and qc_sample.xmdh=qc_val.xmdh and qc_sample.zkph=qc_val.zkph
|
||||
and qc_sample.ksrq=(select max(ksrq) from qc_sample x where x.yq=qc_val.yq and x.xmdh=qc_val.xmdh and x.zkph=qc_val.zkph and qc_val.zkrq>=x.ksrq)
|
||||
where convert(char(8),zkrq,120) = convert(char(8),#{zkrq} ,120)
|
||||
and (zkbz + 3*sd)>qc_val.zkjg and qc_val.zkjg>(zkbz - 3*sd) and isnull(outreason,'')=''
|
||||
and qc_val.yq=#{yq} and qc_val.zkph=#{zkph}
|
||||
group by qc_val.yq,qc_val.zkph,qc_val.xmdh
|
||||
</select>
|
||||
<select id="queryMonthst3" resultType="com.czlis.liswork.pojo.DTO.QcMonthstDTO">
|
||||
SELECT qc_val.yq,qc_val.xmdh,qc_val.zkph,count(1) cnt3,cast(avg(zkjg) as decimal(12, 3)) avg3,
|
||||
cast(STDEV(zkjg) as decimal(12, 3)) sd3,cast(100*STDEV(zkjg)/avg(zkjg) as decimal(12, 3)) as cv3
|
||||
FROM qc_val where zkrq>=(select max(ksrq) from qc_sample x where x.yq=qc_val.yq and x.xmdh=qc_val.xmdh and x.zkph=qc_val.zkph and convert(datetime,convert(char(8),#{zkrq},120)+'01') >=x.ksrq)
|
||||
and isnull((select min(ksrq) from qc_sample x where x.yq=qc_val.yq and x.xmdh=qc_val.xmdh and x.zkph=qc_val.zkph and x.ksrq>(select max(ksrq) from qc_sample x where x.yq=qc_val.yq and x.xmdh=qc_val.xmdh and x.zkph=qc_val.zkph and x.ksrq<=convert(datetime,convert(char(8),#{zkrq},120)+'01')) and convert(datetime,convert(char(8),DATEADD(month,1,#{zkrq}),120)+'01')>=x.ksrq ),convert(datetime,convert(char(8),DATEADD(month,1,#{zkrq}),120)+'01') )>zkrq
|
||||
and qc_val.yq=#{yq} and qc_val.zkph=#{zkph}
|
||||
group by qc_val.yq,qc_val.zkph,qc_val.xmdh
|
||||
<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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user