diff --git a/pom.xml b/pom.xml index ab652a7..3fc990f 100644 --- a/pom.xml +++ b/pom.xml @@ -13,13 +13,18 @@ 送检受理 + + 2022.10.11-snapshots + 2021.1 + + com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery - 2021.1 + ${cloud.alibaba.version} @@ -27,7 +32,7 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config - 2021.1 + ${cloud.alibaba.version} @@ -40,14 +45,14 @@ digital.laboratory.platform dlp-common-feign - 2022.10.11-snapshots + ${dlp.version} digital.laboratory.platform dlp-common-security - 2022.10.11-snapshots + ${dlp.version} @@ -71,39 +76,39 @@ digital.laboratory.platform dlp-common-log - 2022.10.11-snapshots + ${dlp.version} digital.laboratory.platform dlp-admin-api - 2022.10.11-snapshots + ${dlp.version} digital.laboratory.platform dlp-sewage-api - 2022.10.11-snapshots + ${dlp.version} digital.laboratory.platform dlp-othersys-api - 2022.10.11-snapshots + ${dlp.version} digital.laboratory.platform dlp-common-oss - 2022.10.11-snapshots + ${dlp.version} compile digital.laboratory.platform dlp-common-remote-word2pdf - 2022.10.11-snapshots + ${dlp.version} compile @@ -170,7 +175,7 @@ digital.laboratory.platform dlp-common-seata - 2022.10.11-snapshots + ${dlp.version} diff --git a/src/main/java/digital/laboratory/platform/entrustment/controller/AcceptController.java b/src/main/java/digital/laboratory/platform/entrustment/controller/AcceptController.java new file mode 100644 index 0000000..d461164 --- /dev/null +++ b/src/main/java/digital/laboratory/platform/entrustment/controller/AcceptController.java @@ -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); + } + +} diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/AcceptService.java b/src/main/java/digital/laboratory/platform/entrustment/service/AcceptService.java new file mode 100644 index 0000000..f793d6d --- /dev/null +++ b/src/main/java/digital/laboratory/platform/entrustment/service/AcceptService.java @@ -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); +} diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/AcceptServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/AcceptServiceImpl.java new file mode 100644 index 0000000..9adcbb4 --- /dev/null +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/AcceptServiceImpl.java @@ -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.lambdaQuery().eq(Entrustment::getAcceptNo, entrustAcceptNo)) > 0) { + throw new ValidateCodeException(String.format("%s 的委托受理信息已经存在!", entrustAcceptNo)); + } + if (entrustmentIdentificationMaterialService.count(Wrappers.lambdaQuery().eq(EntrustmentIdentificationMaterial::getAcceptNo, materialAcceptNo)) > 0) { + throw new ValidateCodeException(String.format("%s 的委托检材受理信息已经存在!", materialAcceptNo)); + } + if (entrustmentIdentificationMaterialService.update(Wrappers.lambdaUpdate() + .eq(EntrustmentIdentificationMaterial::getId, material.getId()).set(EntrustmentIdentificationMaterial::getAcceptNo, materialAcceptNo))) { + // 查询该委托下面的其他已经受理的检材 + List materialList = entrustmentIdentificationMaterialService.list(Wrappers.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; + } +} diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java index 0b9fce4..4bbc78a 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentIdentificationMaterialServiceImpl.java @@ -546,19 +546,7 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper(); updateWrapper.eq("id", im.getId()); // 查询条件是 id 相等 + return getEntrustmentIdentificationMaterial(identificationMaterial, updateWrapper, im); + } + + /** + * 更新检材是否审批通过 + * @param identificationMaterial + * @param updateWrapper + * @param im + * @return + */ + public EntrustmentIdentificationMaterial getEntrustmentIdentificationMaterial(EntrustmentIdentificationMaterial identificationMaterial, UpdateWrapper updateWrapper, EntrustmentIdentificationMaterial im) { updateWrapper.set("approve_passed", im.getApprovePassed()); updateWrapper.set("approve_time", im.getApproveTime()); @@ -610,7 +609,6 @@ public class EntrustmentIdentificationMaterialServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper(); -// updateWrapper.eq("id", im.getId()); // 查询条件是 id 相等 -// -// updateWrapper.set("fund_quantity", im.getFundQuantity()); -// updateWrapper.set("quantity", im.getQuantity()); -// -// updateWrapper.set("provided_sample1_no", im.getProvidedSample1No()); -// updateWrapper.set("provided_sample1_fund_quantity", im.getProvidedSample1FundQuantity()); -// updateWrapper.set("provided_sample1_quantity", im.getProvidedSample1Quantity()); -// -// updateWrapper.set("provided_sample2_present", im.getProvidedSample2Present()); -// updateWrapper.set("provided_sample2_no", im.getProvidedSample2No()); -// updateWrapper.set("provided_sample2_fund_quantity", im.getProvidedSample2FundQuantity()); -// updateWrapper.set("provided_sample2_quantity", im.getProvidedSample2Quantity()); -// -// updateWrapper.set("splited_sample", im.getSplitedSample()); -// -// //updateWrapper.set("sample1_present", im.getSample1Present()); -// updateWrapper.set("sample1_no", im.getSample1No()); -// updateWrapper.set("sample1_fund_quantity", im.getSample1FundQuantity()); -// updateWrapper.set("sample1_quantity", im.getSample1Quantity()); -// updateWrapper.set("sample1_box_id", im.getSample1BoxId()); -// updateWrapper.set("sample2_present", im.getSample2Present()); -// updateWrapper.set("sample2_no", im.getSample2No()); -// updateWrapper.set("sample2_fund_quantity", im.getSample2FundQuantity()); -// updateWrapper.set("sample2_quantity", im.getSample2Quantity()); -// updateWrapper.set("sample2_box_id", im.getSample2BoxId()); -// updateWrapper.set("remark", im.getRemark()); -// updateWrapper.set("pack", im.getPack()); if (!this.updateById(im)) { throw new RuntimeException("保存检材信息失败");