整理结构,输血申请单保存业务
This commit is contained in:
parent
f51041a4d8
commit
bb65302b51
@ -1,7 +1,7 @@
|
||||
package com.czblood.bus.cache;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.common.constant.CacheConstants;
|
||||
import com.czblood.common.core.redis.RedisCache;
|
||||
import com.czblood.common.utils.StringUtils;
|
||||
|
||||
@ -1,15 +1,11 @@
|
||||
package com.czblood.bus.cache;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.XkParameter;
|
||||
import com.czblood.bus.pojo.xtwh.XkParameter;
|
||||
import com.czblood.common.constant.CacheConstants;
|
||||
import com.czblood.common.core.redis.RedisCache;
|
||||
import com.czblood.common.utils.StringUtils;
|
||||
import com.czblood.common.utils.spring.SpringUtils;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 参数缓存
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
package com.czblood.bus.controller;
|
||||
|
||||
import com.czblood.bus.mapper.XkProTransfuseProjectMapper;
|
||||
import com.czblood.bus.mapper.XkTransfuseApplyMapper;
|
||||
import com.czblood.bus.mapper.XkXtwhIllDiagnoseMapper;
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.bus.pojo.inter.HisUsePasswordRequest;
|
||||
import com.czblood.bus.pojo.xtwh.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.bus.pojo.xtwh.XkXtwhIllDiagnose;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.bus.utils.BloodInterfaceUtil;
|
||||
import com.czblood.common.core.controller.BaseController;
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Map;
|
||||
|
||||
public interface BloodBankMapper {
|
||||
void spProduceMaxvalue(Map<String,Object> map);
|
||||
BigDecimal getApplyTransNum(String bloodBreed);
|
||||
}
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.xtwh.XkBloodApplyTrans;
|
||||
|
||||
public interface XkBloodApplyTransMapper {
|
||||
XkBloodApplyTrans queryOne(String blood_breed);
|
||||
}
|
||||
@ -1,9 +1,10 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.xtwh.XkBloodBreed;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface XkBloodBreedMapper {
|
||||
List<XkBloodBreed> queryList(XkBloodBreed xkBloodBreed);
|
||||
XkBloodBreed queryOne(String breed_code);
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkHosInfo;
|
||||
import com.czblood.bus.pojo.xtwh.XkHosInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkParameter;
|
||||
import com.czblood.bus.pojo.xtwh.XkParameter;
|
||||
|
||||
public interface XkParameterMapper {
|
||||
XkParameter queryOne(String parameter_code);
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyApproval;
|
||||
|
||||
public interface XkTransfuseApplyApprovalMapper {
|
||||
XkTransfuseApplyApproval queryOneByBillNo(String billNo);
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkXtwhIllDiagnose;
|
||||
import com.czblood.bus.pojo.xtwh.XkXtwhIllDiagnose;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkXtwhIll;
|
||||
import com.czblood.bus.pojo.xtwh.XkXtwhIll;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@ -30,4 +30,6 @@ public class XkTransfuseApplyCausalis {
|
||||
private String Upload_Flag;
|
||||
@ApiModelProperty("备注说明")
|
||||
private String Explain;
|
||||
@ApiModelProperty("实际值")
|
||||
private String testValue;
|
||||
}
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
package com.czblood.bus.pojo.xtwh;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class XkBloodApplyTrans {
|
||||
private String SID;
|
||||
private String Blood_Breed;
|
||||
private BigDecimal Capacity;
|
||||
private String Unit;
|
||||
private BigDecimal ApplyNum;
|
||||
private String Unit2;
|
||||
private String Flag;
|
||||
private String Blood_Kind;
|
||||
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package com.czblood.bus.pojo;
|
||||
package com.czblood.bus.pojo.xtwh;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.czblood.bus.pojo;
|
||||
package com.czblood.bus.pojo.xtwh;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -1,8 +1,7 @@
|
||||
package com.czblood.bus.pojo;
|
||||
package com.czblood.bus.pojo.xtwh;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.czblood.bus.pojo;
|
||||
package com.czblood.bus.pojo.xtwh;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.czblood.bus.pojo;
|
||||
package com.czblood.bus.pojo.xtwh;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -1,4 +1,4 @@
|
||||
package com.czblood.bus.pojo;
|
||||
package com.czblood.bus.pojo.xtwh;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
@ -2,8 +2,8 @@ package com.czblood.bus.system;
|
||||
|
||||
import com.czblood.bus.mapper.XkHosInfoMapper;
|
||||
import com.czblood.bus.mapper.XkOperatorInfoMapper;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.XkHosInfo;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.bus.pojo.xtwh.XkHosInfo;
|
||||
import com.czblood.bus.pojo.XkOperatorInfo;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
@ -13,11 +13,9 @@ import com.czblood.common.core.domain.entity.SysUser;
|
||||
import com.czblood.common.core.domain.model.LoginParam;
|
||||
import com.czblood.common.core.domain.model.LoginUser;
|
||||
import com.czblood.common.utils.SecurityUtils;
|
||||
import com.czblood.common.utils.StringUtils;
|
||||
import com.czblood.system.mapper.SysDeptMapper;
|
||||
import com.czblood.system.mapper.SysUserMapper;
|
||||
import com.czblood.system.service.ExtSystemInterface;
|
||||
import com.czblood.system.service.ISysConfigService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package com.czblood.bus.system;
|
||||
|
||||
import com.czblood.bus.mapper.XkDmzdMapper;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.common.core.domain.entity.SysDept;
|
||||
import com.czblood.system.mapper.SysDeptMapper;
|
||||
import com.czblood.system.service.impl.SysDeptServiceImpl;
|
||||
|
||||
@ -4,21 +4,18 @@ package com.czblood.bus.utils;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.czblood.bus.cache.DmzdCache;
|
||||
import com.czblood.bus.cache.OptionCache;
|
||||
import com.czblood.bus.mapper.BloodBankMapper;
|
||||
import com.czblood.bus.mapper.XkBloodBreedMapper;
|
||||
import com.czblood.bus.mapper.XkDmzdMapper;
|
||||
import com.czblood.bus.mapper.XkParameterMapper;
|
||||
import com.czblood.bus.pojo.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.XkParameter;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import com.czblood.bus.mapper.*;
|
||||
import com.czblood.bus.pojo.xtwh.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.bus.pojo.xtwh.XkParameter;
|
||||
import com.czblood.common.core.domain.entity.SysUser;
|
||||
import com.czblood.system.mapper.SysUserMapper;
|
||||
import com.czblood.system.util.CommonUtil;
|
||||
import org.springframework.data.redis.connection.ReactiveSubscription;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -40,6 +37,8 @@ public class BloodBankUtil {
|
||||
XkBloodBreedMapper xkBloodBreedMapper;
|
||||
@Resource
|
||||
SysUserMapper sysUserMapper;
|
||||
@Resource
|
||||
XkBloodApplyTransMapper xkBloodApplyTransMapper;
|
||||
|
||||
|
||||
/**
|
||||
@ -73,6 +72,17 @@ public class BloodBankUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public XkDmzd getDictCacheOneByName(String dictType,String dictName){
|
||||
List<XkDmzd> dictCache = getDictCache(dictType);
|
||||
if(dictCache == null || dictCache.isEmpty()) return null;
|
||||
List<XkDmzd> collect = dictCache.stream().filter(xkDmzd -> xkDmzd.getWordbook_name().equals(dictName)).collect(Collectors.toList());
|
||||
if(collect.size() > 0) {
|
||||
return collect.get(0);
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置字典缓存
|
||||
@ -150,4 +160,10 @@ public class BloodBankUtil {
|
||||
return sysUserMapper.selectUserByUserName(userId);
|
||||
}
|
||||
|
||||
public BigDecimal getApplyTransNum(String bloodBreed,BigDecimal applyNum){
|
||||
BigDecimal applyTransNum = bloodBankMapper.getApplyTransNum(bloodBreed);
|
||||
//计算结果保留 2 位小数,采用四舍五入规则。
|
||||
return applyNum.divide(applyTransNum,2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -5,4 +5,7 @@
|
||||
<select id="spProduceMaxvalue" parameterType="map" statementType="CALLABLE" useCache="false">
|
||||
{call sp_produce_maxvalue(#{returncode,mode=OUT,jdbcType=INTEGER})}
|
||||
</select>
|
||||
<select id="getApplyTransNum" resultType="java.math.BigDecimal">
|
||||
select Capacity*ApplyNum from xk_blood_apply_trans where blood_breed = #{blood_breed}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -0,0 +1,9 @@
|
||||
<?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.bus.mapper.XkBloodApplyTransMapper">
|
||||
|
||||
<select id="queryOne" resultType="com.czblood.bus.pojo.xtwh.XkBloodApplyTrans">
|
||||
select * from xk_blood_apply_trans where blood_breed = #{blood_breed}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -0,0 +1,9 @@
|
||||
<?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.bus.mapper.XkTransfuseApplyApprovalMapper">
|
||||
|
||||
<select id="queryOneByBillNo" resultType="com.czblood.bus.pojo.XkTransfuseApplyApproval">
|
||||
select * from xk_transfuse_apply_approval where bill_no = #{billNo}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -2,8 +2,11 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkBloodBreedMapper">
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkBloodBreed">
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.xtwh.XkBloodBreed">
|
||||
select * from xk_blood_breed where use_sign = 'Y'
|
||||
<if test="breed_code != null and breed_code != ''">and breed_code = #{breed_code}</if>
|
||||
</select>
|
||||
<select id="queryOne" resultType="com.czblood.bus.pojo.xtwh.XkBloodBreed">
|
||||
select * from xk_blood_breed where breed_code = #{breed_code}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -20,7 +20,7 @@
|
||||
delete from xk_dmzd where wordbook_sign = #{wordbook_sign} and wordbook_code=#{wordbook_code}
|
||||
</delete>
|
||||
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkDmzd">
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.xtwh.XkDmzd">
|
||||
select * from xk_dmzd where wordbook_sign=#{wordbook_sign}
|
||||
<if test="use_sign != null and use_sign != ''">and use_sign = #{use_sign}</if>
|
||||
<if test="wordbook_name != null and wordbook_name != ''">and wordbook_name like '%'+#{wordbook_name}+'%'</if>
|
||||
@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkHosInfoMapper">
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkHosInfo">
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.xtwh.XkHosInfo">
|
||||
select * from xk_hos_info
|
||||
<where>
|
||||
<if test="hospital_code != null and hospital_code != ''">and hospital_code = #{hospital_code}</if>
|
||||
@ -10,7 +10,7 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="queryOne" resultType="com.czblood.bus.pojo.XkHosInfo">
|
||||
<select id="queryOne" resultType="com.czblood.bus.pojo.xtwh.XkHosInfo">
|
||||
select * from xk_hos_info where hospital_code = #{hospital_code}
|
||||
</select>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkParameterMapper">
|
||||
<select id="queryOne" resultType="com.czblood.bus.pojo.XkParameter">
|
||||
<select id="queryOne" resultType="com.czblood.bus.pojo.xtwh.XkParameter">
|
||||
select * from xk_parameter where parameter_code = #{parameter_code}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -3,7 +3,7 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkXtwhIllDiagnoseMapper">
|
||||
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkXtwhIllDiagnose">
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.xtwh.XkXtwhIllDiagnose">
|
||||
select * from xk_xtwh_ill_diagnose
|
||||
<where>
|
||||
<if test="Ill_Code != null and Ill_Code != ''">Ill_Code = #{Ill_Code}</if>
|
||||
@ -3,7 +3,7 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.czblood.bus.mapper.XkXtwhIllMapper">
|
||||
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.XkXtwhIll">
|
||||
<select id="queryList" resultType="com.czblood.bus.pojo.xtwh.XkXtwhIll">
|
||||
select * from xk_xtwh_ill
|
||||
<where>
|
||||
<if test="Ill_Code != null and Ill_Code != ''">and Ill_Code = #{Ill_Code}</if>
|
||||
@ -4,7 +4,7 @@ package com.czblood.busBloodbank.controller;
|
||||
import com.czblood.bus.cache.DmzdCache;
|
||||
import com.czblood.bus.constants.BloodSysLogConstants;
|
||||
import com.czblood.bus.mapper.XkDmzdMapper;
|
||||
import com.czblood.bus.pojo.XkDmzd;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.common.annotation.Log;
|
||||
import com.czblood.common.core.controller.BaseController;
|
||||
|
||||
@ -2,7 +2,7 @@ package com.czblood.busBloodbank.controller;
|
||||
|
||||
import com.czblood.bus.constants.BloodSysLogConstants;
|
||||
import com.czblood.bus.mapper.XkHosInfoMapper;
|
||||
import com.czblood.bus.pojo.XkHosInfo;
|
||||
import com.czblood.bus.pojo.xtwh.XkHosInfo;
|
||||
import com.czblood.common.annotation.Log;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import com.czblood.common.enums.BusinessType;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.czblood.busBloodbank.controller;
|
||||
|
||||
import com.czblood.bus.pojo.XkXtwhIll;
|
||||
import com.czblood.bus.pojo.xtwh.XkXtwhIll;
|
||||
import com.czblood.busBloodbank.service.XkXtwhIllService;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import io.swagger.annotations.Api;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.czblood.busBloodbank.service;
|
||||
|
||||
import com.czblood.bus.pojo.XkXtwhIll;
|
||||
import com.czblood.bus.pojo.xtwh.XkXtwhIll;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
|
||||
public interface XkXtwhIllService {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package com.czblood.busBloodbank.service.impl;
|
||||
|
||||
import com.czblood.bus.mapper.XkXtwhIllMapper;
|
||||
import com.czblood.bus.pojo.XkXtwhIll;
|
||||
import com.czblood.bus.pojo.xtwh.XkXtwhIll;
|
||||
import com.czblood.busBloodbank.service.XkXtwhIllService;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -3,9 +3,10 @@ package com.czblood.busDoctor.mapper;
|
||||
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
|
||||
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
|
||||
import org.apache.ibatis.annotations.MapKey;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -16,4 +17,5 @@ public interface TransfuseApplyMapper {
|
||||
int queryXkCheckBloodtypeCount(@Param("beinhos_id") String beinhos_id);
|
||||
String checkSameBloodType(@Param("beinhos_id") String beinhos_id,@Param("blood_breed") String blood_breed);
|
||||
List<Map<String,Object>> checkSelfBlood(@Param("beinhos_id") String beinhos_id);
|
||||
BigDecimal queryApplyTransTotalNum(@Param("beinhos_id") String beinhos_id,@Param("stime") Date stime, @Param("etime") Date etime,@Param("bloodKindList") List<String> bloodKindList,@Param("billNo") String billNo);
|
||||
}
|
||||
|
||||
@ -2,10 +2,9 @@ package com.czblood.busDoctor.service.impl;
|
||||
|
||||
import com.czblood.bus.mapper.*;
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.bus.utils.BloodInterfaceUtil;
|
||||
import com.czblood.busDoctor.mapper.TransfuseApplyMapper;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyCausalisSetDTO;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
|
||||
import com.czblood.busDoctor.pojo.VO.TransfuseApplyVO;
|
||||
@ -18,7 +17,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -45,6 +43,8 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
XkTransfuseApplyCausalisMapper xkTransfuseApplyCausalisMapper;
|
||||
@Resource
|
||||
TransfuseApplyUtil transfuseApplyUtil;
|
||||
@Resource
|
||||
XkTransfuseApplyApprovalMapper xkTransfuseApplyApprovalMapper;
|
||||
|
||||
/**
|
||||
* 获取病人信息
|
||||
@ -256,9 +256,25 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
*/
|
||||
@Override
|
||||
public Result saveApplyInfo(TransfuseApplyDTO transfuseApplyDTO) {
|
||||
//前置校验
|
||||
//产生申请单编号
|
||||
TransfuseApplyInfoOne transfuseApplyInfoOne = transfuseApplyDTO.getTransfuseApplyInfoOne();
|
||||
String billNo = transfuseApplyInfoOne.getBill_no();
|
||||
//校验是否是大量用血
|
||||
if(billNo != null){
|
||||
//有申请单编号,说明是修改数据,如果之前有记录,直接返回数据给前端
|
||||
XkTransfuseApplyApproval xkTransfuseApplyApproval = xkTransfuseApplyApprovalMapper.queryOneByBillNo(billNo);
|
||||
if(xkTransfuseApplyApproval != null){
|
||||
String applyLevel = xkTransfuseApplyApproval.getApplyLevel();
|
||||
if(applyLevel.equals("2")) return new Result("-1","申请用血量≥800ml,需科主任进入临床用血(大量用血审批)页面核准!");
|
||||
if(applyLevel.equals("3")) return new Result("-1","申请用血量≥1600ml,需科主任进入临床用血(大量用血审批)页面核准后,再报医务部门在临床用血(大量用血审批)批准!");
|
||||
}
|
||||
//修改数据,保存申请单数据
|
||||
}
|
||||
//新增数据,判断大量用血申请
|
||||
Result result = transfuseApplyUtil.computeLargeBlood(transfuseApplyDTO);
|
||||
if(!result.getCode().equals("0")) return result;
|
||||
//产生申请单编号
|
||||
|
||||
|
||||
//保存数据
|
||||
return null;
|
||||
}
|
||||
@ -271,12 +287,26 @@ public class TransfuseApplyServiceImpl implements TransfuseApplyService {
|
||||
@Override
|
||||
public Result checkCausalis(TransfuseApplyDTO transfuseApplyDTO) {
|
||||
//输血指征处理
|
||||
TransfuseApplyInfoOne transfuseApplyInfoOne = transfuseApplyDTO.getTransfuseApplyInfoOne();
|
||||
if(!StringUtils.isEmpty(transfuseApplyInfoOne.getBill_no())){
|
||||
//如果申请单编号不是空的,说明是修改数据,如果之前有数据,则返回之前的数据,没有标识校验通过
|
||||
List<XkTransfuseApplyCausalis> xkTransfuseApplyCausalisList = transfuseApplyDTO.getXkTransfuseApplyCausalisList();
|
||||
if(xkTransfuseApplyCausalisList.isEmpty()){
|
||||
return new Result("0","校验通过!");
|
||||
}else{
|
||||
return new Result("1","校验失败!",xkTransfuseApplyCausalisList);
|
||||
}
|
||||
}
|
||||
//输血指征是否输血合理,校验是否符合输血指征的规则
|
||||
//他原来的逻辑,分单据类型了,没搞懂为啥分,先统一校验吧
|
||||
return transfuseApplyUtil.checkCausalis(transfuseApplyDTO);
|
||||
// if(result.getCode().equals("1")){
|
||||
// List<TransfuseApplyCausalisSetDTO> xkCausalisSetRetList = (List<TransfuseApplyCausalisSetDTO>)result.getData();
|
||||
// }
|
||||
Result result = transfuseApplyUtil.checkCausalis(transfuseApplyDTO);
|
||||
if(result.getCode().equals("0")) return result;
|
||||
if(result.getCode().equals("1")){
|
||||
List<XkTransfuseApplyCausalis> xkTransfuseApplyCausalisRetList = (List<XkTransfuseApplyCausalis>)result.getData();
|
||||
return new Result("1","校验失败!",xkTransfuseApplyCausalisRetList);
|
||||
}
|
||||
|
||||
return new Result("0","校验通过!");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1,20 +1,23 @@
|
||||
package com.czblood.busDoctor.utils;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.czblood.bus.mapper.XkBloodBreedMapper;
|
||||
import com.czblood.bus.mapper.XkCausalisSetMapper;
|
||||
import com.czblood.bus.pojo.XkCausalisSet;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyBloodbreed;
|
||||
import com.czblood.bus.pojo.XkTransfuseApplyTestitem;
|
||||
import com.czblood.bus.pojo.*;
|
||||
import com.czblood.bus.pojo.xtwh.XkBloodBreed;
|
||||
import com.czblood.bus.pojo.xtwh.XkDmzd;
|
||||
import com.czblood.bus.utils.BloodBankUtil;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyCausalisSetDTO;
|
||||
import com.czblood.busDoctor.mapper.TransfuseApplyMapper;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyDTO;
|
||||
import com.czblood.busDoctor.pojo.DTO.TransfuseApplyInfoOne;
|
||||
import com.czblood.common.core.domain.Result;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
@ -22,11 +25,71 @@ public class TransfuseApplyUtil {
|
||||
|
||||
@Resource
|
||||
XkCausalisSetMapper xkCausalisSetMapper;
|
||||
@Resource
|
||||
BloodBankUtil bloodBankUtil;
|
||||
@Resource
|
||||
XkBloodBreedMapper xkBloodBreedMapper;
|
||||
@Resource
|
||||
TransfuseApplyMapper transfuseApplyMapper;
|
||||
|
||||
/**
|
||||
* 计算大量用血
|
||||
*/
|
||||
public void computeLargeBlood(){
|
||||
public Result computeLargeBlood(TransfuseApplyDTO transfuseApplyDTO){
|
||||
TransfuseApplyInfoOne transfuseApplyInfoOne = transfuseApplyDTO.getTransfuseApplyInfoOne();
|
||||
String beinhosId = transfuseApplyInfoOne.getBeinhos_id();
|
||||
String billNo = transfuseApplyInfoOne.getBill_no();
|
||||
String applyType = transfuseApplyInfoOne.getApply_type();
|
||||
XkDmzd sqlxDmzd = bloodBankUtil.getDictCacheOneByName("sqlx", applyType);
|
||||
String exp2 = sqlxDmzd.getExp2(); //是否是抢救用血
|
||||
String applyLev = ""; //大量用血等级
|
||||
String flag = ""; //通过标志
|
||||
String msg = "";
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
//抢救用血不参与大量用血计算
|
||||
if(BloodBankUtil.isBank(exp2).equals("Y")) return new Result("0","抢救用血不参与大量用血计算");
|
||||
//血液品种是否参与大量用血判断
|
||||
BigDecimal totalApplyNum = BigDecimal.ZERO;
|
||||
List<String> bloodKindList = new ArrayList<>();
|
||||
List<XkTransfuseApplyBloodbreed> xkTransfuseApplyBloodbreedList = transfuseApplyDTO.getXkTransfuseApplyBloodbreedList();
|
||||
for (XkTransfuseApplyBloodbreed xkTransfuseApplyBloodbreed : xkTransfuseApplyBloodbreedList) {
|
||||
String bloodBreed = xkTransfuseApplyBloodbreed.getBlood_breed();
|
||||
BigDecimal bloodNum = xkTransfuseApplyBloodbreed.getBlood_num();
|
||||
XkBloodBreed xkBloodBreed = xkBloodBreedMapper.queryOne(bloodBreed);
|
||||
XkDmzd xylxDmzd = bloodBankUtil.getDictCacheOneByName("xylx", xkBloodBreed.getBlood_kind());
|
||||
String exp1 = 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();
|
||||
DateTime yesterday = DateUtil.offsetDay(currentTimeDate, -1);
|
||||
//其中不包含了当前申请单的输血量
|
||||
BigDecimal beforeNum = transfuseApplyMapper.queryApplyTransTotalNum(beinhosId, yesterday, currentTimeDate, bloodKindList,billNo);
|
||||
//大量用血判断
|
||||
BigDecimal largeBloodNum = totalApplyNum.add(beforeNum).abs();
|
||||
if(largeBloodNum.compareTo(new BigDecimal(800)) < 0){
|
||||
applyLev = "1";
|
||||
flag = "Y";
|
||||
}else if(largeBloodNum.compareTo(new BigDecimal(800)) >= 0 && largeBloodNum.compareTo(new BigDecimal(1600)) < 0){
|
||||
applyLev = "2";
|
||||
flag = "N";
|
||||
msg = "申请用血量≥800ml,需科主任进入临床用血(大量用血审批)页面核准!";
|
||||
}else{
|
||||
applyLev = "3";
|
||||
flag = "N";
|
||||
msg = "申请用血量≥1600ml,需科主任进入临床用血(大量用血审批)页面核准后,再报医务部门在临床用血(大量用血审批)批准!";
|
||||
}
|
||||
map.put("applyLev",applyLev);
|
||||
map.put("flag",flag);
|
||||
if(flag.equals("N")){
|
||||
return new Result("1",msg,map);
|
||||
}else{
|
||||
//校验通过
|
||||
return new Result("0",msg,map);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -42,13 +105,13 @@ public class TransfuseApplyUtil {
|
||||
String beinhosId = BloodBankUtil.isBank(transfuseApplyInfoOne.getBeinhos_id());
|
||||
String deptType = BloodBankUtil.isBank(transfuseApplyInfoOne.getDept_Type());
|
||||
String useType = BloodBankUtil.isBank(transfuseApplyInfoOne.getUse_type());
|
||||
String billNo = BloodBankUtil.isBank(transfuseApplyInfoOne.getBill_no());
|
||||
XkCausalisSet xkCausalisSet = new XkCausalisSet();
|
||||
xkCausalisSet.setUse_Sign("Y");
|
||||
xkCausalisSet.setDept_Type(deptType);
|
||||
xkCausalisSet.setUse_Type(useType);
|
||||
List<XkCausalisSet> xkCausalisSetList = xkCausalisSetMapper.queryList(xkCausalisSet);
|
||||
List<TransfuseApplyCausalisSetDTO> xkCausalisSetRetList = new ArrayList<>();
|
||||
List<XkTransfuseApplyCausalis> xkTransfuseApplyCausalisList = new ArrayList<>();
|
||||
int i = 0;
|
||||
//这个返回也是原来的逻辑
|
||||
if(beinhosId.equals("") || deptType.equals("") || useType.equals("") ) return new Result("0","字段没有填完整,无法校验!");
|
||||
List<XkTransfuseApplyTestitem> xkTransfuseApplyTestitemList = transfuseApplyDTO.getXkTransfuseApplyTestitemList();
|
||||
@ -63,23 +126,28 @@ public class TransfuseApplyUtil {
|
||||
String itemResult = xkTransfuseApplyTestitem.getItem_result();
|
||||
XkCausalisSet xkCausalisSet2 = calcCausalis(collect, itemName, itemResult);
|
||||
if(xkCausalisSet2 != null){
|
||||
//没有校验通过的,增加数据
|
||||
TransfuseApplyCausalisSetDTO transfuseApplyCausalisSetDTO = new TransfuseApplyCausalisSetDTO();
|
||||
transfuseApplyCausalisSetDTO.setXkCausalisSet(xkCausalisSet2);
|
||||
transfuseApplyCausalisSetDTO.setTestValue(itemResult);
|
||||
xkCausalisSetRetList.add(transfuseApplyCausalisSetDTO);
|
||||
//没有校验通过的,增加数据,让前台界面显示
|
||||
XkTransfuseApplyCausalis xkTransfuseApplyCausalis = new XkTransfuseApplyCausalis();
|
||||
xkTransfuseApplyCausalis.setSID(i++);
|
||||
xkTransfuseApplyCausalis.setCausalis_Code(xkCausalisSet.getCausalis_Code());
|
||||
xkTransfuseApplyCausalis.setCausalis_Name(xkCausalisSet.getCausalis_Name());
|
||||
xkTransfuseApplyCausalis.setCausalis_Result(xkCausalisSet.getCausalis_Result());
|
||||
xkTransfuseApplyCausalis.setUse_Flag("Y");
|
||||
xkTransfuseApplyCausalis.setUpload_Flag("N");
|
||||
xkTransfuseApplyCausalis.setExplain("");
|
||||
xkTransfuseApplyCausalisList.add(xkTransfuseApplyCausalis);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(xkCausalisSetRetList.isEmpty()){
|
||||
if(xkTransfuseApplyCausalisList.isEmpty()){
|
||||
return new Result("0","校验成功!");
|
||||
}else{
|
||||
return new Result("1","校验失败",xkCausalisSetRetList);
|
||||
return new Result("1","校验失败",xkTransfuseApplyCausalisList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public XkCausalisSet calcCausalis(List<XkCausalisSet> xkCausalisSetList, String proName,String testValue){
|
||||
private XkCausalisSet calcCausalis(List<XkCausalisSet> xkCausalisSetList, String proName,String testValue){
|
||||
//查找是否包含该指标
|
||||
List<XkCausalisSet> collect = xkCausalisSetList.stream().filter(xkCausalisSet -> xkCausalisSet.getPro_Name().equals(proName)).collect(Collectors.toList());
|
||||
if(collect.isEmpty()) return null;
|
||||
@ -157,4 +225,13 @@ public class TransfuseApplyUtil {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 产生单据编号
|
||||
* @param billType
|
||||
* @return
|
||||
*/
|
||||
public String produceBillNo(String billType){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -155,4 +155,21 @@
|
||||
group by xk_blood_breed.breed_name,xk_blood_info.unit
|
||||
|
||||
</select>
|
||||
<select id="queryApplyTransTotalNum" resultType="java.math.BigDecimal">
|
||||
SELECT sum ( t.blood_num / b.capacity *b.applynum ) rl_qc
|
||||
FROM xk_transfuse_apply a , xk_blood_apply_trans b , xk_transfuse_apply_bloodbreed t , xk_blood_breed k
|
||||
WHERE a.beinhos_id = #{beinhos_id} AND
|
||||
a.Bill_No =t.Bill_No AND
|
||||
k.blood_kind =b.blood_breed AND
|
||||
t.blood_breed =k.breed_code AND
|
||||
<![CDATA[a.bill_stasus <> 'Z' and]]>
|
||||
a.apply_date Between #{stime} AND #{etime}
|
||||
<if test="billNo != null and billNo != ''"><![CDATA[and a.bill_no <> #{billNo}]]></if>
|
||||
<if test="bloodKindList != null and bloodKindList.size() > 0">
|
||||
and k.blood_kind in
|
||||
<foreach collection="bloodKindList" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
@ -468,3 +468,16 @@ IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_parameter'
|
||||
ALTER TABLE xk_parameter ADD CONSTRAINT PK_xk_parameter PRIMARY KEY CLUSTERED (parameter_code);
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_transfuse_apply_approval' AND type = 'PK' )
|
||||
BEGIN
|
||||
ALTER TABLE xk_transfuse_apply_approval ADD CONSTRAINT PK_xk_transfuse_apply_approval PRIMARY KEY CLUSTERED (bill_no);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.key_constraints WHERE name = 'PK_xk_blood_apply_trans' AND type = 'PK' )
|
||||
BEGIN
|
||||
ALTER TABLE xk_blood_apply_trans ADD CONSTRAINT PK_xk_blood_apply_trans PRIMARY KEY CLUSTERED (blood_breed,sid);
|
||||
END
|
||||
GO
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user