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