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;
|
package com.czlis.common.core.domain.entity.lis;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
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;
|
||||||
@ -14,16 +13,11 @@ import java.util.Date;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class QcVal {
|
public class QcVal {
|
||||||
private Long qc_valid;
|
private Long qc_valid;
|
||||||
@ApiModelProperty(value = "仪器")
|
|
||||||
private String yq;
|
private String yq;
|
||||||
@ApiModelProperty(value = "质控日期")
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date zkrq;
|
private Date zkrq;
|
||||||
@ApiModelProperty(value = "项目代码")
|
|
||||||
private String xmdh;
|
private String xmdh;
|
||||||
@ApiModelProperty(value = "质控号")
|
|
||||||
private String zkph;
|
private String zkph;
|
||||||
@ApiModelProperty(value = "批号")
|
|
||||||
private String zkpph;
|
private String zkpph;
|
||||||
private Integer cs;
|
private Integer cs;
|
||||||
private String instrybh;
|
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.controller.BaseController;
|
||||||
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 com.czlis.liswork.service.QcStatService;
|
|
||||||
import com.czlis.liswork.service.QcValService;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/qcstat")
|
@RequestMapping("/qcstat")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Api(tags = "质控数据统计")
|
@Api(tags = "质控数据统计")
|
||||||
public class QcStatController extends BaseController {
|
public class QcStatController extends BaseController {
|
||||||
@Autowired
|
|
||||||
private QcStatService qcStatService;
|
|
||||||
@ApiOperation("查询质控数据")
|
@ApiOperation("查询质控数据")
|
||||||
@GetMapping("/getmonthst")
|
@GetMapping("/getmonthst")
|
||||||
public Result getmonthst(QcVal qcVal) {
|
public Result getmonthst(QcVal qcVal) {
|
||||||
return qcStatService.queryMonthst(qcVal);
|
return new Result("0","获取数据成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +1,4 @@
|
|||||||
package com.czlis.liswork.mapper;
|
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 {
|
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;
|
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 {
|
public interface QcStatService {
|
||||||
Result queryMonthst(QcVal qcVal);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,45 +1,8 @@
|
|||||||
package com.czlis.liswork.service.impl.qc;
|
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 com.czlis.liswork.service.QcStatService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class QcStatServiceImpl implements QcStatService {
|
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"
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
<mapper namespace="com.czlis.liswork.mapper.QcStatMapper">
|
<mapper namespace="com.czlis.liswork.mapper.QcStatMapper">
|
||||||
<select id="queryMonthst" resultType="com.czlis.liswork.pojo.DTO.QcMonthstDTO">
|
<select id="queryOne" resultType="com.czlis.common.core.domain.entity.lis.QcSample">
|
||||||
SELECT qc_val.yq,qc_val.xmdh,xm_info.xmmc,xm_info.dyxh,qc_val.zkph,count(1) cnt,
|
select * from qc_sample where yq = #{yq} and xmdh = #{xmdh} and zkph = #{zkph} and ksrq = #{ksrq}
|
||||||
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>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user