Merge remote-tracking branch 'lis8.0/master'

This commit is contained in:
jiangs 2026-02-04 11:46:11 +08:00
commit fd7e817aa7
11 changed files with 408 additions and 10 deletions

View File

@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/qcgraph")
@Slf4j
@Api(tags = "质控批号设置")
@Api(tags = "质控图")
public class QcGraphController extends BaseController {
@Autowired
private QcGraphService qcGraphService;

View File

@ -214,8 +214,8 @@ public class LisWorkController extends BaseController {
}
@ApiOperation("自动签收条码")
@GetMapping("/autosavebarcode")
public ResultT<LabReqmain> autosavebarcode(String sqh) {
return ResultT.fromResult(lisWorkService.autosavebarcode(sqh),LabReqmain.class);
public ResultT<LabReqmainVO> autosavebarcode(String sqh) {
return ResultT.fromResult(lisWorkService.autosavebarcode(sqh),LabReqmainVO.class);
}
@ApiOperation("手动保存签收条码")
@PostMapping("/savebarcode")
@ -242,7 +242,7 @@ public class LisWorkController extends BaseController {
}
@ApiOperation("查询条码")
@GetMapping("/querybarcode")
public ResultT querybarcode(String sqh) {
public ResultT<LabReqmainVO> querybarcode(String sqh) {
return ResultT.fromResult(lisWorkService.querybarcode(sqh),LabReqmainVO.class);
}
}

View File

@ -0,0 +1,31 @@
package com.czlis.liswork.controller.work;
import com.czlis.common.core.controller.BaseController;
import com.czlis.common.core.domain.ResultT;
import com.czlis.common.core.domain.entity.lis.view.LabReqmainVO;
import com.czlis.common.core.page.TableDataInfo;
import com.czlis.liswork.pojo.WholeProcessVO;
import com.czlis.liswork.service.WholeProcessService;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/wholeprocess")
@Slf4j
@Api(tags = "标本全程监控")
public class WholeProcessController extends BaseController {
@Autowired
WholeProcessService whoProcessService;
@ApiOperation("查询申请单全程信息")
@GetMapping("/list")
public TableDataInfo getWholeProcess(WholeProcessVO whoProcessVO){
startPage();
return getDataTable(whoProcessService.getWholeProcess(whoProcessVO));
}
}

View File

@ -0,0 +1,9 @@
package com.czlis.liswork.mapper.work;
import com.czlis.liswork.pojo.WholeProcessVO;
import java.util.List;
public interface WholeProcessMapper {
List<WholeProcessVO> getWholeProcess(WholeProcessVO whoProcessVO);
}

View File

@ -2,9 +2,14 @@ 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 QcGraphParamDTO {
@ApiModelProperty(value = "*质控开始日期")
@JsonFormat(pattern = "yyyy-MM-dd")

View File

@ -0,0 +1,173 @@
package com.czlis.liswork.pojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "WholeProcessVO", description = "标本全程监控查询输出")
@Data
public class WholeProcessVO {
@ApiModelProperty(value = "条码号")
private String sqh;
@ApiModelProperty(value = "科室")
private String ksdh;
@ApiModelProperty(value = "申请医生")
private String sqys;
@ApiModelProperty(value = "申请时间")
private Date sqsj;
@ApiModelProperty(value = "接收医生")
private String jsys;
@ApiModelProperty(value = "接收时间")
private Date jssj;
@ApiModelProperty(value = "状态")
private String zt;
@ApiModelProperty(value = "计价")
private String jjzt;
@ApiModelProperty(value = "病人类型")
private String brly;
@ApiModelProperty(value = "病人代号")
private String brdh;
@ApiModelProperty(value = "病人姓名")
private String brxm;
@ApiModelProperty(value = "性别")
private String brxb;
@ApiModelProperty(value = "出生日期")
private Date brsr;
@ApiModelProperty(value = "备注1")
private String bz1;
@ApiModelProperty(value = "备注2")
private String bz2;
@ApiModelProperty(value = "剔回原因")
private String bz3;
@ApiModelProperty(value = "急诊标志")
private String jzbz;
@ApiModelProperty(value = "床号")
private String ch;
@ApiModelProperty(value = "样本类型")
private String yblx;
@ApiModelProperty(value = "执行人")
private String zxys;
@ApiModelProperty(value = "执行时间")
private Date zxsj;
@ApiModelProperty(value = "申请单类别")
private String bgddh;
private Double costs;
private Integer nl;
private String nldw;
@ApiModelProperty(value = "诊断")
private String zd;
@ApiModelProperty(value = "采样时间")
private Date cysj;
@ApiModelProperty(value = "录入人")
private String inputman;
@ApiModelProperty(value = "批准人")
private String powerman;
@ApiModelProperty(value = "联系人")
private String contactman;
@ApiModelProperty(value = "采样人")
private String cyr;
@ApiModelProperty(value = "送检人")
private String bbsjr;
@ApiModelProperty(value = "送检时间")
private Date bbsjsj;
@ApiModelProperty(value = "是否销毁")
private String inzt;
@ApiModelProperty(value = "存放位置")
private String libpos;
@ApiModelProperty(value = "存放时间")
private Date inlibtime;
@ApiModelProperty(value = "存放人")
private String inlibman;
@ApiModelProperty(value = "销毁时间")
private Date outlibtime;
@ApiModelProperty(value = "销毁人")
private String outlibman;
@ApiModelProperty(value = "拒收标记")
private String refused;
@ApiModelProperty(value = "审核时间")
private Date confirmtime;
@ApiModelProperty(value = "审核人")
private String confirmer;
@ApiModelProperty(value = "医疗机构")
private String yljg;
@ApiModelProperty(value = "卡号")
private String kh;
@ApiModelProperty(value = "卡类型")
private String klx;
@ApiModelProperty(value = "检验目的")
private String jymd;
@ApiModelProperty(value = "身份证号")
private String sfzh;
@ApiModelProperty(value = "联系电话")
private String phone;
@ApiModelProperty(value = "家属电话")
private String phone1;
@ApiModelProperty(value = "上机仪器")
private String yqdh;
@ApiModelProperty(value = "上机时间")
private Date sjsj;
@ApiModelProperty(value = "地址")
private String addr;
@ApiModelProperty(value = "绿色通道")
private String lstd;
@ApiModelProperty(value = "生理周期")
private String slzq;
@ApiModelProperty(value = "采集量")
private String ybrl;
@ApiModelProperty(value = "签收机构")
private String qsyljg;
@ApiModelProperty(value = "采集部位")
private String cjbw;
@ApiModelProperty(value = "条码类别名称")
private String bgddhname;
@ApiModelProperty(value = "条码类别颜色")
private Integer bkcolor;
@ApiModelProperty(value = "采集说明")
private String sampletips;
private String brxbname;
private String zxysname;
private String bbsjrname;
private String ksname;
private String sqysname;
private String jsysname;
private String brlyname;
private String cyrname;
private String ztname;
@ApiModelProperty(value = "申请时间起始")
private Date sqsj1;
@ApiModelProperty(value = "申请时间截止")
private Date sqsj2;
@ApiModelProperty(value = "签收时间起始")
private Date jssj1;
@ApiModelProperty(value = "签收时间截止")
private Date jssj2;
@ApiModelProperty(value = "接收TAT")
private Integer cp_cytojs;
@ApiModelProperty(value = "报告TAT")
private Integer cp_jstobg;
@ApiModelProperty(value = "接收规定TAT")
private Integer min1;
@ApiModelProperty(value = "报告规定TAT")
private Integer min2;
@ApiModelProperty(value = "明细序号")
private Integer xh;
@ApiModelProperty(value = "申请项目代号")
private String sqxmdh;
@ApiModelProperty(value = "申请项目名称")
private String sqxmmc;
@ApiModelProperty(value = "明细计价状态")
private String mxjjzt;
@ApiModelProperty(value = "单价")
private Double dj;
@ApiModelProperty(value = "数量")
private Double sl;
@ApiModelProperty(value = "明细备注1")
private String bz11;
@ApiModelProperty(value = "明细备注2")
private String bz22;
}

View File

@ -0,0 +1,10 @@
package com.czlis.liswork.service;
import com.czlis.common.core.domain.Result;
import com.czlis.liswork.pojo.WholeProcessVO;
import java.util.List;
public interface WholeProcessService {
List<WholeProcessVO> getWholeProcess(WholeProcessVO whoProcessVO);
}

View File

@ -632,7 +632,7 @@ public class LisWorkServiceImpl implements LisWorkService {
return new Result("-1",sqh+"无数据,处理失败");
}
LabReqmain labReqmainOne=new LabReqmain();
BeanUtils.copyBeanProp(labReqmainOne,labReqmainOne);
BeanUtils.copyBeanProp(labReqmainOne,labReqmainvo);
//2.调用接口,执行申请单收费
Result result0=reqbilling(labReqmainOne, yhdh);
if (!result0.getCode().equals("0")) return result0;
@ -640,7 +640,8 @@ public class LisWorkServiceImpl implements LisWorkService {
if (savereqmain(labReqmainOne, yhdh) != 0) {
return new Result("-1",sqh+"保存申请单状态失败"+result0.getMsg());
}
return new Result("0","成功",labReqmainOne);
BeanUtils.copyBeanProp(labReqmainvo,labReqmainOne);
return new Result("0","成功",labReqmainvo);
}
/**

View File

@ -9,7 +9,9 @@ import com.czlis.liswork.pojo.DTO.QcValDTO;
import com.czlis.liswork.service.QcGraphService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.*;
@Service
public class QcGraphServiceImpl implements QcGraphService {
@Autowired
@ -21,13 +23,56 @@ public class QcGraphServiceImpl implements QcGraphService {
}
@Override
public Result query(QcGraphParamDTO qcGraphParamDTO){
List<QcValDTO> QcValDTOList=qcGraphMapper.query(qcGraphParamDTO);
return new Result("0","成功",QcValDTOList);
Integer lb=qcGraphParamDTO.getCs();
if(lb==null)return new Result("-1","次数类别不能为空!");
List<QcValDTO> QcValDTOList;
switch (lb){
case 0:
QcValDTOList=qcGraphMapper.query0(qcGraphParamDTO);
break;
case 8:
QcValDTOList=qcGraphMapper.query8(qcGraphParamDTO);
break;
case 9:
QcValDTOList=qcGraphMapper.query9(qcGraphParamDTO);
break;
default:
QcValDTOList=qcGraphMapper.query(qcGraphParamDTO);
}
if(QcValDTOList.isEmpty()){
return new Result("-1","没有数据!");
}
List<QcMonthstDTO> QcSamplelist=qcGraphMapper.queryhead(qcGraphParamDTO);
List<QcMonthstDTO> QcSamplelist3=qcGraphMapper.queryhead3(qcGraphParamDTO);
for(QcMonthstDTO qcMonthstDTO:QcSamplelist){
String xmdh=qcMonthstDTO.getXmdh();
Optional<QcMonthstDTO> monthst0=QcSamplelist3.stream().filter(ss->xmdh.equals(ss.getXmdh())).findAny();
if(monthst0.isPresent()) {
qcMonthstDTO.setAvg3(monthst0.get().getAvg3());
qcMonthstDTO.setCv3(monthst0.get().getCv3());
qcMonthstDTO.setSd3(monthst0.get().getSd3());
}
}
Map<String,Object> map=new HashMap<>();
map.put("QcValList",QcValDTOList);
map.put("QcSamplelist",QcSamplelist);
return new Result("0","成功",map);
}
@Override
public Result queryhead(QcGraphParamDTO qcGraphParamDTO){
List<QcMonthstDTO> QcSamplelist=qcGraphMapper.queryhead(qcGraphParamDTO);
List<QcMonthstDTO> QcSamplelist3=qcGraphMapper.queryhead3(qcGraphParamDTO);
for(QcMonthstDTO qcMonthstDTO:QcSamplelist){
String xmdh=qcMonthstDTO.getXmdh();
Optional<QcMonthstDTO> monthst0=QcSamplelist3.stream().filter(ss->xmdh.equals(ss.getXmdh())).findAny();
if(monthst0.isPresent()) {
qcMonthstDTO.setAvg3(monthst0.get().getAvg3());
qcMonthstDTO.setCv3(monthst0.get().getCv3());
qcMonthstDTO.setSd3(monthst0.get().getSd3());
}
}
return new Result("0","成功",QcSamplelist);
}
}

View File

@ -0,0 +1,18 @@
package com.czlis.liswork.service.impl.work;
import com.czlis.liswork.mapper.work.WholeProcessMapper;
import com.czlis.liswork.pojo.WholeProcessVO;
import com.czlis.liswork.service.WholeProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class WholeProcessServiceImpl implements WholeProcessService {
@Autowired
WholeProcessMapper wholeProcessMapper;
public List<WholeProcessVO> getWholeProcess(WholeProcessVO whoProcessVO){
return wholeProcessMapper.getWholeProcess(whoProcessVO);
}
}

View File

@ -0,0 +1,106 @@
<?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.work.WholeProcessMapper">
<sql id="selectLabReqmainVo">
select a.*,b.sflbmc as bgddhname,b.sampletips,b.bkcolor,
(case rtrim(a.brxb) when '1' then '男' when '2' then '女' else '' end) as brxbname,
isnull((select zdmc from com_dict where zdlb = 'SRD' AND zddh = a.sqys),a.sqys) as sqysname,
isnull((select zdmc from com_dict where zdlb = 'SRD' AND zddh = a.bbsjr),a.bbsjr) as bbsjrname,
isnull((select zdmc from com_dict where zdlb = 'SRD' AND zddh = a.zxys),a.zxys) as zxysname,
isnull((select yhxm from com_usr where yhdh = a.jsys),a.jsys) as jsysname,
isnull((select zdmc from com_dict where zdlb = 'DP' AND zddh = a.ksdh),a.ksdh) as ksname,
isnull((select zdmc from com_dict where zdlb = 'PT' AND zddh = a.brly),a.brly) as brlyname,
isnull((select zdmc from com_dict where zdlb = 'SRD' AND zddh = a.cyr),a.cyr) as cyrname,
isnull((select zdmc from com_dict where zdlb = 'HOS' AND zddh = a.yljg),a.yljg) as yljgname,
isnull((select zdmc from com_dict where zdlb = 'BT' AND zddh = a.yblx),a.yblx) as yblxname,
(case when a.zt='2' and isnull(a.yqdh,'')!='' then '检验中' else isnull((select dict_label from sys_dict_data where dict_type='lis_req_type' and dict_value=a.zt),a.zt) end ) as ztname,
datediff(minute,a.cysj,a.jssj) as cp_cytojs,
datediff(minute,a.jssj,a.confirmtime) as cp_jstobg,
(select max(min1) from lab_tatctrl where (lab_tatctrl.jzbz='@' or (lab_tatctrl.jzbz='1' and a.jzbz='1') or (lab_tatctrl.jzbz='0' and isnull(a.jzbz,'') !='1')) and ( lab_tatctrl.yblx='@' or lab_tatctrl.yblx=a.yblx ) and lab_tatctrl.ruletype = '4' and lab_tatctrl.refcode=c.sqxmdh) as min1,
(select max(min2) from lab_tatctrl where (lab_tatctrl.jzbz='@' or (lab_tatctrl.jzbz='1' and a.jzbz='1') or (lab_tatctrl.jzbz='0' and isnull(a.jzbz,'') !='1')) and ( lab_tatctrl.yblx='@' or lab_tatctrl.yblx=a.yblx ) and lab_tatctrl.ruletype = '4' and lab_tatctrl.refcode=c.sqxmdh) as min2,
c.xh,c.sqxmdh,c.sqxmmc,c.jjzt as mxjjzt,c.dj,c.sl,c.bz1 as bz11,c.bz2 as bz22
from lab_reqmain a left join lab_feeitemclass b on (a.bgddh = b.sflbdh)
LEFT OUTER JOIN lab_reqdetail c ON a.sqh = c.sqh
</sql>
<select id="getWholeProcess" resultType="com.czlis.liswork.pojo.WholeProcessVO">
<include refid="selectLabReqmainVo"></include>
<where>
<if test="sqh != null"> and a.sqh = #{sqh}</if>
<if test="ksdh != null"> and a.ksdh = #{ksdh}</if>
<if test="sqys != null"> and a.sqys = #{sqys}</if>
<if test="sqsj1 != null"> and a.sqsj &gt;= CONVERT(varchar(100), #{sqsj1}, 120)</if>
<if test="sqsj2 != null"> and a.sqsj &lt;= CONVERT(varchar(100), #{sqsj2}, 120)</if>
<if test="jsys != null"> and a.jsys = #{jsys}</if>
<if test="jssj1 != null"> and a.jssj &gt;= CONVERT(varchar(100), #{jssj1}, 120)</if>
<if test="jssj2 != null"> and a.jssj &lt;= CONVERT(varchar(100), #{jssj2}, 120)</if>
<if test="zt != null">
<choose>
<when test="zt == '1'">and a.zt in ('2')</when>
<when test="zt == '2'">and a.zt in ('2','4')</when>
<when test="zt == '3'">and a.zt = '2' and yqdh is null</when>
<when test="zt == '4'">and a.zt = #{zt}</when>
<when test="zt == '5'">and a.zt = '2' and yqdh != ''</when>
<when test="zt == '7'">and a.zt != '9'</when>
<when test="zt == '8'">and a.zt = #{zt}</when>
<when test="zt == '9'">and a.zt = #{zt}</when>
</choose>
</if>
<if test="jjzt != null"> and a.jjzt = #{jjzt}</if>
<if test="brly != null"> and a.brly = #{brly}</if>
<if test="brdh != null"> and a.brdh = #{brdh}</if>
<if test="brxm != null"> and a.brxm like '%'+#{brxm}+'%' </if>
<if test="brxb != null"> and a.brxb = #{brxb}</if>
<if test="brsr != null"> and a.brsr = #{brsr}</if>
<if test="bz1 != null"> and a.bz1 = #{bz1}</if>
<if test="bz2 != null"> and a.bz2 = #{bz2}</if>
<if test="bz3 != null"> and a.bz3 = #{bz3}</if>
<if test="jzbz != null"> and a.jzbz = #{jzbz}</if>
<if test="ch != null"> and a.ch = #{ch}</if>
<if test="yblx != null"> and a.yblx = #{yblx}</if>
<if test="zxys != null"> and a.zxys = #{zxys}</if>
<if test="zxsj != null"> and a.zxsj = #{zxsj}</if>
<if test="bgddh != null"> and a.bgddh = #{bgddh}</if>
<if test="nl != null"> and a.nl = #{nl}</if>
<if test="nldw != null"> and a.nldw = #{nldw}</if>
<if test="zd != null"> and a.zd = #{zd}</if>
<if test="cysj != null"> and a.cysj = #{cysj}</if>
<if test="inputman != null"> and a.inputman = #{inputman}</if>
<if test="powerman != null"> and a.powerman = #{powerman}</if>
<if test="contactman != null"> and a.contactman = #{contactman}</if>
<if test="cyr != null"> and a.cyr = #{cyr}</if>
<if test="bbsjr != null"> and a.bbsjr = #{bbsjr}</if>
<if test="bbsjsj != null"> and a.bbsjsj = #{bbsjsj}</if>
<if test="inzt != null"> and a.inzt = #{inzt}</if>
<if test="libpos != null"> and a.libpos = #{libpos}</if>
<if test="inlibtime != null"> and a.inlibtime = #{inlibtime}</if>
<if test="inlibman != null"> and a.inlibman = #{inlibman}</if>
<if test="outlibtime != null"> and a.outlibtime = #{outlibtime}</if>
<if test="outlibman != null"> and a.outlibman = #{outlibman}</if>
<if test="refused != null"> and a.refused = #{refused}</if>
<if test="confirmtime != null"> and a.confirmtime = #{confirmtime}</if>
<if test="confirmer != null"> and a.confirmer = #{confirmer}</if>
<if test="yljg != null"> and a.yljg = #{yljg}</if>
<if test="kh != null"> and a.kh = #{kh}</if>
<if test="klx != null"> and a.klx = #{klx}</if>
<if test="jymd != null"> and a.jymd = #{jymd}</if>
<if test="sfzh != null"> and a.sfzh = #{sfzh}</if>
<if test="phone != null"> and a.phone = #{phone}</if>
<if test="phone1 != null"> and a.phone1 = #{phone1}</if>
<if test="yqdh != null"> and a.yqdh = #{yqdh}</if>
<if test="sjsj != null"> and a.sjsj = #{sjsj}</if>
<if test="addr != null"> and a.addr = #{addr}</if>
<if test="lstd != null"> and a.lstd = #{lstd}</if>
<if test="slzq != null"> and a.slzq = #{slzq}</if>
<if test="ybrl != null"> and a.ybrl = #{ybrl}</if>
<if test="qsyljg != null"> and a.qsyljg = #{qsyljg}</if>
<if test="cjbw != null"> and a.cjbw = #{cjbw}</if>
</where>
order by a.sqsj DESC,a.sqh,c.xh
</select>
</mapper>