输血弹窗提示,大量用血申请模版
This commit is contained in:
parent
186b154275
commit
95d997467f
7
.idea/MarsCodeWorkspaceAppSettings.xml
generated
Normal file
7
.idea/MarsCodeWorkspaceAppSettings.xml
generated
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="com.codeverse.userSettings.MarscodeWorkspaceAppSettingsState">
|
||||
<option name="chatAppRouterInfo" value="chat-session" />
|
||||
<option name="progress" value="1.0" />
|
||||
</component>
|
||||
</project>
|
||||
@ -16,4 +16,8 @@ public class BloodPrintTypeConstants {
|
||||
* 知情同意书2
|
||||
*/
|
||||
public static final String INFORMED_CONSENT_2 = "INFORMED_CONSENT_2";
|
||||
/**
|
||||
* 大量用血审批单
|
||||
*/
|
||||
public static final String LARGE_APPLY = "LARGE_APPLY";
|
||||
}
|
||||
|
||||
@ -2,8 +2,11 @@ package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyApproval;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface XkTransfuseApplyApprovalMapper {
|
||||
XkTransfuseApplyApproval queryOneByBillNo(String billNo);
|
||||
List<XkTransfuseApplyApproval> queryList(XkTransfuseApplyApproval xkTransfuseApplyApproval);
|
||||
void insert(XkTransfuseApplyApproval xkTransfuseApplyApproval);
|
||||
void update(XkTransfuseApplyApproval xkTransfuseApplyApproval);
|
||||
void delete(String billNo);
|
||||
|
||||
@ -14,4 +14,5 @@ import java.util.Date;
|
||||
public class ReportParam {
|
||||
private String billNo;
|
||||
private String beinhosId;
|
||||
private String bloodSum;
|
||||
}
|
||||
|
||||
@ -40,6 +40,13 @@
|
||||
<select id="queryOneByBillNo" resultType="com.czblood.bus.pojo.XkTransfuseApplyApproval">
|
||||
select * from xk_transfuse_apply_approval where bill_no = #{billNo}
|
||||
</select>
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkTransfuseApplyApproval">
|
||||
select * from xk_transfuse_apply_approval
|
||||
<where>
|
||||
<if test="bill_no != null and bill_no != ''">and bill_no = #{bill_no}</if>
|
||||
<if test="ApplyLevel != null and ApplyLevel != ''">and ApplyLevel = #{ApplyLevel}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,39 @@
|
||||
package com.czblood.busBloodbank.controller;
|
||||
|
||||
import com.czblood.busBloodbank.service.BimStipsService;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
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 javax.annotation.Resource;
|
||||
|
||||
@Api(tags = "右下角提醒")
|
||||
@RestController
|
||||
@RequestMapping("/bus/bloodbank/stips")
|
||||
public class BimStipsController {
|
||||
|
||||
@Resource
|
||||
private BimStipsService bimStipsService;
|
||||
|
||||
|
||||
@ApiOperation("查询列表数据,医生站,血型总量类型")
|
||||
@GetMapping("/queryListByDoctor")
|
||||
public Result queryListByDoctor(){
|
||||
return bimStipsService.queryListByDoctor();
|
||||
}
|
||||
|
||||
@ApiOperation("查询列表数据,输血科,血液品种总量类型")
|
||||
@GetMapping("/queryListByBlood")
|
||||
public Result queryListByBlood(){
|
||||
return bimStipsService.queryListByBlood();
|
||||
}
|
||||
|
||||
@ApiOperation("查询过期血液")
|
||||
@GetMapping("/queryExpiredBlood")
|
||||
public Result queryExpiredBlood(){
|
||||
return bimStipsService.queryExpiredBlood();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
package com.czblood.busBloodbank.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface BimStipsMapper {
|
||||
List<Map<String,Object>> queryListByDoctor();
|
||||
List<Map<String,Object>> queryListByBlood();
|
||||
List<Map<String,Object>> queryExpiredBlood(Long day);
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.czblood.busBloodbank.service;
|
||||
|
||||
import com.czblood.common.core.domain.Result;
|
||||
|
||||
public interface BimStipsService {
|
||||
Result queryListByDoctor();
|
||||
|
||||
Result queryListByBlood();
|
||||
|
||||
Result queryExpiredBlood();
|
||||
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package com.czblood.busBloodbank.service.impl;
|
||||
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.busBloodbank.mapper.BimStipsMapper;
|
||||
import com.czblood.busBloodbank.service.BimStipsService;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class BimStipsServiceImpl implements BimStipsService {
|
||||
|
||||
@Resource
|
||||
BimStipsMapper bimStipsMapper;
|
||||
@Resource
|
||||
BloodBankUtil bloodBankUtil;
|
||||
|
||||
@Override
|
||||
public Result queryListByDoctor() {
|
||||
List<Map<String, Object>> mapList = bimStipsMapper.queryListByDoctor();
|
||||
return new Result("0", "操作成功", mapList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryListByBlood() {
|
||||
List<Map<String, Object>> mapList = bimStipsMapper.queryListByBlood();
|
||||
return new Result("0", "操作成功", mapList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result queryExpiredBlood() {
|
||||
String deadlinecheck = bloodBankUtil.getParameterValue("DEADLINECHECK");
|
||||
List<Map<String, Object>> mapList = bimStipsMapper.queryExpiredBlood(Long.parseLong(deadlinecheck));
|
||||
return new Result("0", "操作成功", mapList);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.busBloodbank.mapper.BimStipsMapper">
|
||||
|
||||
<select id="queryListByDoctor" resultType="java.util.Map">
|
||||
<![CDATA[
|
||||
SELECT a.blood_type AS BloodAbo ,
|
||||
a.blood_type+'型' as BloodAboName ,
|
||||
a.sl AS amount ,
|
||||
1 AS ShowType ,
|
||||
1 AS ShowMode ,
|
||||
'' AS BackText ,
|
||||
( CASE WHEN a.sl < b.Stock_Lower THEN '紧缺'
|
||||
WHEN a.sl BETWEEN b.Stock_Lower AND b.Stock_Upper THEN '偏少'
|
||||
WHEN a.sl > b.Stock_Upper THEN '充裕' end
|
||||
) AS TipsText ,
|
||||
( CASE WHEN a.sl < b.Stock_Lower THEN '926688'
|
||||
WHEN a.sl BETWEEN b.Stock_Lower AND b.Stock_Upper THEN '6655839'
|
||||
WHEN a.sl > b.Stock_Upper THEN '3794950' end
|
||||
) AS TipsColor
|
||||
FROM v_blood_bimsshowstock AS a
|
||||
INNER JOIN (SELECT blood_type,SUM(Stock_Lower) AS Stock_Lower,SUM(Stock_Upper) AS Stock_Upper FROM dbo.xk_blood_lack GROUP BY blood_type
|
||||
) b ON (b.blood_type = a.blood_type)
|
||||
ORDER BY BloodAbo ,BloodAboName
|
||||
]]>
|
||||
|
||||
</select>
|
||||
<select id="queryListByBlood" resultType="java.util.Map">
|
||||
<![CDATA[
|
||||
select a.blood_kind AS ClassCode,a.wordbook_name AS ClassName,
|
||||
a.AmountA AS AmountA,
|
||||
(CASE WHEN a.AmountA < b.Stock_LowerA THEN '紧缺'
|
||||
WHEN a.AmountA BETWEEN b.Stock_LowerA AND b.Stock_UpperA THEN '偏少'
|
||||
WHEN a.AmountA > b.Stock_UpperA THEN '充裕' end ) as TipsAText,
|
||||
(CASE WHEN a.AmountA < b.Stock_LowerA THEN '926688'
|
||||
WHEN a.AmountA BETWEEN b.Stock_LowerA AND b.Stock_UpperA THEN '6655839'
|
||||
WHEN a.AmountA > b.Stock_UpperA THEN '3794950' end ) as TipsAColor,
|
||||
'' as BackAText,
|
||||
a.AmountB AS AmountB,
|
||||
(CASE WHEN a.AmountB < b.Stock_LowerB THEN '紧缺'
|
||||
WHEN a.AmountB BETWEEN b.Stock_LowerB AND b.Stock_UpperB THEN '偏少'
|
||||
WHEN a.AmountB > b.Stock_UpperB THEN '充裕' end) as TipsBText,
|
||||
(CASE WHEN a.AmountB < b.Stock_LowerB THEN '926688'
|
||||
WHEN a.AmountB BETWEEN b.Stock_LowerB AND b.Stock_UpperB THEN '6655839'
|
||||
WHEN a.AmountB > b.Stock_UpperB THEN '3794950' end ) as TipsBColor,
|
||||
'' as BackBText,
|
||||
a.AmountAB AS AmountAB,
|
||||
(CASE WHEN a.AmountAB < b.Stock_LowerAB THEN '紧缺'
|
||||
WHEN a.AmountAB BETWEEN b.Stock_LowerAB AND b.Stock_UpperAB THEN '偏少'
|
||||
WHEN a.AmountAB > b.Stock_UpperAB THEN '充裕' end) as TipsABText,
|
||||
(CASE WHEN a.AmountAB < b.Stock_LowerAB THEN '926688'
|
||||
WHEN a.AmountAB BETWEEN b.Stock_LowerAB AND b.Stock_UpperAB THEN '6655839'
|
||||
WHEN a.AmountAB > b.Stock_UpperAB THEN '3794950' end) as TipsABColor,
|
||||
'' as BackABText,
|
||||
a.AmountO AS AmountO,
|
||||
(CASE WHEN a.AmountO < b.Stock_LowerO THEN '紧缺'
|
||||
WHEN a.AmountO BETWEEN b.Stock_LowerO AND b.Stock_UpperO THEN '偏少'
|
||||
WHEN a.AmountO> b.Stock_UpperO THEN '充裕' end) as TipsOText,
|
||||
(CASE WHEN a.AmountO < b.Stock_LowerO THEN '926688'
|
||||
WHEN a.AmountO BETWEEN b.Stock_LowerO AND b.Stock_UpperO THEN '6655839'
|
||||
WHEN a.AmountO > b.Stock_UpperO THEN '3794950' end) as TipsOColor,
|
||||
'' as BackOText
|
||||
FROM (SELECT d.blood_kind,d.wordbook_name,
|
||||
sum((CASE WHEN d.blood_type = 'A' THEN d.sl ELSE 0 end)) AS AmountA,
|
||||
sum((CASE WHEN d.blood_type = 'B' THEN d.sl ELSE 0 end)) AS AmountB,
|
||||
sum((CASE WHEN d.blood_type = 'AB' THEN d.sl ELSE 0 end)) AS AmountAB,
|
||||
sum((CASE WHEN d.blood_type = 'O' THEN d.sl ELSE 0 end)) AS AmountO
|
||||
FROM v_blood_bimsshowstock_blood d
|
||||
GROUP BY d.blood_kind,d.wordbook_name) a
|
||||
INNER JOIN (SELECT f.blood_kind AS blood_kind,f.wordbook_name AS wordbook_name,
|
||||
sum((CASE WHEN c.blood_type = 'A' THEN c.Stock_Lower ELSE 0 end)) AS Stock_LowerA,
|
||||
sum((CASE WHEN c.blood_type = 'A' THEN c.Stock_Upper ELSE 0 end)) AS Stock_UpperA,
|
||||
sum((CASE WHEN c.blood_type = 'B' THEN c.Stock_Lower ELSE 0 end)) AS Stock_LowerB,
|
||||
sum((CASE WHEN c.blood_type = 'B' THEN c.Stock_Upper ELSE 0 end)) AS Stock_UpperB,
|
||||
sum((CASE WHEN c.blood_type = 'O' THEN c.Stock_Lower ELSE 0 end)) AS Stock_LowerO,
|
||||
sum((CASE WHEN c.blood_type = 'O' THEN c.Stock_Upper ELSE 0 end)) AS Stock_UpperO,
|
||||
sum((CASE WHEN c.blood_type = 'AB' THEN c.Stock_Lower ELSE 0 end)) AS Stock_LowerAB,
|
||||
sum((CASE WHEN c.blood_type = 'AB' THEN c.Stock_Upper ELSE 0 end)) AS Stock_UpperAB
|
||||
FROM dbo.xk_blood_lack c,v_blood_breed f
|
||||
WHERE c.blood_breed = f.breed_code GROUP BY f.wordbook_name,f.blood_kind) b ON (a.blood_kind = b.blood_kind )
|
||||
order by a.blood_kind
|
||||
]]>
|
||||
|
||||
</select>
|
||||
<select id="queryExpiredBlood" resultType="java.util.Map">
|
||||
<![CDATA[
|
||||
SELECT xk_blood_info.blood_no,xk_blood_info.product_no ,xk_blood_breed.breed_name,
|
||||
xk_blood_info.blood_type,xk_blood_info.rh_blood_type,
|
||||
xk_blood_info.capacity,xk_blood_info.unit,
|
||||
xk_blood_info.valid_date,xk_blood_info.pick_date,datediff(day,GETDATE(), xk_blood_info.valid_date) as cp_moreday
|
||||
FROM xk_blood_info,xk_blood_breed WHERE xk_blood_breed.breed_code=xk_blood_info.blood_breed
|
||||
AND blood_status='1' AND valid_date<GETDATE() + #{day}
|
||||
]]>
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
@ -1,10 +1,13 @@
|
||||
package com.czblood.busDoctor.mapper;
|
||||
|
||||
import com.czblood.busDoctor.pojo.VO.TransfuseApplyBeforeVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface TransfuseApplyBeforeMapper {
|
||||
List<Map<String,Object>> queryList(TransfuseApplyBeforeVO transfuseApplyBeforeVO);
|
||||
BigDecimal getBloodSum(@Param("beinhos_id") String beinhos_id,@Param("stime") String stime,@Param("etime") String etime,@Param("bloodKindList") List<String> bloodKindList);
|
||||
}
|
||||
|
||||
@ -1,16 +1,17 @@
|
||||
package com.czblood.busDoctor.service.impl;
|
||||
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.czblood.bus.constants.BloodPrintTypeConstants;
|
||||
import com.czblood.bus.mapper.XkPatientInfoMapper;
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyBeforeMapper;
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyTestitemMapper;
|
||||
import com.czblood.bus.mapper.*;
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.bus.pojo.inter.BeforeAssessRequest;
|
||||
import com.czblood.bus.pojo.inter.GetPatientInfoRequest;
|
||||
import com.czblood.bus.pojo.inter.GetTestResultRequest;
|
||||
import com.czblood.bus.pojo.xtwh.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.bus.utils.BloodInterfaceUtil;
|
||||
import com.czblood.bus.utils.ReportUtil;
|
||||
@ -19,6 +20,7 @@ import com.czblood.busDoctor.pojo.DTO.TransfuseApplyBeforeDTO;
|
||||
import com.czblood.busDoctor.pojo.VO.TransfuseApplyBeforeVO;
|
||||
import com.czblood.busDoctor.service.TransfuseApplyBeforeService;
|
||||
import com.czblood.busDoctor.utils.TransfuseApplyBeforeUtil;
|
||||
import com.czblood.busDoctor.utils.TransfuseApplyUtil;
|
||||
import com.czblood.common.config.RuoYiConfig;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import com.czblood.common.utils.file.FileUtils;
|
||||
@ -27,6 +29,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.File;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -50,6 +53,14 @@ public class TransfuseApplyBeforeServiceImpl implements TransfuseApplyBeforeServ
|
||||
ReportUtil reportUtil;
|
||||
@Resource
|
||||
TransfuseApplyBeforeMapper transfuseApplyBeforeMapper;
|
||||
@Resource
|
||||
XkTransfuseApplyApprovalMapper xkTransfuseApplyApprovalMapper;
|
||||
@Resource
|
||||
TransfuseApplyUtil transfuseApplyUtil;
|
||||
@Resource
|
||||
XkTransfuseApplyBloodbreedMapper xkTransfuseApplyBloodbreedMapper;
|
||||
@Resource
|
||||
XkTransfuseApplyMapper xkTransfuseApplyMapper;
|
||||
|
||||
@Override
|
||||
public Result queryList(TransfuseApplyBeforeVO xkTransfuseApplyBeforeVO) {
|
||||
@ -184,6 +195,25 @@ public class TransfuseApplyBeforeServiceImpl implements TransfuseApplyBeforeServ
|
||||
log.error("合并pdf:{}报告失败:{}",mergeBgdhList,e);
|
||||
return new Result("-1",e.getMessage());
|
||||
}
|
||||
case "LARGE_APPLY":
|
||||
String dlyxspDyjb = bloodBankUtil.getParameterValue("DLYXSP_DYJB");
|
||||
XkTransfuseApplyApproval xkTransfuseApplyApprovalTemp = new XkTransfuseApplyApproval();
|
||||
xkTransfuseApplyApprovalTemp.setBill_no(billNo);
|
||||
xkTransfuseApplyApprovalTemp.setApplyLevel(dlyxspDyjb);
|
||||
List<XkTransfuseApplyApproval> xkTransfuseApplyApprovalList = xkTransfuseApplyApprovalMapper.queryList(xkTransfuseApplyApprovalTemp);
|
||||
if(xkTransfuseApplyApprovalList.isEmpty()) return new Result("-1","没有大量用血审批记录,无需打印申请单!");
|
||||
//24小时总血总量,包含了当前申请单的用血量
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = xkTransfuseApplyBloodbreedMapper.queryOne(billNo);
|
||||
List<String> largeKindStr = transfuseApplyUtil.getLargeKindStr(xkTransfuseApplyBloodbreedList);
|
||||
XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo);
|
||||
String beinhosId = xkTransfuseApply.getBeinhos_id();
|
||||
String currentTimeDate = bloodBankUtil.getCurrentTime();
|
||||
String stime = DateUtil.format(DateUtil.offsetDay(bloodBankUtil.getCurrentTimeDate(), -1),"yyyy-MM-dd HH:mm:ss");
|
||||
BigDecimal bloodSum = transfuseApplyBeforeMapper.getBloodSum(beinhosId,stime,currentTimeDate,largeKindStr);
|
||||
reportParam.setBloodSum(bloodSum.toString());
|
||||
Result result2 = reportUtil.printToPdf(BloodPrintTypeConstants.LARGE_APPLY, reportParam, true);
|
||||
if(!result2.getCode().equals("0")) return result2;
|
||||
return new Result("0","打印成功!",BloodBankUtil.isBank(result2.getData()));
|
||||
|
||||
}
|
||||
return new Result("-1","没有找到对应的打印模版!");
|
||||
|
||||
@ -654,6 +654,7 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
public Result bloodCloseLoop(String billNo) {
|
||||
List<String> applyStatusList = BloodApplyStatusConstants.values();
|
||||
XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(billNo);
|
||||
if(xkTransfuseApply == null) return new Result("-1","没有查到该申请单的信息!");
|
||||
List<ClosedLoopStatus> closedLoopStatusList = new ArrayList<>();
|
||||
XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo);
|
||||
for (String statusName : applyStatusList) {
|
||||
@ -668,7 +669,7 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
}
|
||||
ClosedLoopStatus closedLoopStatus = new ClosedLoopStatus();
|
||||
closedLoopStatus.setStatusName(statusName);
|
||||
if(xkTransfuseApply == null) closedLoopStatus.setVisible("N");
|
||||
closedLoopStatus.setVisible("N");
|
||||
switch (statusName) {
|
||||
case BloodApplyStatusConstants.BILL_STATUS_OPEN:
|
||||
if(xkTransfuseApply.getApply_medic() != null && !xkTransfuseApply.getApply_medic().equals("")){
|
||||
@ -684,6 +685,20 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
closedLoopStatus.setVisible("Y");
|
||||
}
|
||||
break;
|
||||
case BloodApplyStatusConstants.BILL_STATUS_ARCHIATER_CHECK:
|
||||
if(xkTransfuseApplyApproval.getArchiater() != null && !xkTransfuseApplyApproval.getArchiater().equals("")){
|
||||
closedLoopStatus.setOccurName(xkTransfuseApplyApproval.getArchiater());
|
||||
closedLoopStatus.setOccurDate(xkTransfuseApplyApproval.getArchiater_CheckTime());
|
||||
closedLoopStatus.setVisible("Y");
|
||||
}
|
||||
break;
|
||||
case BloodApplyStatusConstants.BILL_STATUS_MEDICAL_CHECK:
|
||||
if(xkTransfuseApplyApproval.getMedical_Dept() != null && !xkTransfuseApplyApproval.getMedical_Dept().equals("")){
|
||||
closedLoopStatus.setOccurName(xkTransfuseApplyApproval.getMedical_Dept());
|
||||
closedLoopStatus.setOccurDate(xkTransfuseApplyApproval.getMedical_CheckTime());
|
||||
closedLoopStatus.setVisible("Y");
|
||||
}
|
||||
break;
|
||||
case BloodApplyStatusConstants.BILL_STATUS_BLOOD_TYPE_CHECK:
|
||||
break;
|
||||
case BloodApplyStatusConstants.BILL_STATUS_MATCH_CHECK:
|
||||
|
||||
@ -48,6 +48,26 @@ public class TransfuseApplyUtil {
|
||||
@Resource
|
||||
XkTransfuseApplyMapper xkTransfuseApplyMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 血液品种是否参与大量用血判断
|
||||
* @param xkTransfuseApplyBloodbreedList
|
||||
* @return
|
||||
*/
|
||||
public List<String> getLargeKindStr(List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList){
|
||||
List<String> bloodKindList = new ArrayList<>();
|
||||
for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) {
|
||||
String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed();
|
||||
XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed);
|
||||
XkDmzd xylxDmzd = bloodBankUtil.getDictCacheOne("xylx", xkBloodBreed.getBlood_kind());
|
||||
String exp1 = BloodBankUtil.isBank(xylxDmzd.getExp1()); //是否参与大量用血计算
|
||||
if(!BloodBankUtil.isBank(exp1).equals("Y")) continue;
|
||||
bloodKindList.add(xkBloodBreed.getBlood_kind());
|
||||
}
|
||||
return bloodKindList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算大量用血
|
||||
*/
|
||||
@ -66,18 +86,13 @@ public class TransfuseApplyUtil {
|
||||
if(BloodBankUtil.isBank(exp2).equals("Y")) return new Result("0","抢救用血不参与大量用血计算");
|
||||
//血液品种是否参与大量用血判断
|
||||
BigDecimal totalApplyNum = BigDecimal.ZERO;
|
||||
List<String> bloodKindList = new ArrayList<>();
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = transfuseApplyDTO.getXkTransfuseApplyBloodbreedList();
|
||||
List<String> bloodKindList = getLargeKindStr(xkTransfuseApplyBloodbreedList);
|
||||
for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) {
|
||||
String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed();
|
||||
BigDecimal bloodNum = xkTransfuseApplyBloodbreed.getBlood_num();
|
||||
XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed);
|
||||
XkDmzd xylxDmzd = bloodBankUtil.getDictCacheOne("xylx", xkBloodBreed.getBlood_kind());
|
||||
String exp1 = BloodBankUtil.isBank(xylxDmzd.getExp1()); //是否参与大量用血计算
|
||||
if(!BloodBankUtil.isBank(exp1).equals("Y")) continue;
|
||||
BigDecimal applyTransNum = bloodBankUtil.getApplyTransNum(bloodBreed,bloodNum);
|
||||
totalApplyNum = totalApplyNum.add(applyTransNum);
|
||||
bloodKindList.add(xkBloodBreed.getBlood_kind());
|
||||
}
|
||||
|
||||
Date currentTimeDate = bloodBankUtil.getCurrentTimeDate();
|
||||
|
||||
@ -9,4 +9,20 @@
|
||||
<if test="beinhos_id != null and beinhos_id != ''">and a.beinhos_id = #{beinhos_id}</if>
|
||||
<if test="patient_name != null and patient_name != ''">and b.patient_name like '%'+#{patient_name}+'%' </if>
|
||||
</select>
|
||||
<select id="getBloodSum" resultType="java.math.BigDecimal">
|
||||
SELECT sum( CASE upper(t.unit) WHEN 'U' THEN t.blood_num*200 WHEN '治疗量' THEN t.blood_num*200 ELSE t.blood_num end ) rl_qc
|
||||
FROM xk_transfuse_apply a , xk_transfuse_apply_bloodbreed t , xk_blood_breed k
|
||||
WHERE a.beinhos_id = #{beinhos_id}
|
||||
AND a.Bill_No =t.Bill_No
|
||||
AND t.blood_breed =k.breed_code
|
||||
<![CDATA[AND a.bill_stasus <> 'Z' ]]>
|
||||
<if test="bloodKindList != null and bloodKindList.size() > 0">
|
||||
and k.blood_kind in
|
||||
<foreach collection="bloodKindList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
and a.apply_date Between #{stime} AND #{etime};
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
x
Reference in New Issue
Block a user