更新
1.修改受理后的检材受理编号接口对受理完成的委托拒绝修改 2.处理生成鉴定事项确认书和委托书当检材重量大于100保留1位小数,其他保留2位
This commit is contained in:
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import digital.laboratory.platform.common.core.exception.ValidateCodeException;
|
||||
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.service.AcceptService;
|
||||
import digital.laboratory.platform.entrustment.service.EntrustmentIdentificationMaterialService;
|
||||
import digital.laboratory.platform.entrustment.service.EntrustmentService;
|
||||
@@ -38,6 +39,13 @@ public class AcceptServiceImpl implements AcceptService {
|
||||
if (identificationMaterial == null) {
|
||||
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();
|
||||
if (StrUtil.isBlank(materialAcceptNo)) {
|
||||
@@ -76,7 +84,6 @@ public class AcceptServiceImpl implements AcceptService {
|
||||
}
|
||||
count++;
|
||||
entrustmentIdentificationMaterial.setAcceptNo(entrustAcceptNo
|
||||
+ "-"
|
||||
+ entrustmentIdentificationMaterialAcceptNo.substring(entrustmentIdentificationMaterialAcceptNo.lastIndexOf("-")));
|
||||
}
|
||||
return count == 0 ? true : entrustmentIdentificationMaterialService.updateBatchById(materialList);
|
||||
|
||||
@@ -669,38 +669,66 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
|
||||
private List<MaterialListForBookVo> getMaterialBookVoList(List<EntrustmentIdentificationMaterial> materialList) {
|
||||
List<MaterialListForBookVo> materialListForBookVoList = new ArrayList<>();
|
||||
materialList.forEach(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;
|
||||
//因为现在有的检材可以不用复称,例如送来的一支电子烟,所以我们用送检的数量与单位进行描述即可
|
||||
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) + "克");
|
||||
}
|
||||
MaterialListForBookVo eg = getMaterialListForBookVo(item);
|
||||
materialListForBookVoList.add(eg);
|
||||
});
|
||||
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", 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);
|
||||
// QR Code
|
||||
// BufferedImage bufferedImage = QRCodeUtils.genQRCode(ev.getEntrustmentNo(), 100, 100);
|
||||
|
||||
Reference in New Issue
Block a user