住院条码查询,不合格标本登记

This commit is contained in:
jiangs 2026-01-25 09:11:54 +08:00
parent 40970b0b69
commit d0023e85d8
13 changed files with 458 additions and 7 deletions

View File

@ -0,0 +1,19 @@
package com.czlis.common.core.domain.entity.lis;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LabIntersendList {
private String guid;
private String sendtype;
private String senddata;
private String userid;
private Date createdate;
}

View File

@ -29,6 +29,7 @@ import com.czlis.interfaceCommon.service.ISysOperLogService;
import com.czlis.interfaceCommon.service.LisInterfaceType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.HashMap;
@ -105,8 +106,8 @@ public class LisInterfaceUtil {
* @param inValue
* @return
*/
//@Transactional(rollbackFor = Exception.class)
private Result invokeSP(String type,String inValue){
@Transactional(rollbackFor = Exception.class)
public Result invokeSP(String type,String inValue){
//为了兼容老接口,存储过程方式使用的是xml,这里需要把入参转成xml格式
String xmlStr = changeXml(inValue);

View File

@ -0,0 +1,42 @@
package com.czlis.liswork.controller.work;
import com.czlis.common.core.controller.BaseController;
import com.czlis.common.core.domain.Result;
import com.czlis.liswork.pojo.DTO.RcvBarcodeRefusedDTO;
import com.czlis.liswork.service.RcvBarcodeRefusedService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "拒签及不合格标本登记")
@RestController
@RequestMapping("/refused")
public class RcvBarcodeRefusedController extends BaseController {
@Autowired
RcvBarcodeRefusedService rcvBarcodeRefusedService;
@ApiOperation("获取申请单数据")
@GetMapping("/getData")
public Result getData(String sqh){
return rcvBarcodeRefusedService.getData(sqh,getUsername());
}
@ApiOperation("刷新界面数据")
@GetMapping("/refreshData")
public Result refreshData(String sqh){
return rcvBarcodeRefusedService.refreshData(sqh);
}
@PostMapping("/saveData")
public Result saveData(List<RcvBarcodeRefusedDTO> rcvBarcodeRefusedDTOList){
return rcvBarcodeRefusedService.saveData(rcvBarcodeRefusedDTOList,getUsername(),getLoginUser().getUser().getNickName());
}
}

View File

@ -0,0 +1,12 @@
package com.czlis.liswork.mapper.work;
import java.util.Map;
import java.util.List;
public interface RcvBarcodeRefusedMapper {
List<Map<String,Object>> refreshData(String sqh);
String getJqly(String refuseText);
String getJymd(String sqh);
String getYblx(String yblx);
}

View File

@ -0,0 +1,33 @@
package com.czlis.liswork.pojo.DTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RcvBarcodeRefusedDTO {
@ApiModelProperty("条码号")
private String sqh;
@NotBlank(message = "登记模式不能为空!")
@ApiModelProperty("登记模式")
private String mode;
@NotBlank(message = "不合格类别不能为空!")
@ApiModelProperty("不合格类别")
private String refuseText;
@NotBlank(message = "补充描述不能为空!")
@ApiModelProperty("补充描述")
private String description;
@NotBlank(message = "收费项目不能为空!")
@ApiModelProperty("收费项目")
private String item;
@NotBlank(message = "样本类型不能为空!")
@ApiModelProperty("样本类型")
private String yblx;
@ApiModelProperty("通知人")
private String tzr;
}

View File

@ -0,0 +1,14 @@
package com.czlis.liswork.service;
import com.czlis.common.core.domain.Result;
import com.czlis.liswork.pojo.DTO.RcvBarcodeRefusedDTO;
import java.util.List;
public interface RcvBarcodeRefusedService {
Result getData(String sqh,String userName);
Result refreshData(String sqh);
Result saveData(List<RcvBarcodeRefusedDTO> rcvBarcodeRefusedDTOList, String userName,String nickName);
}

View File

@ -0,0 +1,209 @@
package com.czlis.liswork.service.impl;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.LabRefused;
import com.czlis.common.core.domain.entity.lis.LabReqmain;
import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants;
import com.czlis.interfaceCommon.mapper.LabRefusedMapper;
import com.czlis.interfaceCommon.pojo.inter.DayMessage;
import com.czlis.interfaceCommon.pojo.inter.GetReqInterface;
import com.czlis.interfaceCommon.utils.CommonUtil;
import com.czlis.interfaceCommon.utils.LisInterfaceUtil;
import com.czlis.interfaceCommon.utils.LisUtil;
import com.czlis.liswork.mapper.work.RcvBarcodeRefusedMapper;
import com.czlis.liswork.pojo.DTO.RcvBarcodeRefusedDTO;
import com.czlis.liswork.service.RcvBarcodeRefusedService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class RcvBarcodeRefusedServiceImpl implements RcvBarcodeRefusedService {
@Autowired
RcvBarcodeRefusedMapper rcvBarcodeRefusedMapper;
@Autowired
LisInterfaceUtil lisInterfaceUtil;
@Autowired
private CommonUtil commonUtil;
@Autowired
LabRefusedMapper labRefusedMapper;
@Override
public Result getData(String sqh,String userName) {
//前端需要拦截已经刷过的条码
//调用接口,查询申请单
GetReqInterface getReqInterface = new GetReqInterface();
getReqInterface.setYljg("1");
getReqInterface.setBrdh("");
getReqInterface.setDept("");
getReqInterface.setSqh(sqh);
getReqInterface.setUserid(userName);
lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.GETREQINTERFACE, getReqInterface);
//判断条码状态
LabReqmain labReqmainOne = commonUtil.getLabReqmainOne(sqh);
if(labReqmainOne == null) return new Result("-1","没有找到该条码的信息!");
String zt = labReqmainOne.getZt();
if(zt == null || zt.equals("")) return new Result("-1","没有获取到该条码的状态的信息!");
switch (zt){
case "1":
return new Result("-1","条码未打印!");
case "8":
return new Result("-1","标本已拒收!");
case "9":
return new Result("-1","条码已经作废!");
}
List<Map<String,Object>> rcvBarcodeRefusedList = rcvBarcodeRefusedMapper.refreshData(sqh);
return new Result("0","获取数据成功!",rcvBarcodeRefusedList);
}
/**
* 刷新界面数据
* @param sqh
* @return
*/
@Override
public Result refreshData(String sqh) {
List<Map<String,Object>> rcvBarcodeRefusedList = rcvBarcodeRefusedMapper.refreshData(sqh);
return new Result("0","获取数据成功!",rcvBarcodeRefusedList);
}
/**
* 保存数据
* @param rcvBarcodeRefusedDTOList
* @return
*/
@Override
public Result saveData(List<RcvBarcodeRefusedDTO> rcvBarcodeRefusedDTOList,String userName,String nickName) {
/**
* 前端调用w_pop_refuse_tzr_xtrmyy这个界面,
* 根据参数sp_refusedid确定,回写tzr 这个字段给我
*
*/
if(rcvBarcodeRefusedDTOList.size() == 0) return new Result("-1","入参不能为空!");
//校验数据
for (RcvBarcodeRefusedDTO rcvBarcodeRefusedDTO : rcvBarcodeRefusedDTOList) {
String refuseText = rcvBarcodeRefusedDTO.getRefuseText();
if(refuseText == null || refuseText.equals("")) return new Result("-1","不合格类别不能为空!");
String sqh = rcvBarcodeRefusedDTO.getSqh();
if(sqh == null || sqh.equals("")) return new Result("-1","申请号不能为空!");
String jymd = rcvBarcodeRefusedDTO.getItem();
if(jymd.equals("")){
jymd = rcvBarcodeRefusedMapper.getJymd(sqh);
}
if(commonUtil.getComOptValue("HISOPT", "sp_badbzbt").trim().equals("1")){
String description = rcvBarcodeRefusedDTO.getDescription();
if(description == null || description.equals("")) return new Result("-1","补充描述不能为空!");
}
String yblxMC = rcvBarcodeRefusedMapper.getYblx(rcvBarcodeRefusedDTO.getYblx());
if(yblxMC == null || yblxMC.equals("")) yblxMC = rcvBarcodeRefusedDTO.getYblx();
String jqly = rcvBarcodeRefusedMapper.getJqly(refuseText);
switch (jqly){
case "4":
if((jymd.contains("培养") && yblxMC.contains("血")) || (jymd.contains("培养") && jymd.contains("血"))){
}else{
return new Result("-1","只有血培养才能登记血培养污染!");
}
break;
case "5":
if(yblxMC.contains("全血") || yblxMC.contains("血浆") || yblxMC.contains("脉血")){
}else{
return new Result("-1","只有抗凝血才能登记抗凝不合格");
}
break;
}
String lastUserNo = commonUtil.getComOptValue("_BAR_", "rcv_lastuserno");
if(lastUserNo.equals("1") && userName != null && !userName.equals("")){
}else{
//打开登录窗口,核对信息
}
}
for (RcvBarcodeRefusedDTO rcvBarcodeRefusedDTO : rcvBarcodeRefusedDTOList) {
//准备保存数据
String mode = rcvBarcodeRefusedDTO.getMode();
String sqh = rcvBarcodeRefusedDTO.getSqh();
LabReqmain labReqmainOne = commonUtil.getLabReqmainOne(sqh);
if(labReqmainOne == null) return new Result("-1","没有找到申请单信息!");
String zt = labReqmainOne.getZt().trim();
String ksdh = LisUtil.isBank(labReqmainOne.getKsdh());
if(!mode.equals("1") && zt.equals("4")) return new Result("-1","该标本已审核,已审核标本禁止作废剃回");
// if(!mode.equals("1")){
// DayMessage dayMessage = new DayMessage();
// dayMessage.setYljg("1");
// dayMessage.setMsg(sqh);
// dayMessage.setMsgid("126");
// Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.DAYMESSAGE, dayMessage);
// if(!result.getCode().equals("0")) return new Result("-1","调用接口失败!"+result.getMsg());
//
// }
LabRefused labRefused = new LabRefused();
labRefused.setSqh(sqh);
labRefused.setRefusedtime(commonUtil.getCurrentTime());
labRefused.setRefuseder(nickName);
labRefused.setKsdh(ksdh);
labRefused.setBz("0");
labRefused.setRefusetext(rcvBarcodeRefusedDTO.getRefuseText());
String refuseText = rcvBarcodeRefusedDTO.getRefuseText();
String refName = commonUtil.getComDictNameById("JQLY", refuseText);
if(refName == null || refName.equals("")) refuseText = refName;
LabReqmain labReqmain = new LabReqmain();
labReqmain.setSqh(sqh);
labReqmain.setBz3(refuseText);
labReqmain.setRefused(mode);
String msgId = "";
switch (mode){
case "1":
msgId = "000";
break;
case "2":
msgId = "124";
labReqmain.setZt("8");
break;
case "3":
msgId = "123";
labReqmain.setZt("9");
break;
case "4":
msgId = "125";
labReqmain.setZt("9");
break;
}
//调用接口
DayMessage dayMessage = new DayMessage();
dayMessage.setYljg("1");
dayMessage.setMsg(sqh);
dayMessage.setMsgid(msgId);
Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.DAYMESSAGE, dayMessage);
if(!result.getCode().equals("0")) return new Result("-1","调用接口失败!"+result.getMsg());
}
return null;
}
@Transactional
public void saveDBData(LabRefused labRefused,LabReqmain labReqmain){
labRefusedMapper.insertLabRefused(labRefused);
commonUtil.updateLabReqmain(labReqmain);
}
}

