From 19ed34db34e71e2f24448594c46976dafa7ea9ab Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Fri, 14 Aug 2026 10:14:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E5=8F=89=E9=85=8D=E8=A1=80=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E4=B8=B4=E5=BA=8A=E5=8F=91=E8=A1=80=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bus/mapper/XkBackoutDetailMapper.java | 4 + .../bus/mapper/XkBackoutMainMapper.java | 4 + .../czblood/bus/mapper/XkOutDetailMapper.java | 1 + .../czblood/bus/mapper/XkOutMainMapper.java | 2 + .../com/czblood/bus/pojo/XkBackoutDetail.java | 23 +++ .../com/czblood/bus/pojo/XkBackoutMain.java | 36 ++++ .../com/czblood/bus/pojo/XkBloodInfo.java | 2 +- .../com/czblood/bus/pojo/XkDiscardDetail.java | 21 ++ .../com/czblood/bus/pojo/XkDiscardMain.java | 29 +++ .../com/czblood/bus/utils/BloodBankUtil.java | 2 +- .../mapper/XkBackoutDetailMapper.xml | 5 + .../resources/mapper/XkBackoutMainMapper.xml | 5 + .../mapper/XkCheckBloodtypeMapper.xml | 3 +- .../resources/mapper/XkOutDetailMapper.xml | 30 +++ .../main/resources/mapper/XkOutMainMapper.xml | 55 ++++++ .../controller/BloodOutController.java | 27 ++- .../controller/MatchBloodController.java | 8 +- .../busBloodbank/mapper/BloodOutMapper.java | 16 ++ .../busBloodbank/mapper/MatchBloodMapper.java | 1 + .../busBloodbank/pojo/DTO/BloodOutDTO.java | 17 ++ .../pojo/DTO/BloodOutInfoDTO.java | 20 ++ .../busBloodbank/pojo/DTO/MatchBloodDTO.java | 1 + .../busBloodbank/pojo/VO/BloodOutInfoVO.java | 20 ++ .../pojo/VO/MatchBloodListQueryVO.java | 2 + .../busBloodbank/service/BloodOutService.java | 4 + .../service/MatchBloodService.java | 1 + .../service/impl/BloodOutServiceImpl.java | 186 ++++++++++++++++-- .../service/impl/MatchBloodServiceImpl.java | 12 ++ .../busBloodbank/utils/BloodOutUtil.java | 32 +++ .../busBloodbank/utils/MatchBloodUtil.java | 2 +- .../main/resources/mapper/BloodOutMapper.xml | 153 ++++++++++++++ .../resources/mapper/MatchBloodMapper.xml | 60 ++++-- sql/updatedb_blood_pk.sql | 50 +++++ 33 files changed, 791 insertions(+), 43 deletions(-) create mode 100644 blood_bus/src/main/java/com/czblood/bus/mapper/XkBackoutDetailMapper.java create mode 100644 blood_bus/src/main/java/com/czblood/bus/mapper/XkBackoutMainMapper.java create mode 100644 blood_bus/src/main/java/com/czblood/bus/pojo/XkBackoutDetail.java create mode 100644 blood_bus/src/main/java/com/czblood/bus/pojo/XkBackoutMain.java create mode 100644 blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardDetail.java create mode 100644 blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardMain.java create mode 100644 blood_bus/src/main/resources/mapper/XkBackoutDetailMapper.xml create mode 100644 blood_bus/src/main/resources/mapper/XkBackoutMainMapper.xml create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/BloodOutDTO.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/BloodOutInfoDTO.java create mode 100644 blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/BloodOutInfoVO.java diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackoutDetailMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackoutDetailMapper.java new file mode 100644 index 0000000..451f847 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackoutDetailMapper.java @@ -0,0 +1,4 @@ +package com.czblood.bus.mapper; + +public interface XkBackoutDetailMapper { +} diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackoutMainMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackoutMainMapper.java new file mode 100644 index 0000000..7deb848 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackoutMainMapper.java @@ -0,0 +1,4 @@ +package com.czblood.bus.mapper; + +public interface XkBackoutMainMapper { +} diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkOutDetailMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkOutDetailMapper.java index 3e5d274..3100178 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkOutDetailMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkOutDetailMapper.java @@ -6,4 +6,5 @@ import java.util.List; public interface XkOutDetailMapper { List queryListByBillNo(String billNo); + void insert(XkOutDetail xkOutDetail); } diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkOutMainMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkOutMainMapper.java index ad45f7f..8e406ab 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkOutMainMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkOutMainMapper.java @@ -5,4 +5,6 @@ import org.apache.ibatis.annotations.Param; public interface XkOutMainMapper { XkOutMain queryOne(@Param("billNo") String billNo); + void insert(XkOutMain xkOutMain); + } diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkBackoutDetail.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkBackoutDetail.java new file mode 100644 index 0000000..3791a04 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkBackoutDetail.java @@ -0,0 +1,23 @@ +package com.czblood.bus.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class XkBackoutDetail { + private String bill_no; + private Integer sid; + private String blood_no; + private BigDecimal price; + private String Reason_Type; + private String reason; + private BigDecimal Temperature; + private String Pack_Full; + private String cancle_flag; + private String product_no; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkBackoutMain.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkBackoutMain.java new file mode 100644 index 0000000..038d984 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkBackoutMain.java @@ -0,0 +1,36 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("血液退库主表") +public class XkBackoutMain { + private String billNo; + private String org_type; + private String hos_id; + private String back_org; + private String handle_person; + private BigDecimal total_money; + private Date back_date; + private String send_flag; + private String check_flag; + private String out_flag; + private String input_person; + private Date input_date; + private String audit_person; + private Date audit_date; + private String bill_cancle_flag; + private String check_person; + private Date check_date; + private String check_result; + private String return_remark; + private String remark; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkBloodInfo.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkBloodInfo.java index d1a6fc1..def4502 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkBloodInfo.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkBloodInfo.java @@ -49,7 +49,7 @@ public class XkBloodInfo { private String blood_bag_no; @ApiModelProperty("血袋生成批号") private String blood_bag_batch; - @ApiModelProperty("血液状态,1.在库,4.出库") + @ApiModelProperty("血液状态,1.在库,4.出库,2报废") private String blood_status; @ApiModelProperty("特殊处理") private String special_deal; diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardDetail.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardDetail.java new file mode 100644 index 0000000..0f28031 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardDetail.java @@ -0,0 +1,21 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("血液报废详情表") +public class XkDiscardDetail { + private String bill_no; + private Integer sid; + private String blood_no; + private BigDecimal price; + private String reason; + private String product_no; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardMain.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardMain.java new file mode 100644 index 0000000..b39e18c --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardMain.java @@ -0,0 +1,29 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("报废血液主表") +public class XkDiscardMain { + private String bill_no; + private String handle_person; + private BigDecimal total_money; + private Date discard_date; + private String input_person; + private Date input_date; + private String audit_person; + private Date audit_date; + private String remark; + private String ratify_person; + private String ratify_attitude; + private String discard_approach; + private String discard_method; +} diff --git a/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java b/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java index 58c7eb7..adcf383 100644 --- a/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java +++ b/blood_bus/src/main/java/com/czblood/bus/utils/BloodBankUtil.java @@ -219,7 +219,7 @@ public class BloodBankUtil { List xkMatchDetailList = xkMatchDetailMapper.queryListByBillNo(billNo); if(xkMatchDetailList.isEmpty()) return new Result("0","校验通过"); List collect = xkMatchDetailList.stream().filter(xkMatchDetail -> xkMatchDetail.getMatch_medic().equals(userId)).collect(Collectors.toList()); - if(collect.size() > 0){ + if(collect.isEmpty()){ return new Result("-1","当前交叉配血单[" + billNo + "]是由【" + getUserInfo(userId).getNickName() + "】登记,您没有权限操作!"); } diff --git a/blood_bus/src/main/resources/mapper/XkBackoutDetailMapper.xml b/blood_bus/src/main/resources/mapper/XkBackoutDetailMapper.xml new file mode 100644 index 0000000..06fd6fb --- /dev/null +++ b/blood_bus/src/main/resources/mapper/XkBackoutDetailMapper.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/blood_bus/src/main/resources/mapper/XkBackoutMainMapper.xml b/blood_bus/src/main/resources/mapper/XkBackoutMainMapper.xml new file mode 100644 index 0000000..f8a1736 --- /dev/null +++ b/blood_bus/src/main/resources/mapper/XkBackoutMainMapper.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/blood_bus/src/main/resources/mapper/XkCheckBloodtypeMapper.xml b/blood_bus/src/main/resources/mapper/XkCheckBloodtypeMapper.xml index 02d8b14..9d0d1c4 100644 --- a/blood_bus/src/main/resources/mapper/XkCheckBloodtypeMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkCheckBloodtypeMapper.xml @@ -74,7 +74,8 @@ Sub_Blood = #{Sub_Blood}, bz1 = #{bz1}, plt_test = #{plt_test}, - where bill_no = #{billNo} + bill_no = #{bill_no} + where bill_no = #{bill_no} delete from xk_check_bloodtype where bill_no = #{billNo} diff --git a/blood_bus/src/main/resources/mapper/XkOutDetailMapper.xml b/blood_bus/src/main/resources/mapper/XkOutDetailMapper.xml index 397fad7..b0b49ca 100644 --- a/blood_bus/src/main/resources/mapper/XkOutDetailMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkOutDetailMapper.xml @@ -2,6 +2,36 @@ + + insert into xk_out_detail ( + blood_no, + price, + special_deal, + have_reaction, + finish_sign, + accept_flag, + exp1, + exp2, + exp3, + remark, + accept_dept, + product_no, + bill_no,sid + )values ( + #{blood_no}, + #{price}, + #{special_deal}, + #{have_reaction}, + #{finish_sign}, + #{accept_flag}, + #{exp1}, + #{exp2}, + #{exp3}, + #{remark}, + #{accept_dept}, + #{product_no}, + #{bill_no},#{sid} ) + diff --git a/blood_bus/src/main/resources/mapper/XkOutMainMapper.xml b/blood_bus/src/main/resources/mapper/XkOutMainMapper.xml index 060f9cb..bc1121b 100644 --- a/blood_bus/src/main/resources/mapper/XkOutMainMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkOutMainMapper.xml @@ -2,6 +2,61 @@ + + insert into xk_out_main ( + total_money, + take_person, + handle_person, + apply_no, + patient_name, + beinhos_id, + dept_id, + check_no, + bill_sort, + notify_time, + is_free_account, + input_person, + input_date, + check_sign, + check_person, + check_date, + audit_person, + remark, + exp1, + exp2, + last_modified, + all_recycle_sign, + receive_person, + receive_id, + bill_no, hos_id,occur_date + )values ( + #{total_money}, + #{take_person}, + #{handle_person}, + #{apply_no}, + #{patient_name}, + #{beinhos_id}, + #{dept_id}, + #{check_no}, + #{bill_sort}, + #{notify_time}, + #{is_free_account}, + #{input_person}, + #{input_date}, + #{check_sign}, + #{check_person}, + #{check_date}, + #{audit_person}, + #{remark}, + #{exp1}, + #{exp2}, + #{last_modified}, + #{all_recycle_sign}, + #{receive_person}, + #{receive_id}, + #{bill_no}, #{hos_id}, #{occur_date} + ) + SELECT COUNT(1) FROM xk_transfuse_apply_bloodbreed A JOIN xk_blood_breed B ON B.breed_code=A.blood_breed AND B.Is_match='N' WHERE A.bill_no=#{billNo} and b.blood_kind = '0002' + + + + + + + \ No newline at end of file diff --git a/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml b/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml index 7e2f751..111784c 100644 --- a/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml +++ b/blood_bus_bloodbank/src/main/resources/mapper/MatchBloodMapper.xml @@ -61,20 +61,14 @@ xk_transfuse_apply.dept_id, xk_transfuse_apply.patient_bed, xk_transfuse_apply.bill_stasus, - xk_transfuse_apply_bloodbreed.blood_breed, - xk_transfuse_apply_bloodbreed.blood_num, - xk_transfuse_apply_bloodbreed.unit, - xk_transfuse_apply_bloodbreed.replace_bloodbreed, xk_check_bloodtype.affirm_abo, xk_check_bloodtype.check_rh, xk_check_bloodtype.bill_no, xk_check_bloodtype.affirm_antibody, - xk_transfuse_apply_bloodbreed.apply_bloodtype, xk_check_bloodtype.Sub_Blood FROM xk_patient_info RIGHT OUTER JOIN xk_transfuse_apply ON xk_patient_info.beinhos_id = xk_transfuse_apply.beinhos_id, - xk_transfuse_apply_bloodbreed, xk_check_bloodtype - WHERE ( xk_transfuse_apply.bill_no = xk_transfuse_apply_bloodbreed.bill_no ) and + WHERE ( xk_transfuse_apply.bill_no = xk_check_bloodtype.apply_no ) and ( xk_transfuse_apply.bill_no = #{applyNo}) @@ -208,14 +202,16 @@ xk_match_main.dept_id, xk_match_main.bill_status FROM xk_match_main,xk_check_bloodtype - WHERE (xk_match_main.test_date between #{stime} AND #{etime}) AND - (xk_match_main.bill_no = #{billNo}) AND - ( xk_match_main.apply_no NOT in(select xk_match_apply.apply_no from xk_match_apply) )AND - ( xk_match_main.check_no = xk_check_bloodtype.bill_no) AND - (xk_match_main.apply_no = #{applyNo}) and - (xk_match_main.beinhos_id like '%'+#{beinhos_id}+'%' ) and - ( xk_check_bloodtype.bill_sort = 'C' Or Isnull(xk_check_bloodtype.bill_sort,'') = '') AND - (xk_match_main.dept_id = #{dept} Or xk_match_main.dept_id = #{dept} or isnull(xk_match_main.dept_id,'') = '') + WHERE (xk_match_main.test_date between #{stime} AND #{etime}) + AND (xk_match_main.bill_no = #{billNo}) + AND ( xk_match_main.apply_no NOT in(select xk_match_apply.apply_no from xk_match_apply) ) + AND ( xk_match_main.check_no = xk_check_bloodtype.bill_no) + and (xk_match_main.apply_no = #{applyNo}) + and (xk_match_main.beinhos_id like '%'+#{beinhos_id}+'%' ) + AND ( xk_check_bloodtype.bill_sort = 'C' Or Isnull(xk_check_bloodtype.bill_sort,'') = '') + and (xk_match_main.dept_id = #{dept} Or xk_match_main.dept_id = #{dept} or isnull(xk_match_main.dept_id,'') = '') + and (xk_match_main.patient_name like '%'+#{patientName}+'%' ) + and (xk_match_main.bill_status = #{status}) + \ No newline at end of file diff --git a/sql/updatedb_blood_pk.sql b/sql/updatedb_blood_pk.sql index 71284cd..2dc74fa 100644 --- a/sql/updatedb_blood_pk.sql +++ b/sql/updatedb_blood_pk.sql @@ -130,3 +130,53 @@ IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_instorage_d ALTER TABLE xk_instorage_detail ADD CONSTRAINT PK_xk_instorage_detail PRIMARY KEY CLUSTERED (bill_no,blood_no,product_no); END GO + +ALTER TABLE xk_backout_detail ALTER COLUMN product_no VARCHAR(18) NOT NULL; +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_backout_detail' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_backout_detail ADD CONSTRAINT PK_xk_backout_detail PRIMARY KEY CLUSTERED (bill_no,blood_no,product_no); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_backout_main' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_backout_main ADD CONSTRAINT PK_xk_backout_main PRIMARY KEY CLUSTERED (bill_no); + END +GO + + +ALTER TABLE xk_discard_detail ALTER COLUMN product_no VARCHAR(18) NOT NULL; +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_discard_main' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_discard_main ADD CONSTRAINT PK_xk_discard_main PRIMARY KEY CLUSTERED (bill_no); + END +GO + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_discard_detail' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_discard_detail ADD CONSTRAINT PK_xk_discard_detail PRIMARY KEY CLUSTERED (bill_no,blood_no,product_no); + END +GO + +ALTER TABLE xk_out_detail ALTER COLUMN blood_no VARCHAR(32) NOT NULL; +ALTER TABLE xk_out_detail ALTER COLUMN product_no VARCHAR(18) NOT NULL; +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_out_detail' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_out_detail ADD CONSTRAINT PK_xk_out_detail PRIMARY KEY CLUSTERED (bill_no,blood_no,product_no); + END +GO + + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_out_main' AND type = 'PK' ) + BEGIN + + ALTER TABLE xk_out_main ADD CONSTRAINT PK_xk_out_main PRIMARY KEY CLUSTERED (bill_no); + END +GO +