1.修改受理后的检材受理编号接口对受理完成的委托拒绝修改
2.处理生成鉴定事项确认书和委托书当检材重量大于100保留1位小数,其他保留2位
master
陈江保 3 months ago
parent e4e7ee15c6
commit 83d39ac81b
  1. 9
      src/main/java/digital/laboratory/platform/entrustment/service/impl/AcceptServiceImpl.java
  2. 53
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java

@ -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,6 +669,13 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
private List<MaterialListForBookVo> getMaterialBookVoList(List<EntrustmentIdentificationMaterial> materialList) {
List<MaterialListForBookVo> materialListForBookVoList = new ArrayList<>();
materialList.forEach(item -> {
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() + "检材");
@ -680,7 +687,21 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
eg.setRtSampleQuantity(item.getRtSampleQuantity());
eg.setRemark(item.getRemark());
eg.setOrderNo(item.getOrderNo());
BigDecimal totalSampleMass;
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());
@ -691,15 +712,22 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
} else {
eg.setRetainedSampleDes(new BigDecimal(0) + item.getUnit());
}
eg.setTotalSampleDes(totalSampleMass.setScale(2, BigDecimal.ROUND_HALF_UP) + 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);
});
return materialListForBookVoList;
// 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);

Loading…
Cancel
Save