Explorar el Código

add
废液管理
修改异常标识

lifang hace 3 meses
padre
commit
656b3302b5

+ 3 - 0
nb-service-api/web-service-api/src/main/java/com/nb/web/api/bean/FormulaDrugDetailDomain.java

@@ -30,6 +30,9 @@ public class FormulaDrugDetailDomain {
     @ApiModelProperty("用法")
     private String use;
 
+    @ApiModelProperty("药品残余量")
+    private String remainDose;
+
     public String getName() {
         return StrUtil.isEmpty(name)? "" : name;
     }

+ 22 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusClinicService.java

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