20241223 更新
1.检材重量100以下保留两位 100以上保留一位,添加自定义序列化器去实现
This commit is contained in:
+32
-12
@@ -22,18 +22,23 @@ import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
|
|||||||
import digital.laboratory.platform.common.oss.service.OssFile;
|
import digital.laboratory.platform.common.oss.service.OssFile;
|
||||||
import digital.laboratory.platform.entrustment.dto.PrintDTO;
|
import digital.laboratory.platform.entrustment.dto.PrintDTO;
|
||||||
import digital.laboratory.platform.entrustment.dto.SampleBoxDTO;
|
import digital.laboratory.platform.entrustment.dto.SampleBoxDTO;
|
||||||
import digital.laboratory.platform.entrustment.entity.*;
|
import digital.laboratory.platform.entrustment.entity.CaseEvent;
|
||||||
|
import digital.laboratory.platform.entrustment.entity.CaseEvidence;
|
||||||
|
import digital.laboratory.platform.entrustment.entity.Entrustment;
|
||||||
|
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
|
||||||
import digital.laboratory.platform.entrustment.enums.EntrustmentStatusConstants;
|
import digital.laboratory.platform.entrustment.enums.EntrustmentStatusConstants;
|
||||||
import digital.laboratory.platform.entrustment.handler.AppStartupRunner;
|
import digital.laboratory.platform.entrustment.handler.AppStartupRunner;
|
||||||
import digital.laboratory.platform.entrustment.service.*;
|
import digital.laboratory.platform.entrustment.service.CaseEventService;
|
||||||
import digital.laboratory.platform.sys.feign.RemoteEquipmentService;
|
import digital.laboratory.platform.entrustment.service.CaseEvidenceService;
|
||||||
import io.seata.spring.annotation.GlobalTransactional;
|
import digital.laboratory.platform.entrustment.service.EntrustmentIdentificationMaterialService;
|
||||||
|
import digital.laboratory.platform.entrustment.service.EntrustmentService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@@ -44,9 +49,13 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,16 +72,16 @@ import java.util.*;
|
|||||||
public class EntrustmentIdentificationMaterialController {
|
public class EntrustmentIdentificationMaterialController {
|
||||||
|
|
||||||
private final CaseEventService caseEventService;
|
private final CaseEventService caseEventService;
|
||||||
|
|
||||||
private final EntrustmentService entrustmentService;
|
private final EntrustmentService entrustmentService;
|
||||||
|
|
||||||
private final EntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService;
|
private final EntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService;
|
||||||
private final SampleService sampleService;
|
|
||||||
private final CaseEvidenceService caseEvidenceService;
|
private final CaseEvidenceService caseEvidenceService;
|
||||||
|
|
||||||
private final OssFile ossFile;
|
private final OssFile ossFile;
|
||||||
private final SampleBoxService sampleBoxService;
|
|
||||||
private final TakerService takerService;
|
|
||||||
|
|
||||||
private final RemoteTemplate2htmlService remoteTemplate2htmlService;
|
private final RemoteTemplate2htmlService remoteTemplate2htmlService;
|
||||||
private final RemoteEquipmentService remoteEquipmentService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过id查询检材信息
|
* 通过id查询检材信息
|
||||||
@@ -157,6 +166,17 @@ public class EntrustmentIdentificationMaterialController {
|
|||||||
.in(entrustmentIds != null && entrustmentIds.size() > 0, "entrustment_id", entrustmentIds)
|
.in(entrustmentIds != null && entrustmentIds.size() > 0, "entrustment_id", entrustmentIds)
|
||||||
.orderByAsc("order_no")
|
.orderByAsc("order_no")
|
||||||
);
|
);
|
||||||
|
// 处理返回给前端的重量值
|
||||||
|
list.forEach(entity -> {
|
||||||
|
BigDecimal quantity = entity.getQuantity();
|
||||||
|
if (quantity.compareTo(new BigDecimal(100)) >= 0) {
|
||||||
|
// 如果 totalSampleMass 大于 100,保留 1 位小数
|
||||||
|
entity.setQuantity(quantity.setScale(1, BigDecimal.ROUND_HALF_UP));
|
||||||
|
} else {
|
||||||
|
// 否则保留 2 位小数
|
||||||
|
entity.setQuantity(quantity.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
}
|
||||||
|
});
|
||||||
return R.ok(list);
|
return R.ok(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,7 +230,7 @@ public class EntrustmentIdentificationMaterialController {
|
|||||||
* sample2Quantity
|
* sample2Quantity
|
||||||
* sample2BoxId
|
* sample2BoxId
|
||||||
*
|
*
|
||||||
* @param List<EntrustmentIdentificationMaterial>
|
* @param materialList
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -506,7 +526,7 @@ public class EntrustmentIdentificationMaterialController {
|
|||||||
|
|
||||||
//去掉头信息
|
//去掉头信息
|
||||||
String imgBase64 = image.substring(image.indexOf(",") + 1);
|
String imgBase64 = image.substring(image.indexOf(",") + 1);
|
||||||
byte[] decoded = org.apache.commons.codec.binary.Base64.decodeBase64(imgBase64);
|
byte[] decoded = Base64.decodeBase64(imgBase64);
|
||||||
InputStream is = new ByteArrayInputStream(decoded);
|
InputStream is = new ByteArrayInputStream(decoded);
|
||||||
|
|
||||||
String path = OSSDirectoryConstants.ENTRUSTMENT_DIRECTORY + "/" + im.getEntrustmentId() + "/" + identificationMaterialId;
|
String path = OSSDirectoryConstants.ENTRUSTMENT_DIRECTORY + "/" + im.getEntrustmentId() + "/" + identificationMaterialId;
|
||||||
@@ -709,7 +729,7 @@ public class EntrustmentIdentificationMaterialController {
|
|||||||
|
|
||||||
//去掉头信息
|
//去掉头信息
|
||||||
String imgBase64 = image.substring(image.indexOf(",") + 1);
|
String imgBase64 = image.substring(image.indexOf(",") + 1);
|
||||||
byte[] decoded = org.apache.commons.codec.binary.Base64.decodeBase64(imgBase64);
|
byte[] decoded = Base64.decodeBase64(imgBase64);
|
||||||
InputStream is = new ByteArrayInputStream(decoded);
|
InputStream is = new ByteArrayInputStream(decoded);
|
||||||
|
|
||||||
String path = OSSDirectoryConstants.ACCEPT_DIRECTORY + "/" + im.getEntrustmentId() + "/" + identificationMaterialId;
|
String path = OSSDirectoryConstants.ACCEPT_DIRECTORY + "/" + im.getEntrustmentId() + "/" + identificationMaterialId;
|
||||||
|
|||||||
+3
@@ -3,6 +3,8 @@ package digital.laboratory.platform.entrustment.entity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||||
//import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
//import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
import digital.laboratory.platform.entrustment.json.DynamicBigDecimalSerializer;
|
||||||
import digital.laboratory.platform.sys.entity.DrugLite;
|
import digital.laboratory.platform.sys.entity.DrugLite;
|
||||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||||
import digital.laboratory.platform.sys.entity.entrustment.IMAdditionalProperty;
|
import digital.laboratory.platform.sys.entity.entrustment.IMAdditionalProperty;
|
||||||
@@ -128,6 +130,7 @@ public class EntrustmentIdentificationMaterial extends BaseEntity {
|
|||||||
* 检材数量, 例如 3.8 克 或 4.5毫升
|
* 检材数量, 例如 3.8 克 或 4.5毫升
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "检材数量, 例如 3.8 克 或 4.5毫升")
|
@ApiModelProperty(value = "检材数量, 例如 3.8 克 或 4.5毫升")
|
||||||
|
@JsonSerialize(using = DynamicBigDecimalSerializer.class)
|
||||||
private BigDecimal quantity;
|
private BigDecimal quantity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
package digital.laboratory.platform.entrustment.json;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import com.fasterxml.jackson.databind.JsonSerializer;
|
||||||
|
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* BigDecimal 自定义序列化器
|
||||||
|
*/
|
||||||
|
public class DynamicBigDecimalSerializer extends JsonSerializer<BigDecimal> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
||||||
|
// 判断是否大于100,动态控制小数位数
|
||||||
|
int scale = value.compareTo(new BigDecimal("100")) > 0 ? 1 : 2;
|
||||||
|
value = value.setScale(scale, BigDecimal.ROUND_HALF_UP);
|
||||||
|
|
||||||
|
// 使用 DecimalFormat 保留小数位并输出
|
||||||
|
DecimalFormat df = new DecimalFormat();
|
||||||
|
df.setMinimumFractionDigits(scale); // 最小小数位数
|
||||||
|
df.setMaximumFractionDigits(scale); // 最大小数位数
|
||||||
|
df.setGroupingUsed(false); // 不使用千分位
|
||||||
|
|
||||||
|
gen.writeString(df.format(value)); // 输出为字符串
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -29,10 +29,10 @@ import digital.laboratory.platform.entrustment.enums.EntrustmentStatusConstants;
|
|||||||
import digital.laboratory.platform.entrustment.handler.AppStartupRunner;
|
import digital.laboratory.platform.entrustment.handler.AppStartupRunner;
|
||||||
import digital.laboratory.platform.entrustment.mapper.EntrustmentIdentificationMaterialMapper;
|
import digital.laboratory.platform.entrustment.mapper.EntrustmentIdentificationMaterialMapper;
|
||||||
import digital.laboratory.platform.entrustment.mapper.EntrustmentMapper;
|
import digital.laboratory.platform.entrustment.mapper.EntrustmentMapper;
|
||||||
import digital.laboratory.platform.othersys.utils.ConvertUtils;
|
|
||||||
import digital.laboratory.platform.entrustment.service.*;
|
import digital.laboratory.platform.entrustment.service.*;
|
||||||
import digital.laboratory.platform.entrustment.vo.EntrustmentIdentificationMaterialVO;
|
import digital.laboratory.platform.entrustment.vo.EntrustmentIdentificationMaterialVO;
|
||||||
import digital.laboratory.platform.entrustment.vo.SampleBoxVO;
|
import digital.laboratory.platform.entrustment.vo.SampleBoxVO;
|
||||||
|
import digital.laboratory.platform.othersys.utils.ConvertUtils;
|
||||||
import digital.laboratory.platform.sys.entity.BalanceUseRecord;
|
import digital.laboratory.platform.sys.entity.BalanceUseRecord;
|
||||||
import digital.laboratory.platform.sys.entity.DrugLite;
|
import digital.laboratory.platform.sys.entity.DrugLite;
|
||||||
import digital.laboratory.platform.sys.entity.SysUser;
|
import digital.laboratory.platform.sys.entity.SysUser;
|
||||||
|
|||||||
-3
@@ -1,11 +1,8 @@
|
|||||||
package digital.laboratory.platform.entrustment.vo;
|
package digital.laboratory.platform.entrustment.vo;
|
||||||
|
|
||||||
import digital.laboratory.platform.entrustment.entity.Entrustment;
|
|
||||||
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
|
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class EntrustmentIdentificationMaterialVO extends EntrustmentIdentificationMaterial {
|
public class EntrustmentIdentificationMaterialVO extends EntrustmentIdentificationMaterial {
|
||||||
String formName; // 检材性状
|
String formName; // 检材性状
|
||||||
|
|||||||
Reference in New Issue
Block a user