临床发血,打印,多次发血
This commit is contained in:
parent
06478b0bad
commit
9d6c723c7b
@ -4,6 +4,8 @@ package com.czblood.busBloodbank.controller;
|
||||
import com.czblood.bus.constants.BloodSysLogConstants;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutAuditVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutInfoVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutMoreQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutQueryVO;
|
||||
import com.czblood.busBloodbank.service.BloodOutService;
|
||||
import com.czblood.common.annotation.Log;
|
||||
import com.czblood.common.core.controller.BaseController;
|
||||
@ -73,4 +75,28 @@ public class BloodOutController extends BaseController {
|
||||
return bloodOutService.printReport(billNo, templateName);
|
||||
}
|
||||
|
||||
@ApiOperation("查询发血单数据列表")
|
||||
@PostMapping("/queryList")
|
||||
public Result queryList(@RequestBody BloodOutQueryVO bloodOutQueryVO){
|
||||
return bloodOutService.queryList(bloodOutQueryVO);
|
||||
}
|
||||
|
||||
@ApiOperation("查询单条发血单数据")
|
||||
@GetMapping("/queryInfo")
|
||||
public Result queryInfo(String billNo){
|
||||
return bloodOutService.queryInfo(billNo);
|
||||
}
|
||||
|
||||
@ApiOperation("多次发血")
|
||||
@GetMapping("/moreBloodOut")
|
||||
public Result moreBloodOut(){
|
||||
return null;
|
||||
}
|
||||
|
||||
@ApiOperation("查询多次发血单数据列表")
|
||||
@GetMapping("/queryMoreBloodOutList")
|
||||
public Result queryMoreBloodOutList(BloodOutMoreQueryVO bloodOutMoreQueryVO){
|
||||
return bloodOutService.queryMoreBloodOutList(bloodOutMoreQueryVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package com.czblood.busBloodbank.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutMoreQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutQueryVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
@ -19,5 +21,8 @@ public interface BloodOutMapper {
|
||||
String queryMaxCheckNo(String applyNo);
|
||||
Date querySampleMaxPickDate(String applyNo);
|
||||
List<XkCheckBloodtype> queryCheckBloodtype(String applyNo);
|
||||
List<Map<String,Object>> queryList(BloodOutQueryVO bloodOutQueryVO);
|
||||
List<Map<String,Object>> queryStockInfo(String billNo);
|
||||
List<Map<String,Object>> queryMoreBloodOutList(BloodOutMoreQueryVO bloodOutMoreQueryVO);
|
||||
|
||||
}
|
||||
|
||||
@ -14,4 +14,5 @@ import java.util.Map;
|
||||
public class BloodOutDTO {
|
||||
List<Map<String,Object>> applyInfoList;
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList;
|
||||
List<Map<String,Object>> stockInfoList;
|
||||
}
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
package com.czblood.busBloodbank.pojo.VO;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BloodOutMoreQueryVO {
|
||||
private String stime;
|
||||
private String etime;
|
||||
private String dept;
|
||||
private String bed;
|
||||
private String beinhos_id;
|
||||
private String patientName;
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.czblood.busBloodbank.pojo.VO;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BloodOutQueryVO {
|
||||
private String stime;
|
||||
private String etime;
|
||||
private String beinhos_id;
|
||||
@ApiModelProperty("临床发血单编号")
|
||||
private String billNo;
|
||||
@ApiModelProperty("审核标志")
|
||||
private String checkSign;
|
||||
@ApiModelProperty("发血人")
|
||||
private String sendPerson;
|
||||
@ApiModelProperty("血液流水号")
|
||||
private String bloodNo;
|
||||
private String dept;
|
||||
}
|
||||
@ -2,6 +2,8 @@ package com.czblood.busBloodbank.service;
|
||||
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutAuditVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutInfoVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutMoreQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutQueryVO;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
|
||||
public interface BloodOutService {
|
||||
@ -12,4 +14,7 @@ public interface BloodOutService {
|
||||
Result bloodOutAudit(BloodOutAuditVO bloodOutAuditVO);
|
||||
Result notifyMessage(String billNo);
|
||||
Result printReport(String billNo, String templateName);
|
||||
Result queryList(BloodOutQueryVO bloodOutQueryVO);
|
||||
Result queryInfo(String billNo);
|
||||
Result queryMoreBloodOutList(BloodOutMoreQueryVO bloodOutMoreQueryVO);
|
||||
}
|
||||
|
||||
@ -1,17 +1,21 @@
|
||||
package com.czblood.busBloodbank.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.czblood.bus.constants.BloodPrintTypeConstants;
|
||||
import com.czblood.bus.mapper.*;
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.bus.pojo.inter.BloodOutAuditRequest;
|
||||
import com.czblood.bus.pojo.xtwh.XkBloodBreed;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.bus.utils.BloodInterfaceUtil;
|
||||
import com.czblood.bus.utils.ReportUtil;
|
||||
import com.czblood.busBloodbank.mapper.BloodOutMapper;
|
||||
import com.czblood.busBloodbank.pojo.DTO.BloodOutDTO;
|
||||
import com.czblood.busBloodbank.pojo.DTO.BloodOutInfoDTO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutAuditVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutInfoVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutMoreQueryVO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BloodOutQueryVO;
|
||||
import com.czblood.busBloodbank.service.BloodOutService;
|
||||
import com.czblood.busBloodbank.utils.BloodOutUtil;
|
||||
import com.czblood.busBloodbank.utils.MatchBloodUtil;
|
||||
@ -49,6 +53,8 @@ public class BloodOutServiceImpl implements BloodOutService {
|
||||
BloodOutUtil bloodOutUtil;
|
||||
@Resource
|
||||
XkOutDetailMapper xkOutDetailMapper;
|
||||
@Resource
|
||||
ReportUtil reportUtil;
|
||||
|
||||
|
||||
|
||||
@ -261,7 +267,44 @@ public class BloodOutServiceImpl implements BloodOutService {
|
||||
|
||||
@Override
|
||||
public Result printReport(String billNo, String templateName) {
|
||||
return null;
|
||||
XkOutMain xkOutMain = xkOutMainMapper.queryOne(billNo);
|
||||
if(xkOutMain == null) return new Result("-1","该单据不存在!");
|
||||
String checkSign = BloodBankUtil.isBank(xkOutMain.getCheck_sign());
|
||||
if(!checkSign.equals("Y")) return new Result("-1","该单据没有审核,不能打印!");
|
||||
ReportParam reportParam = new ReportParam();
|
||||
reportParam.setBillNo(billNo);
|
||||
switch (templateName){
|
||||
case BloodPrintTypeConstants.BLOOD_OUT: //临床发血单
|
||||
return reportUtil.printToPdf(BloodPrintTypeConstants.BLOOD_OUT, reportParam, true);
|
||||
}
|
||||
return new Result("-1","打印模板不存在!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryList(BloodOutQueryVO bloodOutQueryVO) {
|
||||
List<Map<String,Object>> mapList = bloodOutMapper.queryList(bloodOutQueryVO);
|
||||
return new Result("0","查询成功",mapList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryInfo(String billNo) {
|
||||
XkOutMain xkOutMain = xkOutMainMapper.queryOne(billNo);
|
||||
if(xkOutMain == null) return new Result("-1","该单据不存在!");
|
||||
String applyNo = xkOutMain.getApply_no();
|
||||
List<Map<String, Object>> applyInfoList = bloodOutMapper.queryApplyInfo(applyNo);
|
||||
BloodOutDTO bloodOutDTO = new BloodOutDTO();
|
||||
bloodOutDTO.setApplyInfoList(applyInfoList);
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(applyNo);
|
||||
bloodOutDTO.setXkTransfuseApplyBloodbreedList(xkTransfuseApplyBloodbreedList);
|
||||
List<Map<String, Object>> queryStockInfoList = bloodOutMapper.queryStockInfo(applyNo);
|
||||
bloodOutDTO.setStockInfoList(queryStockInfoList);
|
||||
return new Result("0","查询成功",bloodOutDTO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryMoreBloodOutList(BloodOutMoreQueryVO bloodOutMoreQueryVO) {
|
||||
List<Map<String,Object>> mapList = bloodOutMapper.queryMoreBloodOutList(bloodOutMoreQueryVO);
|
||||
return new Result("0","查询成功",mapList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -168,4 +168,106 @@
|
||||
SELECT * FROM xk_check_bloodtype
|
||||
Where apply_no = #{applyNo} And ( bill_status ='A' OR bill_status ='B' )
|
||||
</select>
|
||||
<select id="queryList" resultType="java.util.Map">
|
||||
SELECT distinct xk_out_main.bill_no,
|
||||
xk_out_main.occur_date,
|
||||
xk_out_main.handle_person,
|
||||
xk_out_main.apply_no,
|
||||
xk_out_main.patient_name,
|
||||
xk_out_main.beinhos_id,
|
||||
xk_out_main.dept_id,
|
||||
xk_out_main.check_sign,
|
||||
xk_out_main.exp2,
|
||||
xk_out_main.notify_time,
|
||||
xk_out_main.receive_id,
|
||||
xk_out_main.receive_person,
|
||||
SUBSTRING(( SELECT ',' +xx.breed_name+CONVERT(varchar(255),CONVERT(decimal(10,1),x.blood_num))+x.unit
|
||||
from xk_transfuse_apply_bloodbreed x join xk_blood_breed xx on xx.breed_code=x.blood_breed where x.bill_no=xk_out_main.apply_no FOR XML PATH('') ),2,999) as req_breed
|
||||
FROM xk_out_main,xk_out_detail
|
||||
WHERE ( xk_out_main.bill_no = xk_out_detail.bill_no) and
|
||||
( xk_out_main.bill_sort = 'C' )
|
||||
and xk_out_main.occur_date between #{stime} and #{etime}
|
||||
<if test="billNo != null">and xk_out_main.bill_no = #{billNo}</if>
|
||||
<if test="beinhos_id != null">and xk_out_main.beinhos_id = #{beinhos_id}</if>
|
||||
<if test="checkSign != null">and xk_out_main.check_sign = #{checkSign}</if>
|
||||
<if test="dept != null">and xk_out_main.dept_id = #{dept}</if>
|
||||
<if test="sendPerson != null">and xk_out_main.handle_person = #{sendPerson}</if>
|
||||
<if test="bloodNo != null">and xk_out_detail.blood_no = #{bloodNo}</if>
|
||||
</select>
|
||||
<select id="queryStockInfo" resultType="java.util.Map">
|
||||
SELECT
|
||||
xk_blood_info.blood_no,
|
||||
xk_blood_info.blood_breed,
|
||||
xk_blood_info.blood_type,
|
||||
xk_blood_info.product_no,
|
||||
xk_blood_info.rh_blood_type,
|
||||
xk_blood_info.capacity,
|
||||
xk_blood_info.unit,
|
||||
xk_blood_info.valid_date,
|
||||
xk_blood_info.auto_no ,
|
||||
space(10) as match_method,
|
||||
space(10) as check_method,
|
||||
space(10) as result,
|
||||
space(10) as choose,
|
||||
space(10) as special_deal
|
||||
FROM xk_blood_info,xk_blood_breed
|
||||
WHERE ( xk_blood_info.blood_status in (1,3 ) )
|
||||
and (xk_blood_breed.breed_code = xk_blood_info.blood_breed )
|
||||
<![CDATA[AND(xk_blood_breed.is_match <> 'Y' OR isnull(xk_blood_breed.is_match,'') = '')]]>
|
||||
AND ( xk_blood_info.blood_sort in('C','W' )OR isnull(xk_blood_info.blood_sort,'') = '')
|
||||
and(blood_breed in('0047','0050')) AND (xk_blood_info.blood_type ='O')
|
||||
union
|
||||
select
|
||||
xk_blood_info.blood_no,
|
||||
xk_blood_info.blood_breed,
|
||||
xk_blood_info.blood_type,
|
||||
xk_blood_info.product_no,
|
||||
xk_blood_info.rh_blood_type,
|
||||
xk_blood_info.capacity,
|
||||
xk_blood_info.unit,
|
||||
xk_blood_info.valid_date,
|
||||
xk_blood_info.auto_no ,
|
||||
xk_match_detail.match_method as match_method,
|
||||
xk_match_detail.check_method as check_method,
|
||||
xk_match_detail.result as result,
|
||||
'' as choose,
|
||||
'' as special_deal
|
||||
from xk_blood_info,xk_out_main ,xk_out_detail
|
||||
left join xk_match_detail on (xk_out_detail.blood_no = xk_match_detail.blood_no and xk_match_detail.product_no = xk_out_detail.product_no)
|
||||
left join xk_match_main on (xk_match_detail.bill_no = xk_match_main.bill_no)
|
||||
where xk_out_main.bill_no = xk_out_detail.bill_no
|
||||
and xk_blood_info.blood_no = xk_out_detail.blood_no and xk_blood_info.product_no = xk_out_detail.product_no
|
||||
and xk_out_main.bill_no = #{billNo}
|
||||
AND ( xk_blood_info.blood_sort in('C','W' )OR isnull(xk_blood_info.blood_sort,'') = '')
|
||||
<![CDATA[ AND(xk_match_main.bill_status <> 'ZF') ]]>
|
||||
</select>
|
||||
<select id="queryMoreBloodOutList" resultType="java.util.Map">
|
||||
SELECT xk_match_main.apply_no,
|
||||
xk_match_main.dept_id,
|
||||
xk_match_main.patient_name,
|
||||
xk_match_main.beinhos_id,
|
||||
xk_transfuse_apply.patient_bed,
|
||||
count(xk_match_detail.blood_no) as sl,
|
||||
sum(xk_blood_info.capacity) as rl,xk_blood_info.unit,xk_blood_info.blood_breed
|
||||
FROM xk_blood_info,
|
||||
xk_match_detail,
|
||||
xk_match_main,
|
||||
xk_transfuse_apply ,xk_dmzd
|
||||
WHERE ( xk_blood_info.blood_no = xk_match_detail.blood_no )
|
||||
and ( xk_match_detail.bill_no = xk_match_main.bill_no )
|
||||
and ( xk_match_main.apply_no = xk_transfuse_apply.bill_no )
|
||||
and (xk_transfuse_apply.bill_stasus = 'D' )
|
||||
and (xk_blood_info.blood_status = '1')
|
||||
<if test="dept != null">and (xk_match_main.dept_id = #{dept} or isnull(xk_match_main.dept_id,'') = '')</if>
|
||||
<if test="beinhos_id != null"> and (xk_match_main.beinhos_id = #{beinhos_id} or isnull(xk_match_main.beinhos_id,'') = '' )</if>
|
||||
<if test="patientName != null"> and (xk_match_main.patient_name like '%'+#{patientName}+'%' or isnull(xk_match_main.patient_name,'') = '')</if>
|
||||
<if test="bed != null">and (xk_transfuse_apply.patient_bed = #{bed} or isnull(xk_transfuse_apply.patient_bed,'') ='') </if>
|
||||
and (xk_transfuse_apply.apply_date between #{stime} and #{etime})
|
||||
and (xk_match_detail.result = xk_dmzd.wordbook_code and xk_dmzd.wordbook_sign = 'pxjg' and xk_dmzd.remark = 'Y')
|
||||
group by xk_match_main.apply_no,
|
||||
xk_match_main.dept_id,
|
||||
xk_match_main.patient_name,
|
||||
xk_match_main.beinhos_id,
|
||||
xk_transfuse_apply.patient_bed,xk_blood_info.unit,xk_blood_info.blood_breed
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
x
Reference in New Issue
Block a user