|
|
@@ -2,6 +2,7 @@ package com.nb.web.service.bus.service;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.nb.web.api.bean.FormulaDrugDetailDomain;
|
|
|
import com.nb.web.api.entity.BusDeviceEntity;
|
|
|
import com.nb.web.api.entity.BusEvaluationEntity;
|
|
|
import com.nb.web.api.enums.ClinicManageEnum;
|
|
|
@@ -41,6 +43,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -414,6 +418,24 @@ public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClini
|
|
|
if(ObjectUtil.isNotNull(device)){
|
|
|
record.setDeviceAlias(device.getAlias());
|
|
|
}
|
|
|
+ //格式化配方信息
|
|
|
+ if(ObjectUtil.isNotEmpty(record.getFormula())){
|
|
|
+ List<FormulaDrugDetailDomain> detail = record.getFormula().getDetail();
|
|
|
+ if(CollectionUtil.isNotEmpty(detail)){
|
|
|
+ for (FormulaDrugDetailDomain drug : detail) {
|
|
|
+ drug.setDose(drug.getDose()+drug.getUnit());
|
|
|
+ //根据药液剩余量计算药品残余量
|
|
|
+ if(StrUtil.isEmpty(drug.getDose())|| !NumberUtil.isNumber(drug.getDose()) ||ObjectUtil.equals(record.getRemainDose(), BigDecimal.ZERO)){
|
|
|
+ drug.setRemainDose("0"+drug.getUnit());
|
|
|
+ }else {
|
|
|
+ BigDecimal divide = record.getRemainDose().divide(record.getTotalDose(), 2, RoundingMode.CEILING);
|
|
|
+ BigDecimal totalDose = BigDecimal.valueOf(Double.valueOf(drug.getDose()));
|
|
|
+ BigDecimal multiply = totalDose.multiply(divide);
|
|
|
+ drug.setRemainDose(multiply+drug.getUnit());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return result;
|