临床发血退血

This commit is contained in:
jiangs 2026-09-07 16:30:11 +08:00
parent a0aca66d29
commit 5fb1e91dc8
22 changed files with 289 additions and 80 deletions

View File

@ -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);
}

View File

@ -0,0 +1,4 @@
package com.czblood.bus.mapper;
public interface XkDiscardDetailMapper {
}

View File

@ -0,0 +1,4 @@
package com.czblood.bus.mapper;
public interface XkDiscardMainMapper {
}

View File

@ -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;
}

View File

@ -34,6 +34,4 @@ public class XkBackinMain {
@ApiModelProperty("审核日期")
private Date audit_date;
private String remark;
@ApiModelProperty("收费退血单号")
private String charge_billno;
}

View File

@ -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>

View File

@ -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}

View File

@ -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>

View File

@ -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>

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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>

View File

@ -184,7 +184,8 @@ public class RuoYiConfig {
* 获取上传路径
*/
public static String getUploadPath() {
return getProfile() + "/upload";
//上传文件的路径以存模块的路径为准,后面在这个基础上面添加文件夹
return getProfile() + "/templates";
}
public static String getOpenInterface() {

View File

@ -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);
}
}
/**
* 文件上传
*

View File

@ -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());

View File

@ -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