View File

@ -0,0 +1,68 @@
<?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.RcvBarcodeRefusedMapper">
<select id="refreshData" resultType="map">
SELECT lab_reqmain.sqh,
lab_reqmain.ksdh,
lab_reqmain.sqys,
lab_reqmain.sqsj,
lab_reqmain.jsys,
lab_reqmain.jssj,
lab_reqmain.zt,
lab_reqmain.jjzt,
lab_reqmain.brly,
lab_reqmain.brdh,
lab_reqmain.brxm,
lab_reqmain.brxb,
lab_reqmain.brsr,
lab_reqmain.bz1,
lab_reqmain.bz2,
lab_reqmain.bz3,
lab_reqmain.jzbz,
lab_reqmain.txm,
lab_reqmain.ch,
lab_reqmain.yblx,
lab_reqmain.zxys,
lab_reqmain.zxsj,
lab_reqmain.bgddh,
lab_reqmain.costs,
lab_reqmain.nl,
lab_reqmain.nldw,
lab_reqmain.zd,
lab_reqmain.cysj,
lab_reqmain.cksj,
lab_reqmain.ckzj,
lab_reqmain.ckyh,
lab_reqmain.cyr,
lab_reqmain.bbsjr,
lab_reqmain.bbsjsj,
lab_reqmain.cybl,
lab_reqmain.bbsjbl,
<!--登记模式-->
'2' as mode,
lab_reqmain.jymd as cp_item,
<!--不合格类别-->
'' as refuseText,
<!--补充描述-->
'' as description,
lab_feeitemclass.sflbjc as bgdjc,
lab_feeitemclass.bkcolor as bkcolor
FROM lab_reqmain(nolock) LEFT OUTER JOIN lab_feeitemclass(nolock) ON lab_reqmain.bgddh = lab_feeitemclass.sflbdh
WHERE lab_reqmain.sqh = #{sqh}
</select>
<select id="getJqly" resultType="string">
select top 1 bz from com_dict where zdlb='JQLY' and (zddh= #{refuseText} or zdmc= #{refuseText})
</select>
<select id="getJymd" resultType="string">
select top 1 sqxmmc from lab_reqdetail where sqh=#{sqh} and sqxmmc like '%培养%'
</select>
<select id="getYblx" resultType="string">
select top 1 zdmc from com_dict where zdlb='BT' and (zddh= #{yblx} or zdmc= #{yblx})
</select>
</mapper>

View File

@ -103,6 +103,8 @@ public class ZycxController extends BaseController {
return packBarcodeUtil.printpackid(ksmc);
}
@Anonymous
@ApiOperation("测试")
@GetMapping("/test1")
public Result test1(String sqh) {
return zycxService.test1(sqh);

View File

@ -0,0 +1,7 @@
package com.czlis.zycx.mapper;
import com.czlis.common.core.domain.entity.lis.LabIntersendList;
public interface LabIntersendListMapper {
void insert(LabIntersendList labIntersendList);
}

View File

@ -2,8 +2,10 @@ package com.czlis.zycx.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.LabIntersendList;
import com.czlis.common.core.domain.entity.lis.LabReqdetail;
import com.czlis.common.core.domain.entity.lis.LabReqmain;
import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants;
@ -14,6 +16,8 @@ import com.czlis.interfaceCommon.utils.CommonUtil;
import com.czlis.interfaceCommon.utils.LisInterfaceUtil;
import com.czlis.interfaceCommon.utils.LisUtil;
import com.czlis.interfaceCommon.utils.ReportUtil;
import com.czlis.interfaceCommon.websocket.WebSocketInstrComm;
import com.czlis.zycx.mapper.LabIntersendListMapper;
import com.czlis.zycx.mapper.ZycxMapper;
import com.czlis.zycx.pojo.QuerySqdVO;
import com.czlis.zycx.pojo.Web_getBarcode;
@ -22,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@ -37,6 +42,8 @@ public class ZycxServiceImpl implements ZycxService {
private CommonUtil commonUtil;
@Autowired
private ReportUtil reportUtil;
@Autowired
LabIntersendListMapper labIntersendListMapper;
@Value("${lisinterface.sp:}")
String sp;
@ -104,9 +111,9 @@ public class ZycxServiceImpl implements ZycxService {
String zt = labReqmainOne.getZt();
//打印条码
if(status.equals("11")){
Result result = printBarCode(sqhOne);
if(!result.getCode().equals("0")) return result;
pdfUrlList.add(result.getData().toString());
// Result result = printBarCode(sqhOne);
// if(!result.getCode().equals("0")) return result;
// pdfUrlList.add(result.getData().toString());
//修改打印状态
if(zt.trim().equals("1") || zt.trim().equals("8")){
LabReqmain labReqmain = new LabReqmain();
@ -154,6 +161,13 @@ public class ZycxServiceImpl implements ZycxService {
}
if(status.equals("11")){
//使用PB 的打印插件进行打印
Result result = printBarCodeByPB(sqh, userid);
//if(!result.getCode().equals("0")) return result;
return result;
}
return new Result("0","执行成功!",pdfUrlList);
}
@ -173,7 +187,9 @@ public class ZycxServiceImpl implements ZycxService {
@Override
public Result test1(String sqh) {
return printBarCode(sqh);
//return printBarCode(sqh);
//webSocketInstrComm.sendToAllClient("服务端发送消息!");
return new Result("0","发送完毕!");
}
/**
@ -191,6 +207,7 @@ public class ZycxServiceImpl implements ZycxService {
}
@Transactional
public Result createSQDExecSP(String dept, String userid, String st, String et, String yljg){
Map<String, Object> map = new HashMap<>();
map.put("dept", dept);
@ -214,6 +231,7 @@ public class ZycxServiceImpl implements ZycxService {
}
@Transactional
public Result createSQDExecHTTP(String dept, String userid, String st, String et, String yljg){
GetReqInterface getReqInterface = new GetReqInterface();
getReqInterface.setDept(dept);
@ -226,6 +244,7 @@ public class ZycxServiceImpl implements ZycxService {
return lisInterfaceUtil.invokeLisInterfaceLog(LisinterfaceNameConstants.GETREQINTERFACE,getReqInterface,userid);
}
@Transactional
public Result execSQDExecSP(String sqh,String userid,String status,String yljg){
Map<String,Object> map = new HashMap<>();
map.put("sqh", sqh);
@ -262,6 +281,19 @@ public class ZycxServiceImpl implements ZycxService {
return reportUtil.printToPdf("barcode_zy", reportParam, sqh, false);
}
public Result printBarCodeByPB(String[] sqh,String userId){
String sqhStr = StrUtil.join(",", sqh);
LabIntersendList labIntersendList = new LabIntersendList();
String guid = UUID.randomUUID().toString();
labIntersendList.setGuid(guid);
labIntersendList.setSendtype("1");
labIntersendList.setSenddata(sqhStr);
labIntersendList.setUserid(userId);
labIntersendList.setCreatedate(commonUtil.getCurrentTime());
labIntersendListMapper.insert(labIntersendList);
return new Result("0","打印成功!",guid);
}
}

View File

@ -0,0 +1,12 @@
<?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.zycx.mapper.LabIntersendListMapper">
<select id="insert">
insert into lab_intersend_list(guid, sendtype, senddata, userid, createdate)
values(
#{guid},#{sendtype},#{senddata},#{userid},#{createdate}
)
</select>
</mapper>

View File

@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectLabReqmainVo"></include>
<where>
<if test="sqh != null and sqh != ''"> and a.sqh = #{sqh}</if>
<if test="zt != null and zt != ''"> and ((select ','+remark+',' from sys_dict_data where dict_type='lis_reqcx_type' and dict_value=#{zt}) like '%,'+a.zt+',%')</if>
<if test="zt != null and zt != ''"> and ((select ','+remark+',' from sys_dict_data where dict_type='lis_reqcx_type' and dict_value=#{zt}) like '%,'+rtrim(ltrim(a.zt))+',%')</if>
<if test="ksdh != null and ksdh != ''"> and (a.ksdh = #{ksdh} or a.bz2 = #{ksdh})</if>
<if test="brly != null and brly != ''"> and a.brly = #{brly}</if>
<if test="yljg != null and yljg != ''"> and a.yljg = #{yljg}</if>