diff --git a/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java b/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java index 48a6fa8..97adc00 100644 --- a/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java +++ b/blood_bus/src/main/java/com/czblood/bus/constants/BloodSysLogConstants.java @@ -17,4 +17,5 @@ public class BloodSysLogConstants { public static final String LOG_TYPE_MATCH_BLOOD = "交叉配血"; public static final String LOG_TYPE_BLOOD_OUT = "临床发血"; public static final String LOG_TYPE_BLOOD_BACK = "临床发血退血"; + public static final String LOG_TYPE_DISCARD_MAIN = "血液报废"; } diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackinDetailMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackinDetailMapper.java index c95bc2b..a5d11c8 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackinDetailMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkBackinDetailMapper.java @@ -1,7 +1,7 @@ package com.czblood.bus.mapper; import com.czblood.bus.pojo.XkBackinDetail; -import io.lettuce.core.dynamic.annotation.Param; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +10,4 @@ public interface XkBackinDetailMapper { void insert(XkBackinDetail xkBackinDetail); void deleteByBillNo(String billNo); void deleteOne(@Param("billNo") String billNo,@Param("bloodNo") String bloodNo,@Param("productNo") String productNo); -} +} \ No newline at end of file diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkDiscardDetailMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkDiscardDetailMapper.java index d5958c7..306a0fa 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkDiscardDetailMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkDiscardDetailMapper.java @@ -1,4 +1,13 @@ package com.czblood.bus.mapper; +import com.czblood.bus.pojo.XkDiscardDetail; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + public interface XkDiscardDetailMapper { + XkDiscardDetail queryDiscardDetail(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo); + void insert(XkDiscardDetail xkDiscardDetail); + void delete(String billNo); + List queryListByBillNo(String billNo); } diff --git a/blood_bus/src/main/java/com/czblood/bus/mapper/XkDiscardMainMapper.java b/blood_bus/src/main/java/com/czblood/bus/mapper/XkDiscardMainMapper.java index 345507f..224c0d2 100644 --- a/blood_bus/src/main/java/com/czblood/bus/mapper/XkDiscardMainMapper.java +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkDiscardMainMapper.java @@ -1,4 +1,10 @@ package com.czblood.bus.mapper; +import com.czblood.bus.pojo.XkDiscardMain; + public interface XkDiscardMainMapper { + void insert(XkDiscardMain xkDiscardMain); + XkDiscardMain queryOne(String billNo); + void update(XkDiscardMain xkDiscardMain); + void deleteByBillNo(String billNo); } 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 new file mode 100644 index 0000000..8340094 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagDetailMapper.java @@ -0,0 +1,4 @@ +package com.czblood.bus.mapper; + +public interface XkRecycleBagDetailMapper { +} 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 new file mode 100644 index 0000000..ef35b01 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/mapper/XkRecycleBagMainMapper.java @@ -0,0 +1,4 @@ +package com.czblood.bus.mapper; + +public interface XkRecycleBagMainMapper { +} 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 index 0f28031..05e5150 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardDetail.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardDetail.java @@ -1,6 +1,7 @@ package com.czblood.bus.pojo; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -16,6 +17,7 @@ public class XkDiscardDetail { private Integer sid; private String blood_no; private BigDecimal price; + @ApiModelProperty("报废原因") 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 index b39e18c..d2427ce 100644 --- a/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardMain.java +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkDiscardMain.java @@ -1,6 +1,7 @@ package com.czblood.bus.pojo; import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -14,16 +15,28 @@ import java.util.Date; @ApiModel("报废血液主表") public class XkDiscardMain { private String bill_no; + @ApiModelProperty("经手人") private String handle_person; + @ApiModelProperty("总金额") private BigDecimal total_money; + @ApiModelProperty("报废日期") private Date discard_date; + @ApiModelProperty("输入人") private String input_person; + @ApiModelProperty("输入日期") private Date input_date; + @ApiModelProperty("审核人") private String audit_person; + @ApiModelProperty("审核日期") private Date audit_date; + @ApiModelProperty("备注") private String remark; + @ApiModelProperty("批准人") private String ratify_person; + @ApiModelProperty("批准人意见") private String ratify_attitude; + @ApiModelProperty("报废途径") private String discard_approach; + @ApiModelProperty("报废方法") private String discard_method; } diff --git a/blood_bus/src/main/java/com/czblood/bus/pojo/XkRecycleBagDetail.java b/blood_bus/src/main/java/com/czblood/bus/pojo/XkRecycleBagDetail.java new file mode 100644 index 0000000..2e94439 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkRecycleBagDetail.java @@ -0,0 +1,30 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("血袋回收明细表") +public class XkRecycleBagDetail { + private String bill_no; + private Integer sid; + private String blood_no; + @ApiModelProperty("接收人") + private String receive_person; + @ApiModelProperty("接收日期") + private Date receive_date; + private String Exp1; + private String Exp2; + private String product_no; + @ApiModelProperty("销毁人") + private String destroy_person; + @ApiModelProperty("销毁时间") + private Date destroy_time; +} 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 new file mode 100644 index 0000000..a2647c9 --- /dev/null +++ b/blood_bus/src/main/java/com/czblood/bus/pojo/XkRecycleBagMain.java @@ -0,0 +1,30 @@ +package com.czblood.bus.pojo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("回收血液主表") +public class XkRecycleBagMain { + private String bill_no; + @ApiModelProperty("送返人") + private String send_person; + @ApiModelProperty("送返日期") + private Date send_date; + @ApiModelProperty("接收人") + private String receive_person; + @ApiModelProperty("接收日期") + private Date receive_date; + @ApiModelProperty("接收数量") + private Integer sum; + private String Exp1; + private String Exp2; + private String bz1; +} diff --git a/blood_bus/src/main/resources/mapper/XkDiscardDetailMapper.xml b/blood_bus/src/main/resources/mapper/XkDiscardDetailMapper.xml index 0631f4a..f0ad30d 100644 --- a/blood_bus/src/main/resources/mapper/XkDiscardDetailMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkDiscardDetailMapper.xml @@ -2,5 +2,21 @@ + + insert into xk_discard_detail ( + bill_no,sid,blood_no,product_no,price,reason + )values( + #{bill_no},#{sid},#{blood_no},#{product_no},#{price},#{reason} + ) + + + delete from xk_discard_detail where bill_no = #{billNo} + + + \ No newline at end of file diff --git a/blood_bus/src/main/resources/mapper/XkDiscardMainMapper.xml b/blood_bus/src/main/resources/mapper/XkDiscardMainMapper.xml index 4fcf9b9..d14fcc3 100644 --- a/blood_bus/src/main/resources/mapper/XkDiscardMainMapper.xml +++ b/blood_bus/src/main/resources/mapper/XkDiscardMainMapper.xml @@ -3,4 +3,44 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > + + insert into xk_discard_main ( + remark, + ratify_person, + ratify_attitude, + discard_approach, + discard_method, + bill_no,handle_person,total_money,input_person,input_date + )values( + #{remark}, + #{ratify_person}, + #{ratify_attitude}, + #{discard_approach}, + #{discard_method}, + bill bill #{bill_no},#{handle_person},#{total_money},#{input_person},#{input_date} + ) + + + update xk_discard_main set + handle_person = #{handle_person}, + total_money = #{total_money}, + discard_date = #{discard_date}, + input_person = #{input_person}, + input_date = #{input_date}, + audit_person = #{audit_person}, + audit_date = #{audit_date}, + remark = #{remark}, + ratify_person = #{ratify_person}, + ratify_attitude = #{ratify_attitude}, + discard_approach = #{discard_approach}, + discard_method = #{discard_method}, + bill_no = #{bill_no} + where bill_no = #{bill_no} + + + delete from xk_discard_main where bill_no = #{billNo} + + \ No newline at end of file diff --git a/blood_bus/src/main/resources/mapper/XkRecycleBagDetailMapper.xml b/blood_bus/src/main/resources/mapper/XkRecycleBagDetailMapper.xml new file mode 100644 index 0000000..735485b --- /dev/null +++ b/blood_bus/src/main/resources/mapper/XkRecycleBagDetailMapper.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/blood_bus/src/main/resources/mapper/XkRecycleBagMainMapper.xml b/blood_bus/src/main/resources/mapper/XkRecycleBagMainMapper.xml new file mode 100644 index 0000000..e0798a7 --- /dev/null +++ b/blood_bus/src/main/resources/mapper/XkRecycleBagMainMapper.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/BackinController.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/BackinController.java index 0efbcae..4f54aad 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/BackinController.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/BackinController.java @@ -1,6 +1,7 @@ package com.czblood.busBloodbank.controller; import com.czblood.bus.constants.BloodSysLogConstants; +import com.czblood.bus.pojo.XkBackinDetail; import com.czblood.busBloodbank.pojo.DTO.BackinDataDTO; import com.czblood.busBloodbank.pojo.VO.BackinQueryVO; import com.czblood.busBloodbank.service.BackinService; @@ -55,6 +56,13 @@ public class BackinController extends BaseController { return backinService.deleteData(billNo); } + @Log(title = BloodSysLogConstants.LOG_TYPE_BLOOD_BACK, businessType = BusinessType.DELETE_DETAIL) + @ApiOperation("删除血液信息") + @PostMapping("/deleteBloodInfo") + public Result deleteBloodInfo(@RequestBody XkBackinDetail xkBackinDetail){ + return backinService.deleteBloodInfo(xkBackinDetail); + } + @ApiOperation("查询列表") @GetMapping("/queryList") public TableDataInfo queryList(BackinQueryVO backinQueryVO){ diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/DiscardMainController.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/DiscardMainController.java index ee0fed1..cf030b0 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/DiscardMainController.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/controller/DiscardMainController.java @@ -1,19 +1,23 @@ package com.czblood.busBloodbank.controller; +import com.czblood.bus.constants.BloodSysLogConstants; +import com.czblood.busBloodbank.pojo.VO.DiscardQueryVO; +import com.czblood.busBloodbank.pojo.VO.DiscardVO; import com.czblood.busBloodbank.service.DiscardMainService; +import com.czblood.common.annotation.Log; +import com.czblood.common.core.controller.BaseController; import com.czblood.common.core.domain.Result; +import com.czblood.common.enums.BusinessType; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @Api(tags = "血液报废") @RestController @RequestMapping("/bus/bloodbank/discardMain") -public class DiscardMainController { +public class DiscardMainController extends BaseController { @Resource private DiscardMainService discardMainService; @@ -24,4 +28,39 @@ public class DiscardMainController { return discardMainService.queryBloodInfo(bloodNo,productNo); } + @Log(title = BloodSysLogConstants.LOG_TYPE_DISCARD_MAIN, businessType = BusinessType.INSERT) + @ApiOperation("保存报废信息") + @PostMapping("/saveData") + public Result saveData(@RequestBody DiscardVO discardVO){ + discardVO.setUserId(getUsername()); + return discardMainService.saveData(discardVO); + } + + @Log(title = BloodSysLogConstants.LOG_TYPE_DISCARD_MAIN, businessType = BusinessType.CHECK) + @ApiOperation("审核单据") + @GetMapping("/auditData") + public Result auditData(String billNo){ + String userId = getUsername(); + return discardMainService.auditData(billNo,userId); + } + + @Log(title = BloodSysLogConstants.LOG_TYPE_DISCARD_MAIN, businessType = BusinessType.DELETE) + @ApiOperation("删除报废单") + @GetMapping("/deleteData") + public Result deleteData(String billNo){ + return discardMainService.deleteData(billNo); + } + + @ApiOperation("查询报废单列表") + @PostMapping("/queryList") + public Result queryList(DiscardQueryVO discardQueryVO){ + return discardMainService.queryList(discardQueryVO); + } + + @ApiOperation("查询报废单详情") + @GetMapping("/queryInfoOne") + public Result queryInfoOne(String billNo){ + return discardMainService.queryInfoOne(billNo); + } + } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/DiscardMapper.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/DiscardMapper.java new file mode 100644 index 0000000..0ae001d --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/mapper/DiscardMapper.java @@ -0,0 +1,11 @@ +package com.czblood.busBloodbank.mapper; + +import com.czblood.busBloodbank.pojo.VO.DiscardQueryVO; + +import java.util.List; +import java.util.Map; + +public interface DiscardMapper { + List> queryList(DiscardQueryVO discardQueryVO); + List> queryDetailList(String billNo); +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/BackinBloodDTO.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/BackinBloodDTO.java index 05490dc..4a1875e 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/BackinBloodDTO.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/DTO/BackinBloodDTO.java @@ -1,6 +1,7 @@ package com.czblood.busBloodbank.pojo.DTO; import com.czblood.bus.pojo.XkBackinDetail; +import com.czblood.bus.pojo.XkBloodInfo; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; @@ -14,6 +15,7 @@ import java.util.Map; public class BackinBloodDTO { private XkBackinDetail xkBackinDetail; private Map patientInfo; + private XkBloodInfo xkBloodInfo; @ApiModelProperty("标志位,1:新增,2:删除") private String flag; } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/DiscardQueryVO.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/DiscardQueryVO.java new file mode 100644 index 0000000..781eb49 --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/DiscardQueryVO.java @@ -0,0 +1,15 @@ +package com.czblood.busBloodbank.pojo.VO; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DiscardQueryVO { + private String stime; + private String etime; + private String billNo; +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/DiscardVO.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/DiscardVO.java new file mode 100644 index 0000000..afecd0f --- /dev/null +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/pojo/VO/DiscardVO.java @@ -0,0 +1,18 @@ +package com.czblood.busBloodbank.pojo.VO; + +import com.czblood.bus.pojo.XkDiscardDetail; +import com.czblood.bus.pojo.XkDiscardMain; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DiscardVO { + private XkDiscardMain xkDiscardMain; + private List xkDiscardDetailList; + private String userId; +} diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/BackinService.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/BackinService.java index b520afc..983e3c7 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/BackinService.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/BackinService.java @@ -1,5 +1,6 @@ package com.czblood.busBloodbank.service; +import com.czblood.bus.pojo.XkBackinDetail; import com.czblood.busBloodbank.pojo.DTO.BackinDataDTO; import com.czblood.busBloodbank.pojo.VO.BackinQueryVO; import com.czblood.common.core.domain.Result; @@ -15,4 +16,5 @@ public interface BackinService { List> queryList(BackinQueryVO backinQueryVO); Result queryInfo(String billNo); Result print(String billNo,String templateName,String userId); + Result deleteBloodInfo(XkBackinDetail xkBackinDetail); } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/DiscardMainService.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/DiscardMainService.java index 7f85709..a43840f 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/DiscardMainService.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/DiscardMainService.java @@ -1,7 +1,14 @@ package com.czblood.busBloodbank.service; +import com.czblood.busBloodbank.pojo.VO.DiscardQueryVO; +import com.czblood.busBloodbank.pojo.VO.DiscardVO; import com.czblood.common.core.domain.Result; public interface DiscardMainService { Result queryBloodInfo(String bloodNo, String productNo); + Result saveData(DiscardVO discardVO); + Result auditData(String billNo,String userId); + Result deleteData(String billNo); + Result queryList(DiscardQueryVO discardQueryVO); + Result queryInfoOne(String billNo); } diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/BackinServiceImpl.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/BackinServiceImpl.java index 1251def..4b7ac2a 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/BackinServiceImpl.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/BackinServiceImpl.java @@ -17,6 +17,7 @@ import com.czblood.busBloodbank.pojo.VO.BackinQueryVO; import com.czblood.busBloodbank.service.BackinService; import com.czblood.common.core.domain.Result; import com.czblood.common.utils.spring.SpringUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,6 +26,7 @@ import java.math.BigDecimal; import java.util.*; @Service +@Slf4j public class BackinServiceImpl implements BackinService { @Resource @@ -136,6 +138,17 @@ public class BackinServiceImpl implements BackinService { }else{ //修改 + BigDecimal totalMoney = BigDecimal.ZERO; + newBillNo = xkBackinMain.getBill_no(); + for (BackinBloodDTO backinBloodDTO : xkBackinDetailList) { + XkBackinDetail xkBackinDetail = backinBloodDTO.getXkBackinDetail(); + List xkInstorageDetailList = xkInstorageDetailMapper.queryByBloodNo(xkBackinDetail.getBlood_no(), xkBackinDetail.getProduct_no()); + if (!xkInstorageDetailList.isEmpty()) { + totalMoney = totalMoney.add(xkInstorageDetailList.get(0).getPrice()); + xkBackinDetail.setPrice(xkInstorageDetailList.get(0).getPrice()); + } + } + xkBackinMain.setTotal_money(totalMoney); //总金额 Result result = SpringUtils.getBean(BackinServiceImpl.class).updateChargeData(xkBackinMain, xkBackinDetailList, backinDataDTO); if(!result.getCode().equals("0")) return result; } @@ -230,6 +243,7 @@ public class BackinServiceImpl implements BackinService { BackinBloodDTO backinBloodDTO = new BackinBloodDTO(); backinBloodDTO.setPatientInfo(patientInfoList.get(0)); backinBloodDTO.setXkBackinDetail(xkBackinDetail); + backinBloodDTO.setXkBloodInfo(bloodBankUtil.queryBloodInfoOne(bloodNo, productNo)); backinBloodDTOList.add(backinBloodDTO); } backinDataDTO.setXkBackinDetailList(backinBloodDTOList); @@ -243,7 +257,20 @@ public class BackinServiceImpl implements BackinService { reportParam.setUserName(userName); Result result2 = reportUtil.printToPdf(BloodPrintTypeConstants.BLOOD_OUT_BACK, reportParam, true); if(!result2.getCode().equals("0")) return new Result("-1",result2.getMsg()); - return new Result("0","打印成功!"); + return new Result("0","打印成功!",result2.getData()); + } + + @Override + public Result deleteBloodInfo(XkBackinDetail xkBackinDetail) { + String billNo = BloodBankUtil.isBank(xkBackinDetail.getBill_no()); + if(billNo.equals("")) return new Result("0","删除成功!"); //新增的数据就做数据库处理了 + String bloodNo = xkBackinDetail.getBlood_no(); + String productNo = xkBackinDetail.getProduct_no(); + String chargeBillNo = xkBackinDetail.getCharge_billno(); + xkBackinDetailMapper.deleteOne(billNo,bloodNo,productNo); + xkChargeMainMapper.deleteByBillNo(chargeBillNo); + xkChargeDetailMapper.deleteByBillNo(chargeBillNo); + return new Result("0","删除成功!"); } @Transactional(rollbackFor = Exception.class) @@ -279,7 +306,7 @@ public class BackinServiceImpl implements BackinService { xkBackinMainMapper.update(xkBackinMain); for (BackinBloodDTO backinBloodDTO : xkBackinDetailList) { XkBackinDetail xkBackinDetail = backinBloodDTO.getXkBackinDetail(); - String flag = backinBloodDTO.getFlag(); + String flag = BloodBankUtil.isBank(backinBloodDTO.getFlag()); if(flag.equals("1")){ //新增 Result result = insertChargeInfo(backinBloodDTO,backinDataDTO.getUserId()); @@ -294,19 +321,26 @@ public class BackinServiceImpl implements BackinService { if(xkChargeMain != null) xkChargeMainMapper.insert(xkChargeMain); if(xkChargeDetail != null) xkChargeDetailMapper.insert(xkChargeDetail); //回写单号 - xkBackinDetail.setCharge_billno(xkChargeMain.getBill_no()); + if(xkChargeMain != null) xkBackinDetail.setCharge_billno(xkChargeMain.getBill_no()); xkBackinDetailMapper.insert(xkBackinDetail); - }else if(flag.equals("2")){ - //删除 - xkBackinDetailMapper.deleteOne(xkBackinDetail.getBill_no(),xkBackinDetail.getBlood_no(),xkBackinDetail.getProduct_no()); - xkChargeMainMapper.deleteByBillNo(xkBackinDetail.getCharge_billno()); - xkChargeDetailMapper.deleteByBillNo(xkBackinDetail.getCharge_billno()); } } return new Result("0","更新成功!"); } + @Transactional(rollbackFor = Exception.class) +// public void deleteBloodInfo(XkBackinDetail xkBackinDetail){ +// String billNo = BloodBankUtil.isBank(xkBackinDetail.getBill_no()); +// if(billNo.equals("")) return; //新增的数据就做数据库处理了 +// String bloodNo = xkBackinDetail.getBlood_no(); +// String productNo = xkBackinDetail.getProduct_no(); +// String chargeBillNo = xkBackinDetail.getCharge_billno(); +// xkBackinDetailMapper.deleteOne(billNo,bloodNo,productNo); +// xkChargeMainMapper.deleteByBillNo(chargeBillNo); +// xkChargeDetailMapper.deleteByBillNo(chargeBillNo); +// } + /** * 组装退费信息数据 * @param backinBloodDTO diff --git a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/DiscardMainServiceImpl.java b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/DiscardMainServiceImpl.java index b50692a..525a24f 100644 --- a/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/DiscardMainServiceImpl.java +++ b/blood_bus_bloodbank/src/main/java/com/czblood/busBloodbank/service/impl/DiscardMainServiceImpl.java @@ -1,13 +1,184 @@ package com.czblood.busBloodbank.service.impl; +import com.czblood.bus.mapper.XkBloodInfoMapper; +import com.czblood.bus.mapper.XkDiscardDetailMapper; +import com.czblood.bus.mapper.XkDiscardMainMapper; +import com.czblood.bus.mapper.XkInstorageDetailMapper; +import com.czblood.bus.pojo.XkBloodInfo; +import com.czblood.bus.pojo.XkDiscardDetail; +import com.czblood.bus.pojo.XkDiscardMain; +import com.czblood.bus.pojo.XkInstorageDetail; +import com.czblood.bus.utils.BloodBankUtil; +import com.czblood.busBloodbank.mapper.DiscardMapper; +import com.czblood.busBloodbank.pojo.VO.DiscardQueryVO; +import com.czblood.busBloodbank.pojo.VO.DiscardVO; import com.czblood.busBloodbank.service.DiscardMainService; import com.czblood.common.core.domain.Result; +import com.czblood.common.utils.spring.SpringUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.swing.*; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service public class DiscardMainServiceImpl implements DiscardMainService { + + @Resource + BloodBankUtil bloodBankUtil; + @Resource + XkDiscardDetailMapper xkDiscardDetailMapper; + @Resource + XkInstorageDetailMapper xkInstorageDetailMapper; + @Resource + XkDiscardMainMapper xkDiscardMainMapper; + @Resource + XkBloodInfoMapper xkBloodInfoMapper; + @Resource + DiscardMapper discardMapper; + @Override public Result queryBloodInfo(String bloodNo, String productNo) { - return null; + XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo); + if(xkBloodInfo == null) return new Result("-1","血液信息不存在!!!"); + XkDiscardDetail xkDiscardDetail = xkDiscardDetailMapper.queryDiscardDetail(bloodNo, productNo); + if(xkDiscardDetail != null) return new Result("-1","血液流水号:"+bloodNo+",产品号:"+productNo+"的报废信息已经存在!!!"); + String bloodStatus = xkBloodInfo.getBlood_status(); + switch (bloodStatus){ + case "2": + return new Result("-1","该血液已经报废!!!"); + case "4": + return new Result("-1","该血液已经出库!!!"); + } + return new Result("0","查询成功",xkBloodInfo); } + + @Override + public Result saveData(DiscardVO discardVO) { + XkDiscardMain xkDiscardMain = discardVO.getXkDiscardMain(); + List xkDiscardDetailList = discardVO.getXkDiscardDetailList(); + String billNo = BloodBankUtil.isBank(xkDiscardMain.getBill_no()); + String auditPerson = BloodBankUtil.isBank(xkDiscardMain.getAudit_person()); + if(!auditPerson.equals("")) return new Result("-1","单据已经审核,不允许修改!!"); + String newBillNo = ""; + if(billNo.equals("")){ + //新增 + BigDecimal totalMoney = BigDecimal.ZERO; + newBillNo = bloodBankUtil.produceBillNo("BFD"); + xkDiscardMain.setBill_no(newBillNo); + xkDiscardMain.setInput_person(discardVO.getUserId()); + xkDiscardMain.setInput_date(bloodBankUtil.getCurrentTimeDate()); + for (XkDiscardDetail xkDiscardDetail : xkDiscardDetailList) { + List xkInstorageDetailList = xkInstorageDetailMapper.queryByBloodNo(xkDiscardDetail.getBlood_no(), xkDiscardDetail.getProduct_no()); + if(!xkInstorageDetailList.isEmpty()){ + xkDiscardDetail.setPrice(xkInstorageDetailList.get(0).getPrice()); + totalMoney = totalMoney.add(xkInstorageDetailList.get(0).getPrice()); + } + } + xkDiscardMain.setTotal_money(totalMoney); + SpringUtils.getBean(DiscardMainServiceImpl.class).insertData(xkDiscardMain,xkDiscardDetailList); + }else{ + //更新 + newBillNo = xkDiscardMain.getBill_no(); + SpringUtils.getBean(DiscardMainServiceImpl.class).updateData(xkDiscardMain,xkDiscardDetailList); + } + return new Result("0","保存成功",newBillNo); + } + + @Override + public Result auditData(String billNo,String userId) { + XkDiscardMain xkDiscardMain = xkDiscardMainMapper.queryOne(billNo); + if(xkDiscardMain == null) return new Result("-1","单据不存在!!!"); + String auditPerson = BloodBankUtil.isBank(xkDiscardMain.getAudit_person()); + if(!auditPerson.equals("")) return new Result("-1","单据已经审核,不允许重复审核!!"); + List xkDiscardDetailList = xkDiscardDetailMapper.queryListByBillNo(billNo); + List xkBloodInfoList = new ArrayList(); + for (XkDiscardDetail xkDiscardDetail : xkDiscardDetailList) { + String bloodNo = xkDiscardDetail.getBlood_no(); + String productNo = xkDiscardDetail.getProduct_no(); + XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo); + if(xkBloodInfo == null) return new Result("-1","血液信息不存在!!!"); + String bloodStatus = xkBloodInfo.getBlood_status(); + switch (bloodStatus){ + case "2": + return new Result("-1","该血液"+bloodNo+",产品号:"+productNo+"已经报废!!!"); + case "4": + return new Result("-1","该血液"+bloodNo+",产品号:"+productNo+"已经出库!!!"); + } + XkBloodInfo xkBloodInfoTemp = new XkBloodInfo(); + xkBloodInfoTemp.setBlood_status("2"); + xkBloodInfoTemp.setBlood_no(bloodNo); + xkBloodInfoTemp.setProduct_no(productNo); + xkBloodInfoList.add(xkBloodInfoTemp); + } + + XkDiscardMain xkDiscardMainTemp = new XkDiscardMain(); + xkDiscardMainTemp.setAudit_person(userId); + xkDiscardMainTemp.setAudit_date(bloodBankUtil.getCurrentTimeDate()); + SpringUtils.getBean(DiscardMainServiceImpl.class).updateAuditData(xkBloodInfoList,xkDiscardMainTemp); + return new Result("0","审核成功"); + } + + @Override + public Result deleteData(String billNo) { + XkDiscardMain xkDiscardMain = xkDiscardMainMapper.queryOne(billNo); + if(xkDiscardMain == null) return new Result("-1","单据不存在!!!"); + String auditPerson = BloodBankUtil.isBank(xkDiscardMain.getAudit_person()); + if(!auditPerson.equals("")) return new Result("-1","单据已经审核,不允许删除!!"); + SpringUtils.getBean(DiscardMainServiceImpl.class).deleteDataTrans(billNo); + return new Result("0","删除成功"); + } + + @Override + public Result queryList(DiscardQueryVO discardQueryVO) { + List> list = discardMapper.queryList(discardQueryVO); + return new Result("0","查询成功",list); + } + + @Override + public Result queryInfoOne(String billNo) { + XkDiscardMain xkDiscardMain = xkDiscardMainMapper.queryOne(billNo); + List> xkDiscardDetailList = discardMapper.queryDetailList(billNo); + Map map = new HashMap<>(); + map.put("xkDiscardMain",xkDiscardMain); + map.put("xkDiscardDetailList",xkDiscardDetailList); + return new Result("0","查询成功",map); + } + + @Transactional(rollbackFor = Exception.class) + public void insertData(XkDiscardMain xkDiscardMain,List xkDiscardDetailList){ + xkDiscardMainMapper.insert(xkDiscardMain); + for (XkDiscardDetail xkDiscardDetail : xkDiscardDetailList) { + xkDiscardDetailMapper.insert(xkDiscardDetail); + } + } + + @Transactional(rollbackFor = Exception.class) + public void updateData(XkDiscardMain xkDiscardMain,List xkDiscardDetailList){ + xkDiscardMainMapper.update(xkDiscardMain); + xkDiscardDetailMapper.delete(xkDiscardMain.getBill_no()); + for (XkDiscardDetail xkDiscardDetail : xkDiscardDetailList) { + xkDiscardDetailMapper.insert(xkDiscardDetail); + } + } + + @Transactional(rollbackFor = Exception.class) + public void updateAuditData(List xkBloodInfoList,XkDiscardMain xkDiscardMain){ + for (XkBloodInfo xkBloodInfo : xkBloodInfoList) { + xkBloodInfoMapper.update(xkBloodInfo); + } + xkDiscardMainMapper.update(xkDiscardMain); + } + + @Transactional(rollbackFor = Exception.class) + public void deleteDataTrans(String billNo){ + xkDiscardMainMapper.deleteByBillNo(billNo); + xkDiscardDetailMapper.delete(billNo); + } + } diff --git a/blood_bus_bloodbank/src/main/resources/mapper/BackinMapper.xml b/blood_bus_bloodbank/src/main/resources/mapper/BackinMapper.xml index c8126ff..471ad90 100644 --- a/blood_bus_bloodbank/src/main/resources/mapper/BackinMapper.xml +++ b/blood_bus_bloodbank/src/main/resources/mapper/BackinMapper.xml @@ -11,7 +11,7 @@ Where xk_out_main.bill_no =xk_out_detail.bill_no and xk_out_detail.blood_no = #{bloodNo} and 'ZF' and]]> - xk_out_detail.product_no = #{productNo} + xk_out_detail.product_no = #{productNo} and isnull(xk_out_main.check_sign,'') = 'Y' + SELECT xk_discard_main.bill_no, + xk_discard_main.handle_person, + xk_discard_main.total_money, + xk_discard_main.discard_date + FROM xk_discard_main + WHERE (xk_discard_main.discard_date between #{stime} and #{etime}) + AND (xk_discard_main.bill_no = #{billNo}) + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..cf4c7ad --- /dev/null +++ b/blood_bus_nurse/src/main/java/com/czblood/busNurse/controller/RecycleBagController.java @@ -0,0 +1,13 @@ +package com.czblood.busNurse.controller; + +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Api(tags = "血袋回收") +@RestController +@RequestMapping("/bus/nurse/recycleBag") +@Slf4j +public class RecycleBagController { +} diff --git a/sql/updatedb_blood_pk.sql b/sql/updatedb_blood_pk.sql index 52dfb70..f926a7e 100644 --- a/sql/updatedb_blood_pk.sql +++ b/sql/updatedb_blood_pk.sql @@ -214,3 +214,17 @@ update xk_charge_item set module_type = '002' where module_code = '0203' update xk_charge_item set module_type = '004' where module_code = '0204' update xk_charge_item set module_type = '003' where module_code = '0501' update xk_charge_item set module_type = '006' where module_code = '0302' + +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_recycle_bag_main' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_recycle_bag_main ADD CONSTRAINT PK_xk_recycle_bag_main PRIMARY KEY CLUSTERED (bill_no); + END +GO + +ALTER TABLE xk_recycle_bag_detail ALTER COLUMN product_no VARCHAR(18) NOT NULL; +go +IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_recycle_bag_detail' AND type = 'PK' ) + BEGIN + ALTER TABLE xk_recycle_bag_detail ADD CONSTRAINT PK_xk_recycle_bag_detail PRIMARY KEY CLUSTERED (bill_no,blood_no,product_no); + END +GO \ No newline at end of file