临床发血退血
This commit is contained in:
parent
a0aca66d29
commit
5fb1e91dc8
@ -1,6 +1,7 @@
|
|||||||
package com.czblood.bus.mapper;
|
package com.czblood.bus.mapper;
|
||||||
|
|
||||||
import com.czblood.bus.pojo.XkBackinDetail;
|
import com.czblood.bus.pojo.XkBackinDetail;
|
||||||
|
import io.lettuce.core.dynamic.annotation.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -8,4 +9,5 @@ public interface XkBackinDetailMapper {
|
|||||||
List<XkBackinDetail> queryListByBillNo(String billNo);
|
List<XkBackinDetail> queryListByBillNo(String billNo);
|
||||||
void insert(XkBackinDetail xkBackinDetail);
|
void insert(XkBackinDetail xkBackinDetail);
|
||||||
void deleteByBillNo(String billNo);
|
void deleteByBillNo(String billNo);
|
||||||
|
void deleteOne(@Param("billNo") String billNo,@Param("bloodNo") String bloodNo,@Param("productNo") String productNo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,4 @@
|
|||||||
|
package com.czblood.bus.mapper;
|
||||||
|
|
||||||
|
public interface XkDiscardDetailMapper {
|
||||||
|
}
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
package com.czblood.bus.mapper;
|
||||||
|
|
||||||
|
public interface XkDiscardMainMapper {
|
||||||
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package com.czblood.bus.pojo;
|
package com.czblood.bus.pojo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -18,4 +19,6 @@ public class XkBackinDetail {
|
|||||||
private BigDecimal price;
|
private BigDecimal price;
|
||||||
private String reason;
|
private String reason;
|
||||||
private String product_no;
|
private String product_no;
|
||||||
|
@ApiModelProperty("收费退血单号")
|
||||||
|
private String charge_billno;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,6 +34,4 @@ public class XkBackinMain {
|
|||||||
@ApiModelProperty("审核日期")
|
@ApiModelProperty("审核日期")
|
||||||
private Date audit_date;
|
private Date audit_date;
|
||||||
private String remark;
|
private String remark;
|
||||||
@ApiModelProperty("收费退血单号")
|
|
||||||
private String charge_billno;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,15 +4,18 @@
|
|||||||
<mapper namespace="com.czblood.bus.mapper.XkBackinDetailMapper">
|
<mapper namespace="com.czblood.bus.mapper.XkBackinDetailMapper">
|
||||||
<insert id="insert">
|
<insert id="insert">
|
||||||
insert into xk_backin_detail (
|
insert into xk_backin_detail (
|
||||||
bill_no,sid,blood_no,price,reason,product_no
|
bill_no,sid,blood_no,price,reason,product_no,charge_billno
|
||||||
)values(
|
)values(
|
||||||
#{bill_no},#{sid},#{blood_no},#{price},#{reason},#{product_no})
|
#{bill_no},#{sid},#{blood_no},#{price},#{reason},#{product_no},#{charge_billno})
|
||||||
</insert>
|
</insert>
|
||||||
<delete id="deleteByBillNo">
|
<delete id="deleteByBillNo">
|
||||||
delete from xk_backin_detail where bill_no = #{billNo}
|
delete from xk_backin_detail where bill_no = #{billNo}
|
||||||
</delete>
|
</delete>
|
||||||
|
<delete id="deleteOne">
|
||||||
|
delete from xk_backin_detail where bill_no = #{billNo} and blood_no = #{bloodNo} and product_no = #{productNo}
|
||||||
|
</delete>
|
||||||
|
|
||||||
<select id="queryListByBillNo" resultType="com.czblood.bus.pojo.XkBackinDetail">
|
<select id="queryListByBillNo" resultType="com.czblood.bus.pojo.XkBackinDetail">
|
||||||
select * from xk_backin_detail where bill_no = #{bill_no}
|
select * from xk_backin_detail where bill_no = #{billNo}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -14,7 +14,6 @@
|
|||||||
<if test="audit_person != null">audit_person,</if>
|
<if test="audit_person != null">audit_person,</if>
|
||||||
<if test="audit_date != null">audit_date,</if>
|
<if test="audit_date != null">audit_date,</if>
|
||||||
<if test="remark != null">remark,</if>
|
<if test="remark != null">remark,</if>
|
||||||
<if test="charge_billno != null">charge_billno,</if>
|
|
||||||
bill_no
|
bill_no
|
||||||
)values(
|
)values(
|
||||||
<if test="org_type != null">#{org_type},</if>
|
<if test="org_type != null">#{org_type},</if>
|
||||||
@ -27,8 +26,7 @@
|
|||||||
<if test="audit_person != null">#{audit_person},</if>
|
<if test="audit_person != null">#{audit_person},</if>
|
||||||
<if test="audit_date != null">#{audit_date},</if>
|
<if test="audit_date != null">#{audit_date},</if>
|
||||||
<if test="remark != null">#{remark},</if>
|
<if test="remark != null">#{remark},</if>
|
||||||
<if test="charge_billno != null">#{charge_billno},</if>
|
#{bill_no})
|
||||||
#{billNo})
|
|
||||||
</insert>
|
</insert>
|
||||||
<update id="update">
|
<update id="update">
|
||||||
update xk_backin_main set
|
update xk_backin_main set
|
||||||
@ -42,9 +40,8 @@
|
|||||||
<if test="audit_person != null">audit_person = #{audit_person},</if>
|
<if test="audit_person != null">audit_person = #{audit_person},</if>
|
||||||
<if test="audit_date != null">audit_date = #{audit_date},</if>
|
<if test="audit_date != null">audit_date = #{audit_date},</if>
|
||||||
<if test="remark != null">remark = #{remark},</if>
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
<if test="charge_billno != null">charge_billno = #{charge_billno},</if>
|
|
||||||
bill_no = #{bill_no}
|
bill_no = #{bill_no}
|
||||||
where bill_no = #{billNo}
|
where bill_no = #{bill_no}
|
||||||
</update>
|
</update>
|
||||||
<delete id="deleteByBillNo">
|
<delete id="deleteByBillNo">
|
||||||
delete from xk_backin_main where bill_no = #{billNo}
|
delete from xk_backin_main where bill_no = #{billNo}
|
||||||
|
|||||||
@ -0,0 +1,6 @@
|
|||||||
|
<?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.XkDiscardDetailMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
<?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.XkDiscardMainMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
package com.czblood.busBloodbank.controller;
|
||||||
|
|
||||||
|
import com.czblood.busBloodbank.service.DiscardMainService;
|
||||||
|
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/discardMain")
|
||||||
|
public class DiscardMainController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DiscardMainService discardMainService;
|
||||||
|
|
||||||
|
@ApiOperation("查询血液信息")
|
||||||
|
@GetMapping("/queryBloodInfo")
|
||||||
|
public Result queryBloodInfo(String bloodNo,String productNo){
|
||||||
|
return discardMainService.queryBloodInfo(bloodNo,productNo);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -13,4 +13,5 @@ public interface BackinMapper {
|
|||||||
Date queryOutMainDate(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
Date queryOutMainDate(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||||
List<Map<String, Object>> queryPatientInfo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
List<Map<String, Object>> queryPatientInfo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||||
List<Map<String,Object>> queryList(BackinQueryVO backinQueryVO);
|
List<Map<String,Object>> queryList(BackinQueryVO backinQueryVO);
|
||||||
|
String queryMaxApplyNo(@Param("beinhos_id") String beinhos_id,@Param("bloodNo") String bloodNo, @Param("productNo")String productNo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,19 @@
|
|||||||
|
package com.czblood.busBloodbank.pojo.DTO;
|
||||||
|
|
||||||
|
import com.czblood.bus.pojo.XkBackinDetail;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class BackinBloodDTO {
|
||||||
|
private XkBackinDetail xkBackinDetail;
|
||||||
|
private Map<String,Object> patientInfo;
|
||||||
|
@ApiModelProperty("标志位,1:新增,2:删除")
|
||||||
|
private String flag;
|
||||||
|
}
|
||||||
@ -7,12 +7,13 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class BackinDataDTO {
|
public class BackinDataDTO {
|
||||||
private XkBackinMain xkBackinMain;
|
private XkBackinMain xkBackinMain;
|
||||||
private List<XkBackinDetail> xkBackinDetailList;
|
private List<BackinBloodDTO> xkBackinDetailList;
|
||||||
private String userId;
|
private String userId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,7 @@
|
|||||||
|
package com.czblood.busBloodbank.service;
|
||||||
|
|
||||||
|
import com.czblood.common.core.domain.Result;
|
||||||
|
|
||||||
|
public interface DiscardMainService {
|
||||||
|
Result queryBloodInfo(String bloodNo, String productNo);
|
||||||
|
}
|
||||||
@ -10,6 +10,7 @@ import com.czblood.bus.utils.BloodBankUtil;
|
|||||||
import com.czblood.bus.utils.BloodInterfaceUtil;
|
import com.czblood.bus.utils.BloodInterfaceUtil;
|
||||||
import com.czblood.bus.utils.ReportUtil;
|
import com.czblood.bus.utils.ReportUtil;
|
||||||
import com.czblood.busBloodbank.mapper.BackinMapper;
|
import com.czblood.busBloodbank.mapper.BackinMapper;
|
||||||
|
import com.czblood.busBloodbank.pojo.DTO.BackinBloodDTO;
|
||||||
import com.czblood.busBloodbank.pojo.DTO.BackinDTO;
|
import com.czblood.busBloodbank.pojo.DTO.BackinDTO;
|
||||||
import com.czblood.busBloodbank.pojo.DTO.BackinDataDTO;
|
import com.czblood.busBloodbank.pojo.DTO.BackinDataDTO;
|
||||||
import com.czblood.busBloodbank.pojo.VO.BackinQueryVO;
|
import com.czblood.busBloodbank.pojo.VO.BackinQueryVO;
|
||||||
@ -21,10 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class BackinServiceImpl implements BackinService {
|
public class BackinServiceImpl implements BackinService {
|
||||||
@ -92,84 +90,57 @@ public class BackinServiceImpl implements BackinService {
|
|||||||
@Override
|
@Override
|
||||||
public Result saveData(BackinDataDTO backinDataDTO) {
|
public Result saveData(BackinDataDTO backinDataDTO) {
|
||||||
XkBackinMain xkBackinMain = backinDataDTO.getXkBackinMain();
|
XkBackinMain xkBackinMain = backinDataDTO.getXkBackinMain();
|
||||||
List<XkBackinDetail> xkBackinDetailList = backinDataDTO.getXkBackinDetailList();
|
List<BackinBloodDTO> xkBackinDetailList = backinDataDTO.getXkBackinDetailList();
|
||||||
|
|
||||||
String billNo = BloodBankUtil.isBank(xkBackinMain.getBill_no());
|
String billNo = BloodBankUtil.isBank(xkBackinMain.getBill_no());
|
||||||
String chargeBillNo = xkBackinMain.getCharge_billno();
|
|
||||||
String auditPerson = BloodBankUtil.isBank(xkBackinMain.getAudit_person());
|
String auditPerson = BloodBankUtil.isBank(xkBackinMain.getAudit_person());
|
||||||
if(!auditPerson.equals("")) return new Result("-1","该单据已经审核,不能修改!");
|
if(!auditPerson.equals("")) return new Result("-1","该单据已经审核,不能修改!");
|
||||||
String newBillNo = "";
|
String newBillNo = "";
|
||||||
|
|
||||||
|
List<XkChargeMain> xkChargeMainList = new ArrayList<>();
|
||||||
List<XkChargeDetail> xkChargeDetailList = new ArrayList<>();
|
List<XkChargeDetail> xkChargeDetailList = new ArrayList<>();
|
||||||
String newChargeBillNo = "";
|
|
||||||
XkChargeMain xkChargeMainTemp = null;
|
|
||||||
if(billNo.equals("")){
|
if(billNo.equals("")){
|
||||||
//新增
|
//新增
|
||||||
newBillNo = bloodBankUtil.produceBillNo("LCTXD");
|
newBillNo = bloodBankUtil.produceBillNo("LCTXD");
|
||||||
//保存费用表
|
|
||||||
newChargeBillNo = bloodBankUtil.produceBillNo("YXSF");
|
|
||||||
xkBackinMain.setCharge_billno(newChargeBillNo);
|
|
||||||
xkBackinMain.setBill_no(newBillNo);
|
xkBackinMain.setBill_no(newBillNo);
|
||||||
xkBackinMain.setOrg_type("A");
|
xkBackinMain.setOrg_type("A");
|
||||||
xkBackinMain.setBack_org(backinDataDTO.getUserId());
|
xkBackinMain.setBack_org(backinDataDTO.getUserId());
|
||||||
xkBackinMain.setInput_date(bloodBankUtil.getCurrentTimeDate());
|
xkBackinMain.setInput_date(bloodBankUtil.getCurrentTimeDate());
|
||||||
xkBackinMain.setInput_person(backinDataDTO.getUserId());
|
xkBackinMain.setInput_person(backinDataDTO.getUserId());
|
||||||
BigDecimal totalMoney = BigDecimal.ZERO;
|
BigDecimal totalMoney = BigDecimal.ZERO;
|
||||||
for (XkBackinDetail xkBackinDetail : xkBackinDetailList) {
|
for (BackinBloodDTO backinBloodDTO : xkBackinDetailList) {
|
||||||
|
XkBackinDetail xkBackinDetail = backinBloodDTO.getXkBackinDetail();
|
||||||
List<XkInstorageDetail> xkInstorageDetailList = xkInstorageDetailMapper.queryByBloodNo(xkBackinDetail.getBlood_no(), xkBackinDetail.getProduct_no());
|
List<XkInstorageDetail> xkInstorageDetailList = xkInstorageDetailMapper.queryByBloodNo(xkBackinDetail.getBlood_no(), xkBackinDetail.getProduct_no());
|
||||||
if(!xkInstorageDetailList.isEmpty()){
|
if(!xkInstorageDetailList.isEmpty()){
|
||||||
totalMoney = totalMoney.add(xkInstorageDetailList.get(0).getPrice());
|
totalMoney = totalMoney.add(xkInstorageDetailList.get(0).getPrice());
|
||||||
xkBackinDetail.setPrice(xkInstorageDetailList.get(0).getPrice());
|
xkBackinDetail.setPrice(xkInstorageDetailList.get(0).getPrice());
|
||||||
}
|
}
|
||||||
xkBackinDetail.setBill_no(newBillNo);
|
xkBackinDetail.setBill_no(newBillNo);
|
||||||
|
Result result = insertChargeInfo(backinBloodDTO,backinDataDTO.getUserId());
|
||||||
|
if(!result.getCode().equals("0")) return result;
|
||||||
|
XkChargeMain xkChargeMain = null;
|
||||||
|
XkChargeDetail xkChargeDetail = null;
|
||||||
|
if(result.getData() != null){
|
||||||
|
Map<String,Object> mapData = (Map<String,Object>)result.getData();
|
||||||
|
xkChargeMain = (XkChargeMain)mapData.get("xkChargeMain");
|
||||||
|
xkChargeDetail = (XkChargeDetail)mapData.get("xkChargeDetail");
|
||||||
|
xkChargeMainList.add(xkChargeMain);
|
||||||
|
xkChargeDetailList.add(xkChargeDetail);
|
||||||
|
xkBackinDetail.setCharge_billno(xkChargeMain.getBill_no());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
xkBackinMain.setTotal_money(totalMoney); //总金额
|
xkBackinMain.setTotal_money(totalMoney); //总金额
|
||||||
|
|
||||||
xkChargeMainTemp = new XkChargeMain();
|
SpringUtils.getBean(BackinServiceImpl.class).saveChargeData(xkBackinMain,xkBackinDetailList,xkChargeMainList,xkChargeDetailList);
|
||||||
xkChargeMainTemp.setBill_no(newChargeBillNo);
|
|
||||||
xkChargeMainTemp.setHandle_person(backinDataDTO.getUserId());
|
|
||||||
xkChargeMainTemp.setOccur_date(bloodBankUtil.getCurrentTimeDate());
|
|
||||||
XkDmzd lctxyyCache = bloodBankUtil.getDictCacheOne("lctxyy", xkBackinDetailList.get(0).getReason());
|
|
||||||
xkChargeMainTemp.setRemark(lctxyyCache.getWordbook_name());
|
|
||||||
xkChargeMainTemp.setSend_flag("N");
|
|
||||||
xkChargeMainTemp.setCheck_sign("N");
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
//修改
|
//修改
|
||||||
newChargeBillNo = chargeBillNo;
|
Result result = SpringUtils.getBean(BackinServiceImpl.class).updateChargeData(xkBackinMain, xkBackinDetailList, backinDataDTO);
|
||||||
|
if(!result.getCode().equals("0")) return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
XkChargeItem xkChargeItemQuery = new XkChargeItem();
|
|
||||||
xkChargeItemQuery.setModule_type("003"); //临床发血收费项目
|
|
||||||
List<XkChargeItem> xkChargeItemList = xkChargeItemMapper.queryList(xkChargeItemQuery);
|
|
||||||
int i = 0;
|
|
||||||
for (XkBackinDetail xkBackinDetail : xkBackinDetailList) {
|
|
||||||
i++;
|
|
||||||
String bloodNo = xkBackinDetail.getBlood_no();
|
|
||||||
String productNo = xkBackinDetail.getProduct_no();
|
|
||||||
XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo);
|
|
||||||
String bloodBreed = xkBloodInfo.getBlood_breed();
|
|
||||||
String rhBloodType = xkBloodInfo.getRh_blood_type();
|
|
||||||
BigDecimal capacity = xkBloodInfo.getCapacity();
|
|
||||||
XkChargeItem xkChargeItemFind = xkChargeItemList.stream().filter(xkChargeItem -> xkChargeItem.getBlood_breed().equals(bloodBreed)
|
|
||||||
&& xkChargeItem.getRh_blood_type().equals(rhBloodType)
|
|
||||||
&& xkChargeItem.getCure_item().equals("A")
|
|
||||||
&& xkChargeItem.getSpec().equals(capacity)).findFirst().orElse(null);
|
|
||||||
if (xkChargeItemFind == null) return new Result("-1","没有找到该血液的收费项目!");
|
|
||||||
XkChargeDetail xkChargeDetailTemp = new XkChargeDetail();
|
|
||||||
xkChargeDetailTemp.setBill_no(newChargeBillNo);
|
|
||||||
xkChargeDetailTemp.setSerial_number(xkChargeItemFind.getItem_id());
|
|
||||||
xkChargeDetailTemp.setSpec(capacity.toString());
|
|
||||||
xkChargeDetailTemp.setUnit(xkBloodInfo.getUnit());
|
|
||||||
xkChargeDetailTemp.setPrice(xkChargeItemFind.getMoney());
|
|
||||||
xkChargeDetailTemp.setNumber(-1);
|
|
||||||
xkChargeDetailTemp.setSum(xkChargeItemFind.getMoney().multiply(new BigDecimal(-1)));
|
|
||||||
xkChargeDetailTemp.setItem_name(xkChargeItemFind.getItem_name());
|
|
||||||
xkChargeDetailTemp.setCharge_type(xkChargeItemFind.getCharge_type());
|
|
||||||
xkChargeDetailTemp.setSid(i);
|
|
||||||
xkChargeDetailTemp.setBlood_no(xkBloodInfo.getBlood_no());
|
|
||||||
xkChargeDetailTemp.setProduct_no(xkBloodInfo.getProduct_no());
|
|
||||||
xkChargeDetailList.add(xkChargeDetailTemp);
|
|
||||||
}
|
|
||||||
SpringUtils.getBean(BackinServiceImpl.class).saveChargeData(xkBackinMain,xkBackinDetailList,xkChargeMainTemp,xkChargeDetailList);
|
|
||||||
return new Result("0","保存成功!",newBillNo);
|
return new Result("0","保存成功!",newBillNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,7 +222,17 @@ public class BackinServiceImpl implements BackinService {
|
|||||||
List<XkBackinDetail> xkBackinDetailList = xkBackinDetailMapper.queryListByBillNo(billNo);
|
List<XkBackinDetail> xkBackinDetailList = xkBackinDetailMapper.queryListByBillNo(billNo);
|
||||||
BackinDataDTO backinDataDTO = new BackinDataDTO();
|
BackinDataDTO backinDataDTO = new BackinDataDTO();
|
||||||
backinDataDTO.setXkBackinMain(xkBackinMain);
|
backinDataDTO.setXkBackinMain(xkBackinMain);
|
||||||
backinDataDTO.setXkBackinDetailList(xkBackinDetailList);
|
List<BackinBloodDTO> backinBloodDTOList = new ArrayList<>();
|
||||||
|
for (XkBackinDetail xkBackinDetail : xkBackinDetailList) {
|
||||||
|
String bloodNo = xkBackinDetail.getBlood_no();
|
||||||
|
String productNo = xkBackinDetail.getProduct_no();
|
||||||
|
List<Map<String, Object>> patientInfoList = backinMapper.queryPatientInfo(bloodNo, productNo);
|
||||||
|
BackinBloodDTO backinBloodDTO = new BackinBloodDTO();
|
||||||
|
backinBloodDTO.setPatientInfo(patientInfoList.get(0));
|
||||||
|
backinBloodDTO.setXkBackinDetail(xkBackinDetail);
|
||||||
|
backinBloodDTOList.add(backinBloodDTO);
|
||||||
|
}
|
||||||
|
backinDataDTO.setXkBackinDetailList(backinBloodDTOList);
|
||||||
return new Result("0","查询成功!",backinDataDTO);
|
return new Result("0","查询成功!",backinDataDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -266,13 +247,15 @@ public class BackinServiceImpl implements BackinService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void saveChargeData(XkBackinMain xkBackinMain,List<XkBackinDetail> xkBackinDetailList,XkChargeMain xkChargeMain,List<XkChargeDetail> xkChargeDetailList){
|
public void saveChargeData(XkBackinMain xkBackinMain,List<BackinBloodDTO> xkBackinDetailList,List<XkChargeMain> xkChargeMainList,List<XkChargeDetail> xkChargeDetailList){
|
||||||
xkBackinMainMapper.insert(xkBackinMain);
|
xkBackinMainMapper.insert(xkBackinMain);
|
||||||
for (XkBackinDetail xkBackinDetail : xkBackinDetailList) {
|
for (BackinBloodDTO backinBloodDTO : xkBackinDetailList) {
|
||||||
|
XkBackinDetail xkBackinDetail = backinBloodDTO.getXkBackinDetail();
|
||||||
xkBackinDetailMapper.insert(xkBackinDetail);
|
xkBackinDetailMapper.insert(xkBackinDetail);
|
||||||
}
|
}
|
||||||
xkChargeMainMapper.insert(xkChargeMain);
|
for (XkChargeMain xkChargeMain : xkChargeMainList) {
|
||||||
xkChargeDetailMapper.deleteByBillNo(xkChargeMain.getBill_no());
|
xkChargeMainMapper.insert(xkChargeMain);
|
||||||
|
}
|
||||||
for (XkChargeDetail xkChargeDetail : xkChargeDetailList) {
|
for (XkChargeDetail xkChargeDetail : xkChargeDetailList) {
|
||||||
xkChargeDetailMapper.insert(xkChargeDetail);
|
xkChargeDetailMapper.insert(xkChargeDetail);
|
||||||
}
|
}
|
||||||
@ -291,4 +274,106 @@ public class BackinServiceImpl implements BackinService {
|
|||||||
xkBackinMainMapper.update(xkBackinMain);
|
xkBackinMainMapper.update(xkBackinMain);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Result updateChargeData(XkBackinMain xkBackinMain,List<BackinBloodDTO> xkBackinDetailList,BackinDataDTO backinDataDTO){
|
||||||
|
xkBackinMainMapper.update(xkBackinMain);
|
||||||
|
for (BackinBloodDTO backinBloodDTO : xkBackinDetailList) {
|
||||||
|
XkBackinDetail xkBackinDetail = backinBloodDTO.getXkBackinDetail();
|
||||||
|
String flag = backinBloodDTO.getFlag();
|
||||||
|
if(flag.equals("1")){
|
||||||
|
//新增
|
||||||
|
Result result = insertChargeInfo(backinBloodDTO,backinDataDTO.getUserId());
|
||||||
|
if(!result.getCode().equals("0")) return new Result("-1",result.getMsg());
|
||||||
|
XkChargeMain xkChargeMain = null;
|
||||||
|
XkChargeDetail xkChargeDetail = null;
|
||||||
|
if(result.getData() != null){
|
||||||
|
Map<String,Object> mapData = (Map<String,Object>)result.getData();
|
||||||
|
xkChargeMain = (XkChargeMain)mapData.get("main");
|
||||||
|
xkChargeDetail = (XkChargeDetail)mapData.get("detailList");
|
||||||
|
}
|
||||||
|
if(xkChargeMain != null) xkChargeMainMapper.insert(xkChargeMain);
|
||||||
|
if(xkChargeDetail != null) xkChargeDetailMapper.insert(xkChargeDetail);
|
||||||
|
//回写单号
|
||||||
|
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","更新成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组装退费信息数据
|
||||||
|
* @param backinBloodDTO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Result insertChargeInfo(BackinBloodDTO backinBloodDTO,String userId){
|
||||||
|
XkChargeItem xkChargeItemQuery = new XkChargeItem();
|
||||||
|
xkChargeItemQuery.setModule_type("003");
|
||||||
|
List<XkChargeItem> xkChargeItemList = xkChargeItemMapper.queryList(xkChargeItemQuery);
|
||||||
|
|
||||||
|
XkBackinDetail xkBackinDetail = backinBloodDTO.getXkBackinDetail();
|
||||||
|
Map<String, Object> patientInfo = backinBloodDTO.getPatientInfo();
|
||||||
|
String beinhosId = BloodBankUtil.isBank(patientInfo.get("beinhos_id"));
|
||||||
|
|
||||||
|
String bloodNo = xkBackinDetail.getBlood_no();
|
||||||
|
String productNo = xkBackinDetail.getProduct_no();
|
||||||
|
XkBloodInfo xkBloodInfo = bloodBankUtil.queryBloodInfoOne(bloodNo, productNo);
|
||||||
|
if (xkBloodInfo == null)
|
||||||
|
return new Result("-1", "没有找到血液信息!流水号:" + bloodNo + " 产品码:" + productNo);
|
||||||
|
|
||||||
|
String currentChargeBillNo = bloodBankUtil.produceBillNo("YXSF");
|
||||||
|
XkChargeMain currentMain = new XkChargeMain();
|
||||||
|
currentMain.setBill_no(currentChargeBillNo);
|
||||||
|
currentMain.setHandle_person(userId);
|
||||||
|
currentMain.setOccur_date(bloodBankUtil.getCurrentTimeDate());
|
||||||
|
XkDmzd lctxyyCache = bloodBankUtil.getDictCacheOne("lctxyy", xkBackinDetail.getReason());
|
||||||
|
currentMain.setRemark(lctxyyCache != null ? lctxyyCache.getWordbook_name() : "");
|
||||||
|
currentMain.setSend_flag("N");
|
||||||
|
currentMain.setCheck_sign("N");
|
||||||
|
currentMain.setBeinhos_id(beinhosId);
|
||||||
|
|
||||||
|
String maxApplyNo = backinMapper.queryMaxApplyNo(beinhosId, bloodNo, productNo);
|
||||||
|
currentMain.setRelative_billno(maxApplyNo);
|
||||||
|
|
||||||
|
String bloodBreed = xkBloodInfo.getBlood_breed();
|
||||||
|
String rhBloodType = xkBloodInfo.getRh_blood_type();
|
||||||
|
BigDecimal capacity = xkBloodInfo.getCapacity();
|
||||||
|
XkChargeItem xkChargeItemFind = xkChargeItemList.stream()
|
||||||
|
.filter(item -> BloodBankUtil.isBank(item.getBlood_breed()).equals(bloodBreed)
|
||||||
|
&& BloodBankUtil.isBank(item.getRh_blood_type()).equals(rhBloodType)
|
||||||
|
&& BloodBankUtil.isBank(item.getCure_item()).equals("A")
|
||||||
|
&& item.getSpec() != null
|
||||||
|
&& item.getSpec().compareTo(capacity) == 0)
|
||||||
|
.findFirst().orElse(null);
|
||||||
|
if (xkChargeItemFind == null) return new Result("-1", "没有找到该血液的收费项目!");
|
||||||
|
|
||||||
|
XkChargeDetail xkChargeDetailTemp = new XkChargeDetail();
|
||||||
|
xkChargeDetailTemp.setBill_no(currentChargeBillNo);
|
||||||
|
xkChargeDetailTemp.setSerial_number(xkChargeItemFind.getItem_id());
|
||||||
|
xkChargeDetailTemp.setSpec(capacity.toString());
|
||||||
|
xkChargeDetailTemp.setUnit(xkBloodInfo.getUnit());
|
||||||
|
xkChargeDetailTemp.setPrice(xkChargeItemFind.getMoney());
|
||||||
|
xkChargeDetailTemp.setNumber(-1);
|
||||||
|
xkChargeDetailTemp.setSum(xkChargeItemFind.getMoney().multiply(new BigDecimal(-1)));
|
||||||
|
xkChargeDetailTemp.setItem_name(xkChargeItemFind.getItem_name());
|
||||||
|
xkChargeDetailTemp.setCharge_type(xkChargeItemFind.getCharge_type());
|
||||||
|
xkChargeDetailTemp.setSid(1);
|
||||||
|
xkChargeDetailTemp.setBlood_no(xkBloodInfo.getBlood_no());
|
||||||
|
xkChargeDetailTemp.setProduct_no(xkBloodInfo.getProduct_no());
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> groupMap = new HashMap<>();
|
||||||
|
groupMap.put("xkChargeMain", currentMain);
|
||||||
|
groupMap.put("xkChargeDetail", xkChargeDetailTemp);
|
||||||
|
|
||||||
|
|
||||||
|
return new Result("0", "计算成功!", groupMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.czblood.busBloodbank.service.impl;
|
||||||
|
|
||||||
|
import com.czblood.busBloodbank.service.DiscardMainService;
|
||||||
|
import com.czblood.common.core.domain.Result;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class DiscardMainServiceImpl implements DiscardMainService {
|
||||||
|
@Override
|
||||||
|
public Result queryBloodInfo(String bloodNo, String productNo) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -49,4 +49,10 @@
|
|||||||
<if test="dept != null">and xk_backin_main.dept_id = #{dept}</if>
|
<if test="dept != null">and xk_backin_main.dept_id = #{dept}</if>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
<select id="queryMaxApplyNo" resultType="java.lang.String">
|
||||||
|
select max(apply_no) from xk_out_main,xk_out_detail
|
||||||
|
Where xk_out_main.bill_no = xk_out_detail.bill_no and
|
||||||
|
blood_no = #{bloodNo} and beinhos_id=#{beinhos_id} and
|
||||||
|
product_no = #{productNo}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -184,7 +184,8 @@ public class RuoYiConfig {
|
|||||||
* 获取上传路径
|
* 获取上传路径
|
||||||
*/
|
*/
|
||||||
public static String getUploadPath() {
|
public static String getUploadPath() {
|
||||||
return getProfile() + "/upload";
|
//上传文件的路径以存模块的路径为准,后面在这个基础上面添加文件夹
|
||||||
|
return getProfile() + "/templates";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getOpenInterface() {
|
public static String getOpenInterface() {
|
||||||
|
|||||||
@ -77,6 +77,26 @@ public class FileUploadUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保持原始文件名直接上传到 baseDir 下(不生成日期子目录、不添加随机ID,同名覆盖)
|
||||||
|
*
|
||||||
|
* @param baseDir 相对应用的基目录
|
||||||
|
* @param file 上传的文件
|
||||||
|
* @return 文件名称
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public static final String uploadKeepOriginalName(String baseDir, MultipartFile file) throws IOException {
|
||||||
|
try {
|
||||||
|
String originalFilename = Objects.requireNonNull(file.getOriginalFilename());
|
||||||
|
assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
|
||||||
|
String absPath = getAbsoluteFile(baseDir, originalFilename).getAbsolutePath();
|
||||||
|
file.transferTo(Paths.get(absPath));
|
||||||
|
return getPathFileName(baseDir, originalFilename);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new IOException(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传
|
* 文件上传
|
||||||
*
|
*
|
||||||
@ -196,4 +216,4 @@ public class FileUploadUtils {
|
|||||||
}
|
}
|
||||||
return extension;
|
return extension;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -78,16 +78,22 @@ public class CommonController {
|
|||||||
@PostMapping("/upload")
|
@PostMapping("/upload")
|
||||||
public AjaxResult uploadFile(MultipartFile file) throws Exception {
|
public AjaxResult uploadFile(MultipartFile file) throws Exception {
|
||||||
try {
|
try {
|
||||||
// 上传文件路径
|
|
||||||
String filePath = RuoYiConfig.getUploadPath();
|
String filePath = RuoYiConfig.getUploadPath();
|
||||||
// 上传并返回新文件名称
|
String originalFilename = file.getOriginalFilename();
|
||||||
String fileName = FileUploadUtils.upload(filePath, file);
|
String fileName;
|
||||||
|
|
||||||
|
if (originalFilename != null && originalFilename.toLowerCase().endsWith(".jrxml")) {
|
||||||
|
fileName = FileUploadUtils.uploadKeepOriginalName(filePath, file);
|
||||||
|
} else {
|
||||||
|
fileName = FileUploadUtils.upload(filePath, file);
|
||||||
|
}
|
||||||
|
|
||||||
String url = serverConfig.getUrl() + fileName;
|
String url = serverConfig.getUrl() + fileName;
|
||||||
AjaxResult ajax = AjaxResult.success();
|
AjaxResult ajax = AjaxResult.success();
|
||||||
ajax.put("url", url);
|
ajax.put("url", url);
|
||||||
ajax.put("fileName", fileName);
|
ajax.put("fileName", fileName);
|
||||||
ajax.put("newFileName", FileUtils.getName(fileName));
|
ajax.put("newFileName", FileUtils.getName(fileName));
|
||||||
ajax.put("originalFilename", file.getOriginalFilename());
|
ajax.put("originalFilename", originalFilename);
|
||||||
return ajax;
|
return ajax;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return AjaxResult.error(e.getMessage());
|
return AjaxResult.error(e.getMessage());
|
||||||
@ -149,4 +155,4 @@ public class CommonController {
|
|||||||
log.error("下载文件失败", e);
|
log.error("下载文件失败", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -535,8 +535,8 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'sys_
|
|||||||
GO
|
GO
|
||||||
|
|
||||||
|
|
||||||
if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_backin_main' AND COLUMN_NAME = 'charge_billno')
|
if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'xk_backin_detail' AND COLUMN_NAME = 'charge_billno')
|
||||||
BEGIN
|
BEGIN
|
||||||
alter table xk_backin_main add charge_billno varchar(20)
|
alter table xk_backin_detail add charge_billno varchar(20)
|
||||||
END
|
END
|
||||||
GO
|
GO
|
||||||
Loading…
x
Reference in New Issue
Block a user