From 7a93c10ad05f676e8f1454f4dcd54570b8e2f09a Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Thu, 10 Sep 2026 15:42:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=80=E8=A2=8B=E5=9B=9E=E6=94=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bus/mapper/XkRecycleBagDetailMapper.java | 1 + .../bus/mapper/XkRecycleBagMainMapper.java | 1 + .../czblood/bus/pojo/XkRecycleBagMain.java | 2 +- .../mapper/XkRecycleBagDetailMapper.xml | 6 ++ .../mapper/XkRecycleBagMainMapper.xml | 10 +++ .../controller/RecycleBagController.java | 24 ++++-- .../busNurse/mapper/RecycleBagMapper.java | 1 + .../busNurse/pojo/VO/RecycleBagVO.java | 23 ++++++ .../busNurse/service/RecycleBagService.java | 3 +- .../service/impl/RecycleBagServiceImpl.java | 81 +++++++++++++++++++ .../resources/mapper/RecycleBagMapper.xml | 9 +++ 11 files changed, 151 insertions(+), 10 deletions(-) create mode 100644 blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/RecycleBagVO.java diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagDetailMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagDetailMapper.java index 7800bbb..6ec3b70 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagDetailMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagDetailMapper.java @@ -6,4 +6,5 @@ import java.util.List; public interface XkRecycleBagDetailMapper { List queryList(String billNo); + void insert(XkRecycleBagDetail xkRecycleBagDetail); } diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagMainMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagMainMapper.java index 168616c..7cf329c 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagMainMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagMainMapper.java @@ -4,4 +4,5 @@ import com.czblood.bus.pojo.XkRecycleBagMain; public interface XkRecycleBagMainMapper { XkRecycleBagMain queryOne(String billNo); + void insert(XkRecycleBagMain xkRecycleBagMain); } diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkRecycleBagMain.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkRecycleBagMain.java index a2647c9..07b8e14 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkRecycleBagMain.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkRecycleBagMain.java @@ -22,7 +22,7 @@ public class XkRecycleBagMain { private String receive_person; @ApiModelProperty("接收日期") private Date receive_date; - @ApiModelProperty("接收数量") + @ApiModelProperty("接收数量,总数") private Integer sum; private String Exp1; private String Exp2; diff --git a/blood_bus/src/main/resources/mapper/XkRecycleBagDetailMapper.xml b/blood_bus/src/main/resources/mapper/XkRecycleBagDetailMapper.xml index 4d8f9cd..0a9009e 100644 --- a/blood_bus/src/main/resources/mapper/XkRecycleBagDetailMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkRecycleBagDetailMapper.xml @@ -2,6 +2,12 @@ + + insert into xk_recycle_bag_detail (bill_no, SID, blood_no, receive_person, receive_date,product_no,destroy_person,destroy_time + )values( + #{bill_no},#{sid},#{blood_no},#{receive_person},#{receive_date},#{product_no},#{destroy_person},#{destroy_time} + ) + select * from xk_recycle_bag_main where bill_no = #{billNo} diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/RecycleBagController.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/RecycleBagController.java index 6f247ff..9bd2a4d 100644 --- a/blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/RecycleBagController.java +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/RecycleBagController.java @@ -2,13 +2,14 @@ package com.czblood.busNurse.controller; import com.czblood.busNurse.pojo.DTO.RecycleBagDTO; import com.czblood.busNurse.pojo.VO.RecycleBagSearchVO; +import com.czblood.busNurse.pojo.VO.RecycleBagVO; import com.czblood.busNurse.service.RecycleBagService; +import com.czblood.common.core.controller.BaseController; import com.czblood.common.core.domain.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -17,7 +18,7 @@ import java.util.List; @RestController @RequestMapping("/bus/nurse/recycleBag") @Slf4j -public class RecycleBagController { +public class RecycleBagController extends BaseController { @Resource @@ -25,22 +26,29 @@ public class RecycleBagController { @ApiOperation("获取回收血液信息") - @RequestMapping("/getBloodInfo") + @GetMapping("/getBloodInfo") public Result getBloodInfo(String bloodNo,String productNo) { return recycleBagService.getBloodInfo(bloodNo,productNo); } @ApiOperation("批量查询血液回收单据信息") - @RequestMapping("/batchSearch") - public Result batchSearch(RecycleBagSearchVO recycleBagSearchVO){ + @PostMapping("/batchSearch") + public Result batchSearch(@RequestBody RecycleBagSearchVO recycleBagSearchVO){ return recycleBagService.batchSearch(recycleBagSearchVO); } @ApiOperation("批量查询血液回收信息列表") - @RequestMapping("/queryBatchBloodInfo") - public Result queryBatchBloodInfoList(List recycleBagDTOList){ + @PostMapping("/queryBatchBloodInfo") + public Result queryBatchBloodInfoList(@RequestBody List recycleBagDTOList){ return recycleBagService.queryBatchBloodInfoList(recycleBagDTOList); } + @ApiOperation("保存血液回收单据信息") + @PostMapping("/saveData") + public Result saveData(@RequestBody RecycleBagVO recycleBagVO){ + recycleBagVO.setUserId(getUsername()); + return recycleBagService.saveData(recycleBagVO); + } + } diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/mapper/RecycleBagMapper.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/mapper/RecycleBagMapper.java index 743a5b5..c37b33a 100644 --- a/blood_bus_nurse/src/main/java/com/czblood/busNurse/mapper/RecycleBagMapper.java +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/mapper/RecycleBagMapper.java @@ -10,4 +10,5 @@ public interface RecycleBagMapper { List> getBloodInfo(String bloodNo, String productNo); List queryBatchData(RecycleBagSearchVO recycleBagSearchVO); List> queryBillNoBloodInfo(String billNo); + int queryRecycleBagCount(String billNo); } diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/RecycleBagVO.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/RecycleBagVO.java new file mode 100644 index 0000000..7665662 --- /dev/null +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/pojo/VO/RecycleBagVO.java @@ -0,0 +1,23 @@ +package com.czblood.busNurse.pojo.VO; + +import com.czblood.bus.pojo.XkRecycleBagDetail; +import com.czblood.bus.pojo.XkRecycleBagMain; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class RecycleBagVO { + @ApiModelProperty("血袋回收主表") + private XkRecycleBagMain xkRecycleBagMain; + @ApiModelProperty("血袋回收明细表") + private List xkRecycleBagDetailList; + private String userId; + @ApiModelProperty("选中的发血单号列表") + private List billNoList; +} diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/RecycleBagService.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/RecycleBagService.java index 46f792b..7d85715 100644 --- a/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/RecycleBagService.java +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/RecycleBagService.java @@ -2,6 +2,7 @@ package com.czblood.busNurse.service; import com.czblood.busNurse.pojo.DTO.RecycleBagDTO; import com.czblood.busNurse.pojo.VO.RecycleBagSearchVO; +import com.czblood.busNurse.pojo.VO.RecycleBagVO; import com.czblood.common.core.domain.Result; import java.util.List; @@ -9,6 +10,6 @@ import java.util.List; public interface RecycleBagService { Result getBloodInfo(String bloodNo, String productNo); Result batchSearch(RecycleBagSearchVO recycleBagSearchVO); - Result queryBatchBloodInfoList(List recycleBagDTOList); + Result saveData(RecycleBagVO recycleBagVO); } diff --git a/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/RecycleBagServiceImpl.java b/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/RecycleBagServiceImpl.java index 3e3a40d..be0c6d9 100644 --- a/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/RecycleBagServiceImpl.java +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/service/impl/RecycleBagServiceImpl.java @@ -1,13 +1,24 @@ package com.czblood.busNurse.service.impl; +import com.czblood.bus.mapper.XkBloodInfoMapper; +import com.czblood.bus.mapper.XkOutMainMapper; +import com.czblood.bus.mapper.XkRecycleBagDetailMapper; +import com.czblood.bus.mapper.XkRecycleBagMainMapper; import com.czblood.bus.pojo.XkBloodInfo; +import com.czblood.bus.pojo.XkOutMain; +import com.czblood.bus.pojo.XkRecycleBagDetail; +import com.czblood.bus.pojo.XkRecycleBagMain; import com.czblood.bus.utils.BloodBankUtil; import com.czblood.busNurse.mapper.RecycleBagMapper; import com.czblood.busNurse.pojo.DTO.RecycleBagDTO; import com.czblood.busNurse.pojo.VO.RecycleBagSearchVO; +import com.czblood.busNurse.pojo.VO.RecycleBagVO; import com.czblood.busNurse.service.RecycleBagService; import com.czblood.common.core.domain.Result; +import com.czblood.common.utils.spring.SpringUtils; +import io.swagger.v3.oas.annotations.parameters.RequestBody; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -19,6 +30,14 @@ public class RecycleBagServiceImpl implements RecycleBagService { BloodBankUtil bloodBankUtil; @Resource RecycleBagMapper recycleBagMapper; + @Resource + XkBloodInfoMapper xkBloodInfoMapper; + @Resource + XkRecycleBagMainMapper xkRecycleBagMainMapper; + @Resource + XkRecycleBagDetailMapper xkRecycleBagDetailMapper; + @Resource + XkOutMainMapper xkOutMainMapper; @Override @@ -59,4 +78,66 @@ public class RecycleBagServiceImpl implements RecycleBagService { } return new Result("0", "操作成功", resultList); } + + @Override + public Result saveData(RecycleBagVO recycleBagVO) { + XkRecycleBagMain xkRecycleBagMain = recycleBagVO.getXkRecycleBagMain(); + List xkRecycleBagDetailList = recycleBagVO.getXkRecycleBagDetailList(); + List billNoList = recycleBagVO.getBillNoList(); + for (XkRecycleBagDetail xkRecycleBagDetail : xkRecycleBagDetailList) { + String bloodNo = xkRecycleBagDetail.getBlood_no(); + String productNo = xkRecycleBagDetail.getProduct_no(); + XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo); + if(xkBloodInfo == null) return new Result("-1","血液信息"+bloodNo+"_"+productNo+"不存在"); + String bloodStatus = xkBloodInfo.getBlood_status(); + if(!bloodStatus.equals("4")) return new Result("-1","该血液"+bloodNo+"_"+productNo+"尚未出库!"); + } + + Date currentTimeDate = bloodBankUtil.getCurrentTimeDate(); + String newBillNo = bloodBankUtil.produceBillNo("XDHS"); + xkRecycleBagMain.setBill_no(newBillNo); + xkRecycleBagMain.setReceive_person(recycleBagVO.getUserId()); + xkRecycleBagMain.setReceive_date(currentTimeDate); + xkRecycleBagMain.setSend_date(currentTimeDate); + String sendPerson = xkRecycleBagMain.getSend_person(); + List xkBloodInfoList = new ArrayList<>(); + if(sendPerson == null || sendPerson.equals("")){ + xkRecycleBagMain.setSend_person(recycleBagVO.getUserId()); + } + for (XkRecycleBagDetail xkRecycleBagDetail : xkRecycleBagDetailList) { + String bloodNo = xkRecycleBagDetail.getBlood_no(); + String productNo = xkRecycleBagDetail.getProduct_no(); + xkRecycleBagDetail.setBill_no(newBillNo); + XkBloodInfo xkBloodInfoTemp = new XkBloodInfo(); + xkBloodInfoTemp.setRecycle_sign("Y"); + xkBloodInfoTemp.setBlood_no(bloodNo); + xkBloodInfoTemp.setProduct_no(productNo); + xkBloodInfoList.add(xkBloodInfoTemp); + } + SpringUtils.getBean(RecycleBagServiceImpl.class).saveBatchData(xkBloodInfoList,xkRecycleBagMain,xkRecycleBagDetailList); + + //判断出库表里面的血液是否都已经回收,如果都回收了 ,就把出库单主表都回收的标志打上 + for (String billOutNo : billNoList) { + int recycleBagCount = recycleBagMapper.queryRecycleBagCount(billOutNo); + if(recycleBagCount == 0){ + XkOutMain xkOutMainTemp = new XkOutMain(); + xkOutMainTemp.setBill_no(billOutNo); + xkOutMainTemp.setAll_recycle_sign("Y"); + xkOutMainMapper.update(xkOutMainTemp); + } + } + + return new Result("0","保存成功",newBillNo); + } + + @Transactional(rollbackFor = Exception.class) + public void saveBatchData(List xkBloodInfoList,XkRecycleBagMain xkRecycleBagMain,List xkRecycleBagDetailList) { + for (XkBloodInfo xkBloodInfo : xkBloodInfoList) { + xkBloodInfoMapper.update(xkBloodInfo); + } + xkRecycleBagMainMapper.insert(xkRecycleBagMain); + for (XkRecycleBagDetail xkRecycleBagDetail : xkRecycleBagDetailList) { + xkRecycleBagDetailMapper.insert(xkRecycleBagDetail); + } + } } \ No newline at end of file diff --git a/blood_bus_nurse/src/main/resources/mapper/RecycleBagMapper.xml b/blood_bus_nurse/src/main/resources/mapper/RecycleBagMapper.xml index 2e94611..951e553 100644 --- a/blood_bus_nurse/src/main/resources/mapper/RecycleBagMapper.xml +++ b/blood_bus_nurse/src/main/resources/mapper/RecycleBagMapper.xml @@ -45,4 +45,13 @@ and isnull(xk_blood_info.recycle_sign,'') = 'Y' + \ No newline at end of file