From ed2c621be54bb033cd3a80a88407118986060a50 Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Fri, 14 Nov 2025 16:26:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E6=A3=80=E9=AA=8C=E4=B8=AD?= =?UTF-8?q?=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/lis8.0/updatedb_lis8.0.sql | 5 + .../mapper/RegTransitSampleMapper.java | 2 +- .../transitPF/pojo/DTO/SampleSignVO.java | 23 +++- .../transitPF/pojo/RegTransitSample.java | 7 +- .../service/impl/RegInterfaceImpl.java | 103 +++++++++++++++--- .../impl/RegTransitSampleServiceImpl.java | 35 ++++-- .../main/resources/mapper/RegReportMapper.xml | 4 +- 7 files changed, 143 insertions(+), 36 deletions(-) diff --git a/sql/lis8.0/updatedb_lis8.0.sql b/sql/lis8.0/updatedb_lis8.0.sql index e2daceb..68bbb88 100644 --- a/sql/lis8.0/updatedb_lis8.0.sql +++ b/sql/lis8.0/updatedb_lis8.0.sql @@ -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) 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') begin insert into com_opt(yq,xxdh,xxlb,xxqz,bz,lx) values('','A5MERGEA4','SYS','0','A5报告单是否合并成A4打印','1') diff --git a/transitPF/src/main/java/com/czlis/transitPF/mapper/RegTransitSampleMapper.java b/transitPF/src/main/java/com/czlis/transitPF/mapper/RegTransitSampleMapper.java index c21fed6..77fd798 100644 --- a/transitPF/src/main/java/com/czlis/transitPF/mapper/RegTransitSampleMapper.java +++ b/transitPF/src/main/java/com/czlis/transitPF/mapper/RegTransitSampleMapper.java @@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; public interface RegTransitSampleMapper { - List getRegTransitSample(RegTransitSample labQuerySample); + List getRegTransitSample(RegTransitSample regTransitSample); List getRegTransitSampleDetail(RegTransitSampleDetail regTransitSampleDetail); void addRegTransitSample(RegTransitSample regTransitSample); diff --git a/transitPF/src/main/java/com/czlis/transitPF/pojo/DTO/SampleSignVO.java b/transitPF/src/main/java/com/czlis/transitPF/pojo/DTO/SampleSignVO.java index 5d40883..1b03cbd 100644 --- a/transitPF/src/main/java/com/czlis/transitPF/pojo/DTO/SampleSignVO.java +++ b/transitPF/src/main/java/com/czlis/transitPF/pojo/DTO/SampleSignVO.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; import java.util.List; @Data @@ -12,13 +13,25 @@ import java.util.List; @NoArgsConstructor public class SampleSignVO { @ApiModelProperty(value = "条码集合") - List barcode; + private List barcode; @ApiModelProperty(value = "状态") - String status; + private String status; @ApiModelProperty(value = "送检医院代码") - String dstHospCode; + private String dstHospCode; @ApiModelProperty(value = "送检医院名称") - String dstHospName; + private String dstHospName; @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; } diff --git a/transitPF/src/main/java/com/czlis/transitPF/pojo/RegTransitSample.java b/transitPF/src/main/java/com/czlis/transitPF/pojo/RegTransitSample.java index f2b01f3..2f92242 100644 --- a/transitPF/src/main/java/com/czlis/transitPF/pojo/RegTransitSample.java +++ b/transitPF/src/main/java/com/czlis/transitPF/pojo/RegTransitSample.java @@ -17,7 +17,6 @@ public class RegTransitSample { /** * 病人ID */ - @ApiModelProperty(value = "病人ID") private String PatId; /** * 就诊卡类型 @@ -130,7 +129,6 @@ public class RegTransitSample { /** * 标本条码号 */ - @ApiModelProperty(value = "标本条码号") private String Barcode; /** * 试管编码 @@ -236,6 +234,9 @@ public class RegTransitSample { private Date create_time; private String update_by; private Date update_time; + /** + * 数据来源:1.委托机构,2.区域流转平台 + */ private String DataSource; /** * 检验目的,项目字段拼接 @@ -303,8 +304,6 @@ public class RegTransitSample { */ private Date BackTime; - - private String DateType; private Date DateStart; private Date DateEnd; diff --git a/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegInterfaceImpl.java b/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegInterfaceImpl.java index 4f52bb2..f14ab51 100644 --- a/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegInterfaceImpl.java +++ b/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegInterfaceImpl.java @@ -1,16 +1,19 @@ package com.czlis.transitPF.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.czlis.common.core.domain.Result; import com.czlis.transitPF.mapper.RegTransitSampleMapper; +import com.czlis.transitPF.pojo.DTO.SampleSignVO; import com.czlis.transitPF.pojo.RegTransitSample; import com.czlis.transitPF.pojo.RegTransitSampleDetail; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.Date; import java.util.List; @Component @@ -18,6 +21,7 @@ import java.util.List; public class RegInterfaceImpl { @Autowired RegTransitSampleMapper regTransitSampleMapper; + /** *{ * "method":"addTransitSample", @@ -35,35 +39,40 @@ public class RegInterfaceImpl { * @return */ public Result addTransitSample(String jsonStr){ - JSONObject jsonObject = null; + JSONObject reqMain = null; + JSONArray reqDetailList = null; 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){ e.printStackTrace(); 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 regTransitSample1 = new RegTransitSample(); regTransitSample1.setBarcode(reqMain.getStr("Barcode")); regTransitSample1.setSrcHospCode(reqMain.getStr("SrcHospCode")); List regTransitSample2List = regTransitSampleMapper.getRegTransitSample(regTransitSample1); - if(regTransitSample2List.size() > 0){ - for (RegTransitSample transitSample : regTransitSample2List) { - String barcode = transitSample.getBarcode(); - regTransitSampleMapper.delRegTransitSample(barcode); - regTransitSampleMapper.delRegTransitSampleDetail(barcode); - } - } - JSONArray reqDetailList = jsonObject.getJSONObject("req").getJSONArray("reqDetail"); + if(regTransitSample2List.size() > 0) return new Result("-1","存在相同记录的标本信息!"); String checkPUR = ""; + //填写默认值 List regTransitSampleDetailList = reqDetailList.toList(RegTransitSampleDetail.class); for (RegTransitSampleDetail regTransitSampleDetail : regTransitSampleDetailList) { checkPUR = checkPUR + "," + regTransitSampleDetail.getOrderItemName(); } checkPUR = checkPUR.substring(1); regTransitSample.setCheckPUR(checkPUR); + regTransitSample.setStatus("10"); + regTransitSample.setDataSource("1"); regTransitSampleMapper.addRegTransitSample(regTransitSample); for (RegTransitSampleDetail regTransitSampleDetail : regTransitSampleDetailList) { regTransitSampleMapper.addRegTransitSampleDetail(regTransitSampleDetail); @@ -71,7 +80,6 @@ public class RegInterfaceImpl { return new Result("0",""); } - /** * { * "method":"delTransitSample", @@ -84,17 +92,78 @@ public class RegInterfaceImpl { * @return */ public Result delTransitSample(String jsonStr){ - JSONObject jsonObject = JSONUtil.parseObj(jsonStr); - String barcode = jsonObject.getJSONObject("reqMain").getStr("Barcode"); + String barcode = ""; + try{ + JSONObject jsonObject = JSONUtil.parseObj(jsonStr); + barcode = jsonObject.getJSONObject("reqMain").getStr("barcode"); + RegTransitSample regTransitSample = new RegTransitSample(); + regTransitSample.setBarcode(barcode); + List 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.delRegTransitSampleDetail(barcode); return new Result("0","删除成功!"); } - 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 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 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 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; } diff --git a/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegTransitSampleServiceImpl.java b/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegTransitSampleServiceImpl.java index 36aabc8..c79b418 100644 --- a/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegTransitSampleServiceImpl.java +++ b/transitPF/src/main/java/com/czlis/transitPF/service/impl/RegTransitSampleServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; @Service @@ -53,10 +54,12 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService { switch (method){ case "addTransitSample": //新增数据接口 return regInterfaceImpl.addTransitSample(jsonStr); - case "delTransitSample": + case "delTransitSample": //删除数据接口 return regInterfaceImpl.delTransitSample(jsonStr); - case "queryTransitSample": + case "queryTransitSample": //查询数据接口 return regInterfaceImpl.queryTransitSample(jsonStr); + case "update": //修改状态, 目前只写了送检状态的 + return regInterfaceImpl.updateStatus(jsonStr); // case "test": // return test(); default: @@ -78,6 +81,13 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService { String dstHospCode = sampleSignVO.getDstHospCode(); String dstHospName = sampleSignVO.getDstHospName(); 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 barcode = sampleSignVO.getBarcode(); for (int i = 0; i < barcode.size(); i++) { RegTransitSample regTransitSample = new RegTransitSample(); @@ -86,16 +96,27 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService { if(sysUserOne == null) return new Result("-1","未查询到员工信息!"); String nickName = sysUserOne.getNickName(); 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": //标本签收 regTransitSample.setSignInTime(commonUtil.getCurrentTime()); regTransitSample.setSignInUserCode(userId); - System.out.println("名称:"+commonUtil.getSysUserOne(userId).toString()); regTransitSample.setSignInUserName(nickName); break; - case "30": //标本送检 - regTransitSample.setDstHospCode(dstHospCode); - regTransitSample.setDstHospName(dstHospName); - break; case "100": //标本退回 regTransitSample.setBackReasons(backReasons); regTransitSample.setBackUserCode(userId); diff --git a/transitPF/src/main/resources/mapper/RegReportMapper.xml b/transitPF/src/main/resources/mapper/RegReportMapper.xml index 58174f5..287f147 100644 --- a/transitPF/src/main/resources/mapper/RegReportMapper.xml +++ b/transitPF/src/main/resources/mapper/RegReportMapper.xml @@ -5,14 +5,14 @@