parent
9530c8b9f9
commit
d65ab3634c
@ -0,0 +1,32 @@ |
||||
package digital.laboratory.platform.entrustment.controller; |
||||
|
||||
import digital.laboratory.platform.common.core.util.R; |
||||
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial; |
||||
import digital.laboratory.platform.entrustment.service.AcceptService; |
||||
import io.swagger.annotations.Api; |
||||
import io.swagger.annotations.ApiOperation; |
||||
import org.springframework.security.access.prepost.PreAuthorize; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import javax.annotation.Resource; |
||||
|
||||
/** |
||||
* 委托受理模块控制器 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/papp/accept") |
||||
@Api(value = "AcceptController", tags = "委托受理模块控制器相关接口") |
||||
public class AcceptController { |
||||
|
||||
@Resource |
||||
private AcceptService acceptService; |
||||
|
||||
@ApiOperation("修改受理后的检材受理编号") |
||||
@PutMapping("/alertMaterialAcceptNo") |
||||
@PreAuthorize("@pms.hasPermission('EntrustmentAccept')") |
||||
public R alertMaterialAcceptNo(@RequestBody EntrustmentIdentificationMaterial material) { |
||||
Boolean success = acceptService.alertMaterialAcceptNo(material); |
||||
return R.ok(success); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,16 @@ |
||||
package digital.laboratory.platform.entrustment.service; |
||||
|
||||
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial; |
||||
|
||||
/** |
||||
* 受理服务层接口 |
||||
*/ |
||||
public interface AcceptService { |
||||
|
||||
/** |
||||
* 修改受理后的检材受理编号 |
||||
* @param material |
||||
* @return |
||||
*/ |
||||
Boolean alertMaterialAcceptNo(EntrustmentIdentificationMaterial material); |
||||
} |
@ -0,0 +1,88 @@ |
||||
package digital.laboratory.platform.entrustment.service.impl; |
||||
|
||||
import cn.hutool.core.collection.CollUtil; |
||||
import cn.hutool.core.util.StrUtil; |
||||
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.service.AcceptService; |
||||
import digital.laboratory.platform.entrustment.service.EntrustmentIdentificationMaterialService; |
||||
import digital.laboratory.platform.entrustment.service.EntrustmentService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import javax.annotation.Resource; |
||||
import java.util.List; |
||||
import java.util.regex.Pattern; |
||||
|
||||
/** |
||||
* 受理服务层接口 -- 实现类 |
||||
*/ |
||||
@Service |
||||
public class AcceptServiceImpl implements AcceptService { |
||||
|
||||
@Resource |
||||
private EntrustmentService entrustmentService; |
||||
|
||||
@Resource |
||||
private EntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService; |
||||
|
||||
/** |
||||
* 修改受理后的检材受理编号 |
||||
* @param material |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public Boolean alertMaterialAcceptNo(EntrustmentIdentificationMaterial material) { |
||||
EntrustmentIdentificationMaterial identificationMaterial = entrustmentIdentificationMaterialService.getById(material.getId()); |
||||
if (identificationMaterial == null) { |
||||
throw new ValidateCodeException("检材信息不存在!"); |
||||
} |
||||
// 获取要修改的检材受理编号
|
||||
String materialAcceptNo = material.getAcceptNo(); |
||||
if (StrUtil.isBlank(materialAcceptNo)) { |
||||
throw new ValidateCodeException("检材受理编号不能修改为空!"); |
||||
} |
||||
/** 判断是否符合编号规则, |
||||
* \\d+:表示一个或多个数字-:表示连字符 |
||||
* -:表示连字符 |
||||
* ^ 和 $:表示字符串的开始和结束 |
||||
*/ |
||||
String regex = "^\\d+-\\d+-\\d+$"; |
||||
if (Pattern.matches(regex, materialAcceptNo)) { |
||||
throw new ValidateCodeException(String.format("%s 不符合检材受理编号的规则!", materialAcceptNo)); |
||||
} |
||||
// 校验当前修改的检材受理编号对应的委托的受理编号存不存在, 委托的受理编号是检材受理编号截取最后一个横杠的内容
|
||||
String entrustAcceptNo = materialAcceptNo.substring(0, materialAcceptNo.lastIndexOf("-")); |
||||
if (entrustmentService.count(Wrappers.<Entrustment>lambdaQuery().eq(Entrustment::getAcceptNo, entrustAcceptNo)) > 0) { |
||||
throw new ValidateCodeException(String.format("%s 的委托受理信息已经存在!", entrustAcceptNo)); |
||||
} |
||||
if (entrustmentIdentificationMaterialService.count(Wrappers.<EntrustmentIdentificationMaterial>lambdaQuery().eq(EntrustmentIdentificationMaterial::getAcceptNo, materialAcceptNo)) > 0) { |
||||
throw new ValidateCodeException(String.format("%s 的委托检材受理信息已经存在!", materialAcceptNo)); |
||||
} |
||||
if (entrustmentIdentificationMaterialService.update(Wrappers.<EntrustmentIdentificationMaterial>lambdaUpdate() |
||||
.eq(EntrustmentIdentificationMaterial::getId, material.getId()).set(EntrustmentIdentificationMaterial::getAcceptNo, materialAcceptNo))) { |
||||
// 查询该委托下面的其他已经受理的检材
|
||||
List<EntrustmentIdentificationMaterial> materialList = entrustmentIdentificationMaterialService.list(Wrappers.<EntrustmentIdentificationMaterial>lambdaQuery() |
||||
.eq(EntrustmentIdentificationMaterial::getEntrustmentId, identificationMaterial.getEntrustmentId()) |
||||
.ne(EntrustmentIdentificationMaterial::getAcceptNo, materialAcceptNo) |
||||
.isNotNull(EntrustmentIdentificationMaterial::getAcceptNo)); |
||||
if (CollUtil.isNotEmpty(materialList)) { |
||||
int count = 0; |
||||
for (EntrustmentIdentificationMaterial entrustmentIdentificationMaterial : materialList) { |
||||
String entrustmentIdentificationMaterialAcceptNo = entrustmentIdentificationMaterial.getAcceptNo(); |
||||
if (entrustmentIdentificationMaterialAcceptNo.contains(entrustAcceptNo)) { |
||||
continue; |
||||
} |
||||
count++; |
||||
entrustmentIdentificationMaterial.setAcceptNo(entrustAcceptNo |
||||
+ "-" |
||||
+ entrustmentIdentificationMaterialAcceptNo.substring(entrustmentIdentificationMaterialAcceptNo.lastIndexOf("-"))); |
||||
} |
||||
return count == 0 ? true : entrustmentIdentificationMaterialService.updateBatchById(materialList); |
||||
} |
||||
return Boolean.TRUE; |
||||
} |
||||
return Boolean.FALSE; |
||||
} |
||||
} |
Loading…
Reference in new issue