更新
1.修改受理后的检材受理编号接口对受理完成的委托拒绝修改 2.处理生成鉴定事项确认书和委托书当检材重量大于100保留1位小数,其他保留2位
This commit is contained in:
+8
-1
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import digital.laboratory.platform.common.core.exception.ValidateCodeException;
|
import digital.laboratory.platform.common.core.exception.ValidateCodeException;
|
||||||
import digital.laboratory.platform.entrustment.entity.Entrustment;
|
import digital.laboratory.platform.entrustment.entity.Entrustment;
|
||||||
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
|
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
|
||||||
|
import digital.laboratory.platform.entrustment.enums.EntrustmentStatusConstants;
|
||||||
import digital.laboratory.platform.entrustment.service.AcceptService;
|
import digital.laboratory.platform.entrustment.service.AcceptService;
|
||||||
import digital.laboratory.platform.entrustment.service.EntrustmentIdentificationMaterialService;
|
import digital.laboratory.platform.entrustment.service.EntrustmentIdentificationMaterialService;
|
||||||
import digital.laboratory.platform.entrustment.service.EntrustmentService;
|
import digital.laboratory.platform.entrustment.service.EntrustmentService;
|
||||||
@@ -38,6 +39,13 @@ public class AcceptServiceImpl implements AcceptService {
|
|||||||
if (identificationMaterial == null) {
|
if (identificationMaterial == null) {
|
||||||
throw new ValidateCodeException("检材信息不存在!");
|
throw new ValidateCodeException("检材信息不存在!");
|
||||||
}
|
}
|
||||||
|
Entrustment entrustment = entrustmentService.getById(identificationMaterial.getEntrustmentId());
|
||||||
|
if (entrustment == null) {
|
||||||
|
throw new ValidateCodeException("检材对应的委托信息不存在!");
|
||||||
|
}
|
||||||
|
if (entrustment.getStatus().compareTo(EntrustmentStatusConstants.ENTRUSTMENT_STATUS_ACCEPTED.getStatus()) >= 0) {
|
||||||
|
throw new ValidateCodeException("该检材对应的委托信息已经受理完成,不能修改!");
|
||||||
|
}
|
||||||
// 获取要修改的检材受理编号
|
// 获取要修改的检材受理编号
|
||||||
String materialAcceptNo = material.getAcceptNo();
|
String materialAcceptNo = material.getAcceptNo();
|
||||||
if (StrUtil.isBlank(materialAcceptNo)) {
|
if (StrUtil.isBlank(materialAcceptNo)) {
|
||||||
@@ -76,7 +84,6 @@ public class AcceptServiceImpl implements AcceptService {
|
|||||||
}
|
}
|
||||||
count++;
|
count++;
|
||||||
entrustmentIdentificationMaterial.setAcceptNo(entrustAcceptNo
|
entrustmentIdentificationMaterial.setAcceptNo(entrustAcceptNo
|
||||||
+ "-"
|
|
||||||
+ entrustmentIdentificationMaterialAcceptNo.substring(entrustmentIdentificationMaterialAcceptNo.lastIndexOf("-")));
|
+ entrustmentIdentificationMaterialAcceptNo.substring(entrustmentIdentificationMaterialAcceptNo.lastIndexOf("-")));
|
||||||
}
|
}
|
||||||
return count == 0 ? true : entrustmentIdentificationMaterialService.updateBatchById(materialList);
|
return count == 0 ? true : entrustmentIdentificationMaterialService.updateBatchById(materialList);
|
||||||
|
|||||||
+66
-29
@@ -669,38 +669,66 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
|
|||||||
private List<MaterialListForBookVo> getMaterialBookVoList(List<EntrustmentIdentificationMaterial> materialList) {
|
private List<MaterialListForBookVo> getMaterialBookVoList(List<EntrustmentIdentificationMaterial> materialList) {
|
||||||
List<MaterialListForBookVo> materialListForBookVoList = new ArrayList<>();
|
List<MaterialListForBookVo> materialListForBookVoList = new ArrayList<>();
|
||||||
materialList.forEach(item -> {
|
materialList.forEach(item -> {
|
||||||
MaterialListForBookVo eg = new MaterialListForBookVo();
|
MaterialListForBookVo eg = getMaterialListForBookVo(item);
|
||||||
eg.setAcceptNo(item.getAcceptNo());
|
|
||||||
eg.setIndexNo(item.getShortNameDes() + "检材");
|
|
||||||
eg.setMaterialName(item.getName());
|
|
||||||
eg.setFormName(StringUtils.isNotBlank(item.getColor()) ? item.getColor() + item.getFormName() : "" + item.getFormName());
|
|
||||||
eg.setSpecies(item.getTypeName());
|
|
||||||
eg.setPackComplete(item.getPackComplete());
|
|
||||||
eg.setDrugsValue(item.getDrugsValue());
|
|
||||||
eg.setRtSampleQuantity(item.getRtSampleQuantity());
|
|
||||||
eg.setRemark(item.getRemark());
|
|
||||||
eg.setOrderNo(item.getOrderNo());
|
|
||||||
BigDecimal totalSampleMass;
|
|
||||||
//因为现在有的检材可以不用复称,例如送来的一支电子烟,所以我们用送检的数量与单位进行描述即可
|
|
||||||
if (item.getSample1RepeatWeigh() == null || item.getSample1RepeatWeigh().compareTo(BigDecimal.ZERO) == 0) {
|
|
||||||
eg.setAnalysisSampleDes(item.getSample1Quantity() + item.getUnit());
|
|
||||||
totalSampleMass = item.getSample1Quantity();
|
|
||||||
if (item.getSample2Present()) {
|
|
||||||
eg.setRetainedSampleDes(item.getSample2Quantity() + item.getUnit());
|
|
||||||
totalSampleMass.add(item.getSample2Quantity());
|
|
||||||
} else {
|
|
||||||
eg.setRetainedSampleDes(new BigDecimal(0) + item.getUnit());
|
|
||||||
}
|
|
||||||
eg.setTotalSampleDes(totalSampleMass.setScale(2, BigDecimal.ROUND_HALF_UP) + item.getUnit());
|
|
||||||
} else {
|
|
||||||
eg.setAnalysisSampleDes(item.getSample1RepeatWeigh() + item.getUnit());
|
|
||||||
eg.setRetainedSampleDes(item.getSample2RepeatWeigh() + item.getUnit());
|
|
||||||
eg.setTotalSampleDes((item.getSample1RepeatWeigh() == null ? new BigDecimal(0) : item.getSample1RepeatWeigh()).add(item.getSample2RepeatWeigh() == null ? new BigDecimal(0) : item.getSample2RepeatWeigh()).setScale(2, BigDecimal.ROUND_HALF_UP) + "克");
|
|
||||||
}
|
|
||||||
materialListForBookVoList.add(eg);
|
materialListForBookVoList.add(eg);
|
||||||
});
|
});
|
||||||
return materialListForBookVoList;
|
return materialListForBookVoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private MaterialListForBookVo getMaterialListForBookVo(EntrustmentIdentificationMaterial item) {
|
||||||
|
MaterialListForBookVo eg = new MaterialListForBookVo();
|
||||||
|
eg.setAcceptNo(item.getAcceptNo());
|
||||||
|
eg.setIndexNo(item.getShortNameDes() + "检材");
|
||||||
|
eg.setMaterialName(item.getName());
|
||||||
|
eg.setFormName(StringUtils.isNotBlank(item.getColor()) ? item.getColor() + item.getFormName() : "" + item.getFormName());
|
||||||
|
eg.setSpecies(item.getTypeName());
|
||||||
|
eg.setPackComplete(item.getPackComplete());
|
||||||
|
eg.setDrugsValue(item.getDrugsValue());
|
||||||
|
eg.setRtSampleQuantity(item.getRtSampleQuantity());
|
||||||
|
eg.setRemark(item.getRemark());
|
||||||
|
eg.setOrderNo(item.getOrderNo());
|
||||||
|
BigDecimal totalSampleMass = calculateTotalSampleMass(item, eg);
|
||||||
|
|
||||||
|
// 根据 totalSampleMass 大小来决定保留的小数位数
|
||||||
|
if (totalSampleMass.compareTo(new BigDecimal(100)) >= 0) {
|
||||||
|
// 如果 totalSampleMass 大于 100,保留 1 位小数
|
||||||
|
eg.setTotalSampleDes(totalSampleMass.setScale(1, BigDecimal.ROUND_HALF_UP) + item.getUnit());
|
||||||
|
} else {
|
||||||
|
// 否则保留 2 位小数
|
||||||
|
eg.setTotalSampleDes(totalSampleMass.setScale(2, BigDecimal.ROUND_HALF_UP) + item.getUnit());
|
||||||
|
}
|
||||||
|
return eg;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BigDecimal calculateTotalSampleMass(EntrustmentIdentificationMaterial item, MaterialListForBookVo eg) {
|
||||||
|
BigDecimal totalSampleMass = BigDecimal.ZERO;
|
||||||
|
//因为现在有的检材可以不用复称,例如送来的一支电子烟,所以我们用送检的数量与单位进行描述即可
|
||||||
|
if (item.getSample1RepeatWeigh() == null || item.getSample1RepeatWeigh().compareTo(BigDecimal.ZERO) == 0) {
|
||||||
|
eg.setAnalysisSampleDes(item.getSample1Quantity() + item.getUnit());
|
||||||
|
totalSampleMass = item.getSample1Quantity();
|
||||||
|
if (item.getSample2Present()) {
|
||||||
|
eg.setRetainedSampleDes(item.getSample2Quantity() + item.getUnit());
|
||||||
|
totalSampleMass.add(item.getSample2Quantity());
|
||||||
|
} else {
|
||||||
|
eg.setRetainedSampleDes(new BigDecimal(0) + item.getUnit());
|
||||||
|
}
|
||||||
|
// eg.setTotalSampleDes(totalSampleMass.setScale(2, BigDecimal.ROUND_HALF_UP) + item.getUnit());
|
||||||
|
} else {
|
||||||
|
eg.setAnalysisSampleDes(item.getSample1RepeatWeigh() + item.getUnit());
|
||||||
|
eg.setRetainedSampleDes(item.getSample2RepeatWeigh() + item.getUnit());
|
||||||
|
// eg.setTotalSampleDes(
|
||||||
|
// (item.getSample1RepeatWeigh() == null ? new BigDecimal(0) : item.getSample1RepeatWeigh())
|
||||||
|
// .add(
|
||||||
|
// item.getSample2RepeatWeigh() == null ? new BigDecimal(0) : item.getSample2RepeatWeigh()
|
||||||
|
// )
|
||||||
|
// .setScale(2, BigDecimal.ROUND_HALF_UP)
|
||||||
|
// + "克"
|
||||||
|
// );
|
||||||
|
totalSampleMass = (item.getSample1RepeatWeigh() == null ? BigDecimal.ZERO : item.getSample1RepeatWeigh())
|
||||||
|
.add(item.getSample2RepeatWeigh() == null ? BigDecimal.ZERO : item.getSample2RepeatWeigh());
|
||||||
|
}
|
||||||
|
return totalSampleMass;
|
||||||
|
}
|
||||||
//构造鉴定委托书文书中的检材列表
|
//构造鉴定委托书文书中的检材列表
|
||||||
|
|
||||||
//检材处置方式
|
//检材处置方式
|
||||||
@@ -2153,7 +2181,16 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
|
|||||||
//设置鉴定要求
|
//设置鉴定要求
|
||||||
//dm.put("identifyReq",entrustmentService.buildIdentfyReq(materialList));
|
//dm.put("identifyReq",entrustmentService.buildIdentfyReq(materialList));
|
||||||
dm.put("identifyReq", ev.getEntrustRequirement());
|
dm.put("identifyReq", ev.getEntrustRequirement());
|
||||||
//设置检材列表
|
//设置检材列表, 对检材的重量进行处理 小于100的保留两位小数,100以上保留一位小数
|
||||||
|
BigDecimal compareNumber = new BigDecimal(100);
|
||||||
|
for (EntrustmentIdentificationMaterial entrustmentIdentificationMaterial : materialList) {
|
||||||
|
BigDecimal quantity = entrustmentIdentificationMaterial.getQuantity();
|
||||||
|
if (quantity.compareTo(compareNumber) >= 0) {
|
||||||
|
entrustmentIdentificationMaterial.setQuantity(quantity.setScale(1, BigDecimal.ROUND_HALF_UP));
|
||||||
|
} else {
|
||||||
|
entrustmentIdentificationMaterial.setQuantity(quantity.setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||||
|
}
|
||||||
|
}
|
||||||
dm.put("materialList", materialList);
|
dm.put("materialList", materialList);
|
||||||
// QR Code
|
// QR Code
|
||||||
// BufferedImage bufferedImage = QRCodeUtils.genQRCode(ev.getEntrustmentNo(), 100, 100);
|
// BufferedImage bufferedImage = QRCodeUtils.genQRCode(ev.getEntrustmentNo(), 100, 100);
|
||||||
|
|||||||
Reference in New Issue
Block a user