区域检验中心

This commit is contained in:
jiangs 2025-11-14 16:26:51 +08:00
parent f2a7a62345
commit ed2c621be5
7 changed files with 143 additions and 36 deletions

View File

@ -94,6 +94,11 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'com_
alter table com_opt add status varchar(10) alter table com_opt add status varchar(10)
end end
if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'com_opt' AND COLUMN_NAME = 'lx')
begin
alter table com_opt add lx varchar(10)
end
if not exists(select 1 from com_opt where yq = '' and xxdh = 'A5MERGEA4') if not exists(select 1 from com_opt where yq = '' and xxdh = 'A5MERGEA4')
begin begin
insert into com_opt(yq,xxdh,xxlb,xxqz,bz,lx) values('','A5MERGEA4','SYS','0','A5报告单是否合并成A4打印','1') insert into com_opt(yq,xxdh,xxlb,xxqz,bz,lx) values('','A5MERGEA4','SYS','0','A5报告单是否合并成A4打印','1')

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
public interface RegTransitSampleMapper { public interface RegTransitSampleMapper {
List<RegTransitSample> getRegTransitSample(RegTransitSample labQuerySample); List<RegTransitSample> getRegTransitSample(RegTransitSample regTransitSample);
List<RegTransitSampleDetail> getRegTransitSampleDetail(RegTransitSampleDetail regTransitSampleDetail); List<RegTransitSampleDetail> getRegTransitSampleDetail(RegTransitSampleDetail regTransitSampleDetail);
void addRegTransitSample(RegTransitSample regTransitSample); void addRegTransitSample(RegTransitSample regTransitSample);

View File

@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
@ -12,13 +13,25 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
public class SampleSignVO { public class SampleSignVO {
@ApiModelProperty(value = "条码集合") @ApiModelProperty(value = "条码集合")
List<String> barcode; private List<String> barcode;
@ApiModelProperty(value = "状态") @ApiModelProperty(value = "状态")
String status; private String status;
@ApiModelProperty(value = "送检医院代码") @ApiModelProperty(value = "送检医院代码")
String dstHospCode; private String dstHospCode;
@ApiModelProperty(value = "送检医院名称") @ApiModelProperty(value = "送检医院名称")
String dstHospName; private String dstHospName;
@ApiModelProperty(value = "标本退回原因") @ApiModelProperty(value = "标本退回原因")
String backReasons; private String backReasons;
@ApiModelProperty(value = "标本采集时间")
private Date affirmTime;
@ApiModelProperty(value = "标本采集人代码")
private String affirmUserCode;
@ApiModelProperty(value = "标本采集人姓名")
private String affirmUserName;
@ApiModelProperty(value = "标本送出时间")
private Date sendPackTime;
@ApiModelProperty(value = "标本送出人代码")
private String sendUserCode;
@ApiModelProperty(value = "标本送出人姓名")
private String sendUserName;
} }

View File

@ -17,7 +17,6 @@ public class RegTransitSample {
/** /**
* 病人ID * 病人ID
*/ */
@ApiModelProperty(value = "病人ID")
private String PatId; private String PatId;
/** /**
* 就诊卡类型 * 就诊卡类型
@ -130,7 +129,6 @@ public class RegTransitSample {
/** /**
* 标本条码号 * 标本条码号
*/ */
@ApiModelProperty(value = "标本条码号")
private String Barcode; private String Barcode;
/** /**
* 试管编码 * 试管编码
@ -236,6 +234,9 @@ public class RegTransitSample {
private Date create_time; private Date create_time;
private String update_by; private String update_by;
private Date update_time; private Date update_time;
/**
* 数据来源:1.委托机构,2.区域流转平台
*/
private String DataSource; private String DataSource;
/** /**
* 检验目的,项目字段拼接 * 检验目的,项目字段拼接
@ -303,8 +304,6 @@ public class RegTransitSample {
*/ */
private Date BackTime; private Date BackTime;
private String DateType; private String DateType;
private Date DateStart; private Date DateStart;
private Date DateEnd; private Date DateEnd;

View File

@ -1,16 +1,19 @@
package com.czlis.transitPF.service.impl; package com.czlis.transitPF.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.transitPF.mapper.RegTransitSampleMapper; import com.czlis.transitPF.mapper.RegTransitSampleMapper;
import com.czlis.transitPF.pojo.DTO.SampleSignVO;
import com.czlis.transitPF.pojo.RegTransitSample; import com.czlis.transitPF.pojo.RegTransitSample;
import com.czlis.transitPF.pojo.RegTransitSampleDetail; import com.czlis.transitPF.pojo.RegTransitSampleDetail;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List; import java.util.List;
@Component @Component
@ -18,6 +21,7 @@ import java.util.List;
public class RegInterfaceImpl { public class RegInterfaceImpl {
@Autowired @Autowired
RegTransitSampleMapper regTransitSampleMapper; RegTransitSampleMapper regTransitSampleMapper;
/** /**
*{ *{
* "method":"addTransitSample", * "method":"addTransitSample",
@ -35,35 +39,40 @@ public class RegInterfaceImpl {
* @return * @return
*/ */
public Result addTransitSample(String jsonStr){ public Result addTransitSample(String jsonStr){
JSONObject jsonObject = null; JSONObject reqMain = null;
JSONArray reqDetailList = null;
try{ try{
jsonObject = JSONUtil.parseObj(jsonStr); JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
reqMain = jsonObject.getJSONObject("req").getJSONObject("reqMain");
if(reqMain.getStr("PatId") == null || reqMain.getStr("PatId").equals("")) return new Result("-1","PatId不能为空!");
if(reqMain.getStr("PatName") == null || reqMain.getStr("PatName").equals("")) return new Result("-1","PatName不能为空!");
if(reqMain.getStr("PatSex") == null || reqMain.getStr("PatSex").equals("")) return new Result("-1","PatSex不能为空!");
if(reqMain.getStr("PatBirthday") == null || reqMain.getStr("PatBirthday").equals("")) return new Result("-1","PatBirthday不能为空!");
if(reqMain.getStr("OrderTime") == null ) return new Result("-1","OrderTime不能为空!");
if(reqMain.getStr("Barcode") == null || reqMain.getStr("Barcode").equals("")) return new Result("-1","Barcode不能为空!");
reqDetailList = jsonObject.getJSONObject("req").getJSONArray("reqDetail");
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
log.error("json格式错误:",e); log.error("json格式错误:",e);
return new Result("-1","json格式不合法"); return new Result("-1","json格式不合法"+e.getMessage());
} }
JSONObject reqMain = jsonObject.getJSONObject("req").getJSONObject("reqMain");
RegTransitSample regTransitSample = JSONUtil.toBean(reqMain, RegTransitSample.class); RegTransitSample regTransitSample = JSONUtil.toBean(reqMain, RegTransitSample.class);
RegTransitSample regTransitSample1 = new RegTransitSample(); RegTransitSample regTransitSample1 = new RegTransitSample();
regTransitSample1.setBarcode(reqMain.getStr("Barcode")); regTransitSample1.setBarcode(reqMain.getStr("Barcode"));
regTransitSample1.setSrcHospCode(reqMain.getStr("SrcHospCode")); regTransitSample1.setSrcHospCode(reqMain.getStr("SrcHospCode"));
List<RegTransitSample> regTransitSample2List = regTransitSampleMapper.getRegTransitSample(regTransitSample1); List<RegTransitSample> regTransitSample2List = regTransitSampleMapper.getRegTransitSample(regTransitSample1);
if(regTransitSample2List.size() > 0){ if(regTransitSample2List.size() > 0) return new Result("-1","存在相同记录的标本信息!");
for (RegTransitSample transitSample : regTransitSample2List) {
String barcode = transitSample.getBarcode();
regTransitSampleMapper.delRegTransitSample(barcode);
regTransitSampleMapper.delRegTransitSampleDetail(barcode);
}
}
JSONArray reqDetailList = jsonObject.getJSONObject("req").getJSONArray("reqDetail");
String checkPUR = ""; String checkPUR = "";
//填写默认值
List<RegTransitSampleDetail> regTransitSampleDetailList = reqDetailList.toList(RegTransitSampleDetail.class); List<RegTransitSampleDetail> regTransitSampleDetailList = reqDetailList.toList(RegTransitSampleDetail.class);
for (RegTransitSampleDetail regTransitSampleDetail : regTransitSampleDetailList) { for (RegTransitSampleDetail regTransitSampleDetail : regTransitSampleDetailList) {
checkPUR = checkPUR + "," + regTransitSampleDetail.getOrderItemName(); checkPUR = checkPUR + "," + regTransitSampleDetail.getOrderItemName();
} }
checkPUR = checkPUR.substring(1); checkPUR = checkPUR.substring(1);
regTransitSample.setCheckPUR(checkPUR); regTransitSample.setCheckPUR(checkPUR);
regTransitSample.setStatus("10");
regTransitSample.setDataSource("1");
regTransitSampleMapper.addRegTransitSample(regTransitSample); regTransitSampleMapper.addRegTransitSample(regTransitSample);
for (RegTransitSampleDetail regTransitSampleDetail : regTransitSampleDetailList) { for (RegTransitSampleDetail regTransitSampleDetail : regTransitSampleDetailList) {
regTransitSampleMapper.addRegTransitSampleDetail(regTransitSampleDetail); regTransitSampleMapper.addRegTransitSampleDetail(regTransitSampleDetail);
@ -71,7 +80,6 @@ public class RegInterfaceImpl {
return new Result("0",""); return new Result("0","");
} }
/** /**
* { * {
* "method":"delTransitSample", * "method":"delTransitSample",
@ -84,17 +92,78 @@ public class RegInterfaceImpl {
* @return * @return
*/ */
public Result delTransitSample(String jsonStr){ public Result delTransitSample(String jsonStr){
JSONObject jsonObject = JSONUtil.parseObj(jsonStr); String barcode = "";
String barcode = jsonObject.getJSONObject("reqMain").getStr("Barcode"); try{
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
barcode = jsonObject.getJSONObject("reqMain").getStr("barcode");
RegTransitSample regTransitSample = new RegTransitSample();
regTransitSample.setBarcode(barcode);
List<RegTransitSample> regTransitSampleList = regTransitSampleMapper.getRegTransitSample(regTransitSample);
for (RegTransitSample transitSample : regTransitSampleList) {
String status = transitSample.getStatus();
if(Integer.parseInt(status) > 20) return new Result("-1","标本已经送检,不允许删除!");
}
}catch (Exception e){
e.printStackTrace();
log.error("json格式不合法",e);
return new Result("-1","json格式不合法!");
}
regTransitSampleMapper.delRegTransitSample(barcode); regTransitSampleMapper.delRegTransitSample(barcode);
regTransitSampleMapper.delRegTransitSampleDetail(barcode); regTransitSampleMapper.delRegTransitSampleDetail(barcode);
return new Result("0","删除成功!"); return new Result("0","删除成功!");
} }
public Result queryTransitSample(String jsonStr){ public Result queryTransitSample(String jsonStr){
JSONObject jsonObject = JSONUtil.parseObj(jsonStr); try{
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
String barcode = jsonObject.getJSONObject("req").getJSONObject("param").getStr("barcode");
RegTransitSample regTransitSample = new RegTransitSample();
regTransitSample.setBarcode(barcode);
List<RegTransitSample> regTransitSampleList = regTransitSampleMapper.getRegTransitSample(regTransitSample);
return new Result("0","获取数据成功!",regTransitSampleList);
}catch (Exception e){
e.printStackTrace();
log.error("调用的json格式不合法!",e);
return new Result("-1","调用的json格式不合法!");
}
}
public Result updateStatus(String jsonStr){
try{
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
SampleSignVO sampleSignVO = jsonObject.getJSONObject("req").getJSONObject("param").toBean(SampleSignVO.class);
List<String> barcodeList = sampleSignVO.getBarcode();
Date sendPackTime = sampleSignVO.getSendPackTime();
String sendUserCode = sampleSignVO.getSendUserCode();
String sendUserName = sampleSignVO.getSendUserName();
//状态判断
for (String barcode : barcodeList) {
RegTransitSample regTransitSample1 = new RegTransitSample();
regTransitSample1.setBarcode(barcode);
List<RegTransitSample> regTransitSampleList = regTransitSampleMapper.getRegTransitSample(regTransitSample1);
if(regTransitSampleList.size() <= 0) return new Result("-1","没有查到该标本的信息!");
String status = regTransitSampleList.get(0).getStatus();
if(Integer.parseInt(status) >= 30) return new Result("-1","该标本已经送检!");
RegTransitSample regTransitSample = new RegTransitSample();
regTransitSample.setBarcode(barcode);
regTransitSample.setSendUserCode(sendUserCode);
regTransitSample.setSendUserName(sendUserName);
try{
regTransitSample.setSendPackTime(sendPackTime);
}catch (Exception e){
e.printStackTrace();
return new Result("-1","日期时间格式不正确!");
}
regTransitSample.setStatus("30");
regTransitSampleMapper.updateRegTransitSample(regTransitSample);
}
}catch (Exception e){
e.printStackTrace();
log.error("json格式不合法",e);
return new Result("-1","json格式不合法!");
}
return null; return null;
} }

View File

@ -19,6 +19,7 @@ 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.List;
@Service @Service
@ -53,10 +54,12 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
switch (method){ switch (method){
case "addTransitSample": //新增数据接口 case "addTransitSample": //新增数据接口
return regInterfaceImpl.addTransitSample(jsonStr); return regInterfaceImpl.addTransitSample(jsonStr);
case "delTransitSample": case "delTransitSample": //删除数据接口
return regInterfaceImpl.delTransitSample(jsonStr); return regInterfaceImpl.delTransitSample(jsonStr);
case "queryTransitSample": case "queryTransitSample": //查询数据接口
return regInterfaceImpl.queryTransitSample(jsonStr); return regInterfaceImpl.queryTransitSample(jsonStr);
case "update": //修改状态, 目前只写了送检状态的
return regInterfaceImpl.updateStatus(jsonStr);
// case "test": // case "test":
// return test(); // return test();
default: default:
@ -78,6 +81,13 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
String dstHospCode = sampleSignVO.getDstHospCode(); String dstHospCode = sampleSignVO.getDstHospCode();
String dstHospName = sampleSignVO.getDstHospName(); String dstHospName = sampleSignVO.getDstHospName();
String backReasons = sampleSignVO.getBackReasons(); String backReasons = sampleSignVO.getBackReasons();
Date affirmTime = sampleSignVO.getAffirmTime();
String affirmUserCode = sampleSignVO.getAffirmUserCode();
String affirmUserName = sampleSignVO.getAffirmUserName();
Date sendPackTime = sampleSignVO.getSendPackTime();
String sendUserName = sampleSignVO.getSendUserName();
String sendUserCode = sampleSignVO.getSendUserCode();
List<String> barcode = sampleSignVO.getBarcode(); List<String> barcode = sampleSignVO.getBarcode();
for (int i = 0; i < barcode.size(); i++) { for (int i = 0; i < barcode.size(); i++) {
RegTransitSample regTransitSample = new RegTransitSample(); RegTransitSample regTransitSample = new RegTransitSample();
@ -86,16 +96,27 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
if(sysUserOne == null) return new Result("-1","未查询到员工信息!"); if(sysUserOne == null) return new Result("-1","未查询到员工信息!");
String nickName = sysUserOne.getNickName(); String nickName = sysUserOne.getNickName();
switch (status){ switch (status){
case "20": //标本采集
if(affirmTime == null) return new Result("-1","affirmTime标本采集时间不能为空!");
if(affirmUserName == null || affirmUserName.equals("")) return new Result("-1","affirmUserName标本采集人姓名不能为空!");
regTransitSample.setAffirmTime(affirmTime);
regTransitSample.setAffirmUserCode(affirmUserCode);
regTransitSample.setAffirmUserName(affirmUserName);
case "30": //标本送检
if(dstHospName == null || dstHospName.equals("")) return new Result("-1","dstHospName不能为空!");
if(sendPackTime == null) return new Result("-1","sendPackTime不能为空!");
if(sendUserName == null || sendUserName.equals("")) return new Result("-1","sendUserName不能为空!");
regTransitSample.setDstHospCode(dstHospCode);
regTransitSample.setDstHospName(dstHospName);
regTransitSample.setSendPackTime(sendPackTime);
regTransitSample.setSendUserCode(sendUserCode);
regTransitSample.setSendUserName(sendUserName);
break;
case "50": //标本签收 case "50": //标本签收
regTransitSample.setSignInTime(commonUtil.getCurrentTime()); regTransitSample.setSignInTime(commonUtil.getCurrentTime());
regTransitSample.setSignInUserCode(userId); regTransitSample.setSignInUserCode(userId);
System.out.println("名称:"+commonUtil.getSysUserOne(userId).toString());
regTransitSample.setSignInUserName(nickName); regTransitSample.setSignInUserName(nickName);
break; break;
case "30": //标本送检
regTransitSample.setDstHospCode(dstHospCode);
regTransitSample.setDstHospName(dstHospName);
break;
case "100": //标本退回 case "100": //标本退回
regTransitSample.setBackReasons(backReasons); regTransitSample.setBackReasons(backReasons);
regTransitSample.setBackUserCode(userId); regTransitSample.setBackUserCode(userId);

View File

@ -5,14 +5,14 @@
<mapper namespace="com.czlis.transitPF.mapper.RegReportMapper"> <mapper namespace="com.czlis.transitPF.mapper.RegReportMapper">
<select id="getSampleTypeCount" resultType="map"> <select id="getSampleTypeCount" resultType="map">
select OrderTime,srchospname,sampletypecode,sampletypename,count(1) as sl from reg_TransitSample select srchospname,sampletypecode,sampletypename,count(1) as sl from reg_TransitSample
<where> <where>
<if test="SrcHospName != null and SrcHospName !=''">and SrcHospName = #{SrcHospName}</if> <if test="SrcHospName != null and SrcHospName !=''">and SrcHospName = #{SrcHospName}</if>
<if test="SampleTypeCode != null and SampleTypeCode !=''">and sampletypecode = #{SampleTypeCode}</if> <if test="SampleTypeCode != null and SampleTypeCode !=''">and sampletypecode = #{SampleTypeCode}</if>
<if test="SampleTypeName != null and SampleTypeName !=''">and sampletypename = #{SampleTypeName}</if> <if test="SampleTypeName != null and SampleTypeName !=''">and sampletypename = #{SampleTypeName}</if>
<if test="OrderTime != null">and (OrderTime between #{DateStart} and #{DateEnd})</if> <if test="OrderTime != null">and (OrderTime between #{DateStart} and #{DateEnd})</if>
</where> </where>
group by OrderTime,srchospname,sampletypecode,sampletypename group by srchospname,sampletypecode,sampletypename
</select> </select>
<select id="getItemCount" resultType="map"> <select id="getItemCount" resultType="map">