支持批量受理
This commit is contained in:
@@ -297,10 +297,10 @@ public class EntrustmentIdentificationMaterialController {
|
|||||||
@SysLog("受理人对检材进行受理")
|
@SysLog("受理人对检材进行受理")
|
||||||
@PutMapping("/accept_apply")
|
@PutMapping("/accept_apply")
|
||||||
@PreAuthorize("@pms.hasPermission('EntrustmentAccept')")
|
@PreAuthorize("@pms.hasPermission('EntrustmentAccept')")
|
||||||
public R<EntrustmentIdentificationMaterial> bizAccept_Apply(@RequestBody EntrustmentIdentificationMaterial identificationMaterial, Integer opCode, HttpServletRequest theHttpServletRequest) {
|
public R bizAccept_Apply(@RequestBody List<EntrustmentIdentificationMaterial> identificationMaterialList, Integer opCode, HttpServletRequest theHttpServletRequest) {
|
||||||
Principal principal = theHttpServletRequest.getUserPrincipal();
|
Principal principal = theHttpServletRequest.getUserPrincipal();
|
||||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||||
return R.ok(entrustmentIdentificationMaterialService.bizAccept_Apply(identificationMaterial, opCode, dlpUser), "检材受理完成");
|
return R.ok(entrustmentIdentificationMaterialService.bizAccept_Apply_Batch(identificationMaterialList, opCode, dlpUser), "检材受理完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public interface EntrustmentIdentificationMaterialService extends IService<Entru
|
|||||||
|
|
||||||
List<EntrustmentIdentificationMaterial> bizAccept_Save(List<EntrustmentIdentificationMaterial> materialList, DLPUser dlpUser);
|
List<EntrustmentIdentificationMaterial> bizAccept_Save(List<EntrustmentIdentificationMaterial> materialList, DLPUser dlpUser);
|
||||||
|
|
||||||
EntrustmentIdentificationMaterial bizAccept_Apply(EntrustmentIdentificationMaterial identificationMaterial, Integer opCode, DLPUser dlpUser);
|
List<EntrustmentIdentificationMaterial> bizAccept_Apply_Batch(List<EntrustmentIdentificationMaterial> identificationMaterialList, Integer opCode, DLPUser dlpUser);
|
||||||
|
|
||||||
EntrustmentIdentificationMaterial createIdentificationMaterialByEvidenceId(EntrustmentIdentificationMaterial identificationMaterial, DLPUser dlpUser);
|
EntrustmentIdentificationMaterial createIdentificationMaterialByEvidenceId(EntrustmentIdentificationMaterial identificationMaterial, DLPUser dlpUser);
|
||||||
|
|
||||||
|
|||||||
@@ -694,11 +694,17 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EntrustmentIdentificationMaterial bizAccept_Apply(EntrustmentIdentificationMaterial identificationMaterial, Integer opCode, DLPUser dlpUser) {
|
public List<EntrustmentIdentificationMaterial> bizAccept_Apply_Batch(List<EntrustmentIdentificationMaterial> identificationMaterials, Integer opCode, DLPUser dlpUser) {
|
||||||
if (opCode == null) {
|
if (opCode == null) {
|
||||||
throw new RuntimeException(String.format("受理结果必须提供 opCode"));
|
throw new RuntimeException("受理结果必须提供 opCode");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 用于存储处理后的检材信息
|
||||||
|
List<EntrustmentIdentificationMaterial> processedMaterials = new ArrayList<>();
|
||||||
|
|
||||||
|
// 开始事务
|
||||||
|
try {
|
||||||
|
for (EntrustmentIdentificationMaterial identificationMaterial : identificationMaterials) {
|
||||||
// 检查委托原来的状态
|
// 检查委托原来的状态
|
||||||
EntrustmentIdentificationMaterial im = this.getById(identificationMaterial.getId());
|
EntrustmentIdentificationMaterial im = this.getById(identificationMaterial.getId());
|
||||||
if (im == null) {
|
if (im == null) {
|
||||||
@@ -721,13 +727,13 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
|||||||
// 受理通过, 修改属性
|
// 受理通过, 修改属性
|
||||||
String entrustAcceptNo = com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(entrustment.getAcceptNo()) ? entrustment.getAcceptNo() : "";
|
String entrustAcceptNo = com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(entrustment.getAcceptNo()) ? entrustment.getAcceptNo() : "";
|
||||||
String acceptNo = "";
|
String acceptNo = "";
|
||||||
|
|
||||||
List<EntrustmentIdentificationMaterial> materialList = this.list(Wrappers.<EntrustmentIdentificationMaterial>lambdaQuery()
|
List<EntrustmentIdentificationMaterial> materialList = this.list(Wrappers.<EntrustmentIdentificationMaterial>lambdaQuery()
|
||||||
.eq(EntrustmentIdentificationMaterial::getEntrustmentId, im.getEntrustmentId())
|
.eq(EntrustmentIdentificationMaterial::getEntrustmentId, im.getEntrustmentId())
|
||||||
.isNotNull(EntrustmentIdentificationMaterial::getAcceptNo));
|
.isNotNull(EntrustmentIdentificationMaterial::getAcceptNo));
|
||||||
//2024-3-26 修改:我们已经不需要在受理检材时生成受理编号,我们这时会生成受理顺序号,检材编号到最后受理完成的时候再生成!
|
|
||||||
if (entrustment.getDataSources() != 1) {
|
if (entrustment.getDataSources() != 1) {
|
||||||
if (materialList.size() > 0) {
|
if (materialList.size() > 0) {
|
||||||
//说明该委托下,已经有受理的检材了,我们需要取出最大的那个编号生成新的编号
|
|
||||||
entrustAcceptNo = materialList.get(0).getAcceptNo();
|
entrustAcceptNo = materialList.get(0).getAcceptNo();
|
||||||
entrustAcceptNo = entrustAcceptNo.substring(0, entrustAcceptNo.lastIndexOf("-"));
|
entrustAcceptNo = entrustAcceptNo.substring(0, entrustAcceptNo.lastIndexOf("-"));
|
||||||
log.info("该检材对应的委托下,已经有检材被受理,我们根据已受理的检材读取出的受理编号是{}", entrustAcceptNo);
|
log.info("该检材对应的委托下,已经有检材被受理,我们根据已受理的检材读取出的受理编号是{}", entrustAcceptNo);
|
||||||
@@ -745,7 +751,7 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//设置受理编号
|
// 设置受理编号
|
||||||
im.setAcceptNo(acceptNo);
|
im.setAcceptNo(acceptNo);
|
||||||
im.setProvidedSample1No(identificationMaterial.getProvidedSample1No());
|
im.setProvidedSample1No(identificationMaterial.getProvidedSample1No());
|
||||||
im.setProvidedSample1FundQuantity(identificationMaterial.getProvidedSample1FundQuantity());
|
im.setProvidedSample1FundQuantity(identificationMaterial.getProvidedSample1FundQuantity());
|
||||||
@@ -770,15 +776,6 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
|||||||
im.setSample2Quantity(identificationMaterial.getSample2Quantity());
|
im.setSample2Quantity(identificationMaterial.getSample2Quantity());
|
||||||
im.setSample2BoxId(identificationMaterial.getSample2BoxId());
|
im.setSample2BoxId(identificationMaterial.getSample2BoxId());
|
||||||
|
|
||||||
SampleBox sb1 = null;
|
|
||||||
SampleBox sb2 = null;
|
|
||||||
// 如果之前没有生成过样本编号, 现在填写样本重量了, 那么就生成样本编号
|
|
||||||
//if ((identificationMaterial.getSample1Present() != null) && (identificationMaterial.getSample1Present())) {
|
|
||||||
//12-4日我们不再将承载物信息设置成必填了
|
|
||||||
// if ((identificationMaterial.getSample1FundQuantity() == null) ||
|
|
||||||
// (identificationMaterial.getSample1FundQuantity().compareTo(0) == 0)) {
|
|
||||||
// throw new RuntimeException(String.format("样本1的承载物数量不能为空, 也不能为 0"));
|
|
||||||
// }
|
|
||||||
if ((identificationMaterial.getSample1Quantity() == null) ||
|
if ((identificationMaterial.getSample1Quantity() == null) ||
|
||||||
(identificationMaterial.getSample1Quantity().equals(BigDecimal.ZERO))) {
|
(identificationMaterial.getSample1Quantity().equals(BigDecimal.ZERO))) {
|
||||||
throw new RuntimeException(String.format("样本1的数量不能为空, 也不能为 0"));
|
throw new RuntimeException(String.format("样本1的数量不能为空, 也不能为 0"));
|
||||||
@@ -787,13 +784,7 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
|||||||
im.setSample1No(sampleService.getNewSampleNo(im.getImNo(), 1));
|
im.setSample1No(sampleService.getNewSampleNo(im.getImNo(), 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((identificationMaterial.getSample2Present() != null) && (identificationMaterial.getSample2Present())) {
|
if ((identificationMaterial.getSample2Present() != null) && (identificationMaterial.getSample2Present())) {
|
||||||
//12-4日我们不再将承载物信息设置成必填了
|
|
||||||
// if ((identificationMaterial.getSample2FundQuantity() == null) ||
|
|
||||||
// (identificationMaterial.getSample2FundQuantity().compareTo(0) == 0)) {
|
|
||||||
// throw new RuntimeException(String.format("样本2的承载物数量不能为空, 也不能为 0"));
|
|
||||||
// }
|
|
||||||
if ((identificationMaterial.getSample2Quantity() == null) ||
|
if ((identificationMaterial.getSample2Quantity() == null) ||
|
||||||
(identificationMaterial.getSample2Quantity().compareTo(BigDecimal.ZERO) == 0)) {
|
(identificationMaterial.getSample2Quantity().compareTo(BigDecimal.ZERO) == 0)) {
|
||||||
throw new RuntimeException(String.format("样本2的数量不能为空, 也不能为 0"));
|
throw new RuntimeException(String.format("样本2的数量不能为空, 也不能为 0"));
|
||||||
@@ -813,17 +804,25 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl<En
|
|||||||
// 受理未通过, 不修改属性
|
// 受理未通过, 不修改属性
|
||||||
im.setAcceptPassed(opCode);
|
im.setAcceptPassed(opCode);
|
||||||
im.setAcceptTime(LocalDateTime.now());
|
im.setAcceptTime(LocalDateTime.now());
|
||||||
im.setAcceptNo("");//如果拒绝受理
|
im.setAcceptNo("");
|
||||||
if (!this.updateById(im)) {
|
if (!this.updateById(im)) {
|
||||||
throw new RuntimeException("保存检材信息失败");
|
throw new RuntimeException("保存检材信息失败");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从数据库表中取出保存的委托对象, 后续的操作我们以此为准
|
// 从数据库表中取出保存的委托对象, 后续的操作我们以此为准
|
||||||
im = this.getById(identificationMaterial.getId());
|
im = this.getById(identificationMaterial.getId());
|
||||||
if (im == null) {
|
if (im == null) {
|
||||||
throw new RuntimeException(String.format("没有找到 id 为 %s 的检材", identificationMaterial.getId()));
|
throw new RuntimeException(String.format("没有找到 id 为 %s 的检材", identificationMaterial.getId()));
|
||||||
}
|
}
|
||||||
return im;
|
processedMaterials.add(im);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 回滚事务
|
||||||
|
throw new RuntimeException(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return processedMaterials;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3580,6 +3580,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
|
|||||||
deliverer1.setName(entrustment.getDeliverer1Name());
|
deliverer1.setName(entrustment.getDeliverer1Name());
|
||||||
deliverer1.setPhone(entrustment.getDeliverer1Phone());
|
deliverer1.setPhone(entrustment.getDeliverer1Phone());
|
||||||
deliverer1.setPosition(entrustment.getDeliverer1Position());
|
deliverer1.setPosition(entrustment.getDeliverer1Position());
|
||||||
|
deliverer1.setId(entrustment.getDeliverer1Id());
|
||||||
|
|
||||||
// 设置第二个配送员的信息,并加入到列表中
|
// 设置第二个配送员的信息,并加入到列表中
|
||||||
Deliverer deliverer2 = new Deliverer();
|
Deliverer deliverer2 = new Deliverer();
|
||||||
@@ -3587,6 +3588,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
|
|||||||
deliverer2.setName(entrustment.getDeliverer2Name());
|
deliverer2.setName(entrustment.getDeliverer2Name());
|
||||||
deliverer2.setPhone(entrustment.getDeliverer2Phone());
|
deliverer2.setPhone(entrustment.getDeliverer2Phone());
|
||||||
deliverer2.setPosition(entrustment.getDeliverer2Position());
|
deliverer2.setPosition(entrustment.getDeliverer2Position());
|
||||||
|
deliverer2.setId(entrustment.getDeliverer2Id());
|
||||||
|
|
||||||
deliverers.add(deliverer1);
|
deliverers.add(deliverer1);
|
||||||
deliverers.add(deliverer2);
|
deliverers.add(deliverer2);
|
||||||
|
|||||||
Reference in New Issue
Block a user