临床发血退血
This commit is contained in:
parent
a0aca66d29
commit
5fb1e91dc8
@ -1,6 +1,7 @@
|
||||
package com.czblood.bus.mapper;
|
||||
|
||||
import com.czblood.bus.pojo.XkBackinDetail;
|
||||
import io.lettuce.core.dynamic.annotation.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -8,4 +9,5 @@ public interface XkBackinDetailMapper {
|
||||
List<XkBackinDetail> queryListByBillNo(String billNo);
|
||||
void insert(XkBackinDetail xkBackinDetail);
|
||||
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;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@ -18,4 +19,6 @@ public class XkBackinDetail {
|
||||
private BigDecimal price;
|
||||
private String reason;
|
||||
private String product_no;
|
||||
@ApiModelProperty("收费退血单号")
|
||||
private String charge_billno;
|
||||
}
|
||||
|
||||
@ -34,6 +34,4 @@ public class XkBackinMain {
|
||||
@ApiModelProperty("审核日期")
|
||||
private Date audit_date;
|
||||
private String remark;
|
||||
@ApiModelProperty("收费退血单号")
|
||||
private String charge_billno;
|
||||
}
|
||||
|
||||
@ -4,15 +4,18 @@
|
||||
<mapper namespace="com.czblood.bus.mapper.XkBackinDetailMapper">
|
||||
<insert id="insert">
|
||||
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(
|
||||
#{bill_no},#{sid},#{blood_no},#{price},#{reason},#{product_no})
|
||||
#{bill_no},#{sid},#{blood_no},#{price},#{reason},#{product_no},#{charge_billno})
|
||||
</insert>
|
||||
<delete id="deleteByBillNo">
|
||||
delete from xk_backin_detail where bill_no = #{billNo}
|
||||
</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 * from xk_backin_detail where bill_no = #{bill_no}
|
||||
select * from xk_backin_detail where bill_no = #{billNo}
|
||||
</select>
|
||||
</mapper>
|
||||
@ -14,7 +14,6 @@
|
||||
<if test="audit_person != null">audit_person,</if>
|
||||
<if test="audit_date != null">audit_date,</if>
|
||||
<if test="remark != null">remark,</if>
|
||||
<if test="charge_billno != null">charge_billno,</if>
|
||||
bill_no
|
||||
)values(
|
||||
<if test="org_type != null">#{org_type},</if>
|
||||
@ -27,8 +26,7 @@
|
||||
<if test="audit_person != null">#{audit_person},</if>
|
||||
<if test="audit_date != null">#{audit_date},</if>
|
||||
<if test="remark != null">#{remark},</if>
|
||||
<if test="charge_billno != null">#{charge_billno},</if>
|
||||
#{billNo})
|
||||
#{bill_no})
|
||||
</insert>
|
||||
<update id="update">
|
||||
update xk_backin_main set
|
||||
@ -42,9 +40,8 @@
|
||||
<if test="audit_person != null">audit_person = #{audit_person},</if>
|
||||
<if test="audit_date != null">audit_date = #{audit_date},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
<if test="charge_billno != null">charge_billno = #{charge_billno},</if>
|
||||
bill_no = #{bill_no}
|
||||
where bill_no = #{billNo}
|
||||
where bill_no = #{bill_no}
|
||||
</update>
|
||||
<delete id="deleteByBillNo">
|
||||
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);
|
||||
List<Map<String, Object>> queryPatientInfo(@Param("bloodNo") String bloodNo, @Param("productNo") String productNo);
|
||||
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 java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BackinDataDTO {
|
||||
private XkBackinMain xkBackinMain;
|
||||
private List<XkBackinDetail> xkBackinDetailList;
|
||||
private List<BackinBloodDTO> xkBackinDetailList;
|
||||
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.ReportUtil;
|
||||
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.BackinDataDTO;
|
||||
import com.czblood.busBloodbank.pojo.VO.BackinQueryVO;
|
||||
@ -21,10 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class BackinServiceImpl implements BackinService {
|
||||
@ -92,84 +90,57 @@ public class BackinServiceImpl implements BackinService {
|
||||
@Override
|
||||
public Result saveData(BackinDataDTO backinDataDTO) {
|
||||
XkBackinMain xkBackinMain = backinDataDTO.getXkBackinMain();
|
||||
List<XkBackinDetail> xkBackinDetailList = backinDataDTO.getXkBackinDetailList();
|
||||
List<BackinBloodDTO> xkBackinDetailList = backinDataDTO.getXkBackinDetailList();
|
||||
|
||||
String billNo = BloodBankUtil.isBank(xkBackinMain.getBill_no());
|
||||
String chargeBillNo = xkBackinMain.getCharge_billno();
|
||||
String auditPerson = BloodBankUtil.isBank(xkBackinMain.getAudit_person());
|
||||
if(!auditPerson.equals("")) return new Result("-1","该单据已经审核,不能修改!");
|
||||
String newBillNo = "";
|
||||
|
||||
List<XkChargeMain> xkChargeMainList = new ArrayList<>();
|
||||
List<XkChargeDetail> xkChargeDetailList = new ArrayList<>();
|
||||
String newChargeBillNo = "";
|
||||
XkChargeMain xkChargeMainTemp = null;
|
||||
|
||||
if(billNo.equals("")){
|
||||
//新增
|
||||
newBillNo = bloodBankUtil.produceBillNo("LCTXD");
|
||||
//保存费用表
|
||||
newChargeBillNo = bloodBankUtil.produceBillNo("YXSF");
|
||||
xkBackinMain.setCharge_billno(newChargeBillNo);
|
||||
xkBackinMain.setBill_no(newBillNo);
|
||||
xkBackinMain.setOrg_type("A");
|
||||
xkBackinMain.setBack_org(backinDataDTO.getUserId());
|
||||
xkBackinMain.setInput_date(bloodBankUtil.getCurrentTimeDate());
|
||||
xkBackinMain.setInput_person(backinDataDTO.getUserId());
|
||||
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());
|
||||
if(!xkInstorageDetailList.isEmpty()){
|
||||
totalMoney = totalMoney.add(xkInstorageDetailList.get(0).getPrice());
|
||||
xkBackinDetail.setPrice(xkInstorageDetailList.get(0).getPrice());
|
||||
}
|
||||
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); //总金额
|
||||
|
||||
xkChargeMainTemp = new XkChargeMain();
|
||||
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");
|
||||
SpringUtils.getBean(BackinServiceImpl.class).saveChargeData(xkBackinMain,xkBackinDetailList,xkChargeMainList,xkChargeDetailList);
|
||||
|
||||
}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);
|
||||
}
|
||||
|
||||
@ -251,7 +222,17 @@ public class BackinServiceImpl implements BackinService {
|
||||
List<XkBackinDetail> xkBackinDetailList = xkBackinDetailMapper.queryListByBillNo(billNo);
|
||||
BackinDataDTO backinDataDTO = new BackinDataDTO();
|
||||
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);
|
||||
}
|
||||
|
||||
@ -266,13 +247,15 @@ public class BackinServiceImpl implements BackinService {
|
||||
}
|
||||
|
||||
@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);
|
||||
for (XkBackinDetail xkBackinDetail : xkBackinDetailList) {
|
||||
for (BackinBloodDTO backinBloodDTO : xkBackinDetailList) {
|
||||
XkBackinDetail xkBackinDetail = backinBloodDTO.getXkBackinDetail();
|
||||
xkBackinDetailMapper.insert(xkBackinDetail);
|
||||
}
|
||||
xkChargeMainMapper.insert(xkChargeMain);
|
||||
xkChargeDetailMapper.deleteByBillNo(xkChargeMain.getBill_no());
|
||||
for (XkChargeMain xkChargeMain : xkChargeMainList) {
|
||||
xkChargeMainMapper.insert(xkChargeMain);
|
||||
}
|
||||
for (XkChargeDetail xkChargeDetail : xkChargeDetailList) {
|
||||
xkChargeDetailMapper.insert(xkChargeDetail);
|
||||
}
|
||||
@ -291,4 +274,106 @@ public class BackinServiceImpl implements BackinService {
|
||||
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>
|
||||
|
||||
</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>
|
||||
@ -184,7 +184,8 @@ public class RuoYiConfig {
|
||||
* 获取上传路径
|
||||
*/
|
||||
public static String getUploadPath() {
|
||||
return getProfile() + "/upload";
|
||||
//上传文件的路径以存模块的路径为准,后面在这个基础上面添加文件夹
|
||||
return getProfile() + "/templates";
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
*
|
||||
|
||||
@ -78,16 +78,22 @@ public class CommonController {
|
||||
@PostMapping("/upload")
|
||||
public AjaxResult uploadFile(MultipartFile file) throws Exception {
|
||||
try {
|
||||
// 上传文件路径
|
||||
String filePath = RuoYiConfig.getUploadPath();
|
||||
// 上传并返回新文件名称
|
||||
String fileName = FileUploadUtils.upload(filePath, file);
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
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;
|
||||
AjaxResult ajax = AjaxResult.success();
|
||||
ajax.put("url", url);
|
||||
ajax.put("fileName", fileName);
|
||||
ajax.put("newFileName", FileUtils.getName(fileName));
|
||||
ajax.put("originalFilename", file.getOriginalFilename());
|
||||
ajax.put("originalFilename", originalFilename);
|
||||
return ajax;
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error(e.getMessage());
|
||||
|
||||
@ -535,8 +535,8 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'sys_
|
||||
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
|
||||
alter table xk_backin_main add charge_billno varchar(20)
|
||||
alter table xk_backin_detail add charge_billno varchar(20)
|
||||
END
|
||||
GO
|
||||
Loading…
x
Reference in New Issue
Block a user