From 932387a90f34de317b97d66a997e6af62c8abbf3 Mon Sep 17 00:00:00 2001 From: yewj Date: Tue, 8 Oct 2024 15:55:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8D=E8=89=AF=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E4=BF=A1=E6=81=AF=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOrderController.java | 8 +- .../api/controller/inv/BadDbController.java | 36 +++++ .../api/dao/inv/AnncmntProductMapper.java | 9 ++ .../api/entity/inv/AnncmntProductEntity.java | 127 ++++++++++++++++++ .../glxp/api/req/inv/TraceRecordRequest.java | 108 +++++++++++++++ .../collect/IoCollectOrderCodeManService.java | 12 +- .../service/inv/AnncmntProductService.java | 11 ++ .../mapper/inv/AnncmntProductMapper.xml | 4 + src/main/resources/schemas/schema_v2.4.sql | 29 +++- 9 files changed, 336 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/glxp/api/controller/inv/BadDbController.java create mode 100644 src/main/java/com/glxp/api/dao/inv/AnncmntProductMapper.java create mode 100644 src/main/java/com/glxp/api/entity/inv/AnncmntProductEntity.java create mode 100644 src/main/java/com/glxp/api/req/inv/TraceRecordRequest.java create mode 100644 src/main/java/com/glxp/api/service/inv/AnncmntProductService.java create mode 100644 src/main/resources/mybatis/mapper/inv/AnncmntProductMapper.xml diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index 27d1e7615..f7d1299f4 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -203,9 +203,9 @@ public class IoCollectOrderController extends BaseController { request.setBillNo(collectOrderRequest.getBillNo()); List orderResponses = collectOrderService.filterList(request); IoCollectOrder order = collectOrderService.getOne(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, collectOrderRequest.getBillNo())); - if (CollUtil.isNotEmpty(orderResponses)){ - if (order.getTagStatus() == 2){ - return ResultVOUtils.error(500,"此单据正在处理中!"); + if (CollUtil.isNotEmpty(orderResponses)) { + if (order.getTagStatus() == 2) { + return ResultVOUtils.error(500, "此单据正在处理中!"); } //查询到显示页面 更改为处理中 防止前端刷新页面 重新查询 order.setBillNo(collectOrderRequest.getBillNo()); @@ -217,7 +217,7 @@ public class IoCollectOrderController extends BaseController { } else { request.setTagStatus(-1); orderResponses = collectOrderService.filterList(request); - if (CollUtil.isNotEmpty(orderResponses)){ + if (CollUtil.isNotEmpty(orderResponses)) { order.setBillNo(collectOrderRequest.getBillNo()); order.setUpdateUser(getUserId()); order.setUpdateTime(new Date()); diff --git a/src/main/java/com/glxp/api/controller/inv/BadDbController.java b/src/main/java/com/glxp/api/controller/inv/BadDbController.java new file mode 100644 index 000000000..3da1d9ecc --- /dev/null +++ b/src/main/java/com/glxp/api/controller/inv/BadDbController.java @@ -0,0 +1,36 @@ +package com.glxp.api.controller.inv; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.controller.BaseController; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.inv.AnncmntProductEntity; +import com.glxp.api.req.inv.TraceRecordRequest; +import com.glxp.api.service.inv.AnncmntProductService; +import com.glxp.api.util.udi.FilterUdiUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController +public class BadDbController extends BaseController { + + @Resource + AnncmntProductService anncmntProductService; + + /** + * UDI扫码校验不良信息库 + */ + @GetMapping("udi/trace/badDb/search") + public BaseResponse badDbSearch(TraceRecordRequest traceRecordRequest) { + + UdiEntity udiEntity = FilterUdiUtils.getUdi(traceRecordRequest.getUdiCode()); + AnncmntProductEntity anncmntProductEntity = anncmntProductService.getOne(new QueryWrapper().eq("nameCode", udiEntity.getUdi()).last("limit 1")); + if (anncmntProductEntity != null) { + return ResultVOUtils.success(anncmntProductEntity); + } + return ResultVOUtils.error(500, "无异常!"); + } +} diff --git a/src/main/java/com/glxp/api/dao/inv/AnncmntProductMapper.java b/src/main/java/com/glxp/api/dao/inv/AnncmntProductMapper.java new file mode 100644 index 000000000..9bfcc96b5 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/AnncmntProductMapper.java @@ -0,0 +1,9 @@ +package com.glxp.api.dao.inv; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.api.entity.inv.AnncmntProductEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AnncmntProductMapper extends BaseMapper { +} diff --git a/src/main/java/com/glxp/api/entity/inv/AnncmntProductEntity.java b/src/main/java/com/glxp/api/entity/inv/AnncmntProductEntity.java new file mode 100644 index 000000000..27d245a90 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inv/AnncmntProductEntity.java @@ -0,0 +1,127 @@ +package com.glxp.api.entity.inv; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "anncmnt_product") +public class AnncmntProductEntity implements Serializable { + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 产品通用名称 + */ + @TableField(value = "productName") + private String productName; + + /** + * 规格型号 + */ + @TableField(value = "ggxh") + private String ggxh; + + /** + * di/产品标识 + */ + @TableField(value = "nameCode") + private String nameCode; + + /** + * 医疗器械注册备案人 + */ + @TableField(value = "ylqxzcrbarmc") + private String ylqxzcrbarmc; + + /** + * 注册人统一社会信用号 + */ + @TableField(value = "regCreditCode") + private String regCreditCode; + + /** + * 生产企业 + */ + @TableField(value = "manuName") + private String manuName; + + /** + * 生产企业统一社会信用代码 + */ + @TableField(value = "manuCreditCode") + private String manuCreditCode; + + /** + * 产品状态 + */ + @TableField(value = "status") + private String status; + + /** + * 异常类型 + */ + @TableField(value = "errType") + private String errType; + + /** + * 异常信息 + */ + @TableField(value = "errMsg") + private String errMsg; + + /** + * 备注 + */ + @TableField(value = "remark") + private String remark; + + /** + * 创建人 + */ + @TableField(value = "createUser") + private String createUser; + + /** + * 创建时间 + */ + @TableField(value = "createTime") + private Date createTime; + + /** + * 更新人 + */ + @TableField(value = "updateUser") + private Date updateUser; + + /** + * 更新时间 + */ + @TableField(value = "udpateTime") + private Date udpateTime; + + /** + * 暂停使用时间 + */ + @TableField(value = "pauseStartTime") + private String pauseStartTime; + + /** + * 恢复使用时间 + */ + @TableField(value = "pauseEndTime") + private String pauseEndTime; + + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/glxp/api/req/inv/TraceRecordRequest.java b/src/main/java/com/glxp/api/req/inv/TraceRecordRequest.java new file mode 100644 index 000000000..83491d56a --- /dev/null +++ b/src/main/java/com/glxp/api/req/inv/TraceRecordRequest.java @@ -0,0 +1,108 @@ +package com.glxp.api.req.inv; + +import com.glxp.api.util.page.ListPageRequest; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel("追溯记录请求") +public class TraceRecordRequest extends ListPageRequest { + + @ApiModelProperty(hidden = true, value = "主键") + private Long id; + + /** + * 查询记录号 + */ + @ApiModelProperty(hidden = true, value = "查询记录号") + private String recordCode; + + /** + * 查询来源 + */ + @ApiModelProperty(value = "查询来源:1.网页;2:小程序", required = true) + private Integer fromType; + + /** + * 查询者 + */ + @ApiModelProperty(value = "查询者", required = true) + private String createUser; + + /** + * 查询记录时间 + */ + @ApiModelProperty(hidden = true, value = "查询记录时间") + private Date createTime; + + /** + * 更新时间 + */ + @ApiModelProperty(hidden = true, value = "更新时间") + private Date updateTime; + /** + * 失效日期 + */ + @ApiModelProperty(value = "失效日期") + private String expireDate; + /** + * 查询方式(1:源头查询;2:现在检查查询) + */ + @ApiModelProperty(hidden = true, value = "查询方式(1:源头查询;2:现在检查查询)") + private Integer traceSource; + /** + * 查询方案(按UDI码查询/按批次号查询) + */ + @ApiModelProperty(value = "查询方案(按UDI码查询/按批次号查询)", required = true) + private Integer traceType; + + /** + * UDI码 + */ + @ApiModelProperty(value = "UDI码", required = true) + private String udiCode; + + /** + * 社会信用号 + */ + @ApiModelProperty(value = "社会信用号", required = true) + private String creditNum; + + /** + * 注册备案人 + */ + @ApiModelProperty(value = "注册备案人", required = true) + private String ylqxzcrbarmc; + + /** + * 产品主DI标识 + */ + @ApiModelProperty(value = "产品主DI标识", required = true) + private String nameCode; + + /** + * 产品通用名 + */ + @ApiModelProperty(value = "产品通用名", required = true) + private String cpmctymc; + + /** + * 规格型号 + */ + @ApiModelProperty(value = "规格型号", required = true) + private String ggxh; + + /** + * 生产批次号 + */ + @ApiModelProperty(value = "生产批次号", required = true) + private String batchNo; + + @ApiModelProperty(value = "注册企业ID", required = true) + private Long companyId; + + +} diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java index 6f8899541..20aefbf53 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.common.enums.ResultEnum; @@ -19,6 +20,7 @@ import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; import com.glxp.api.entity.collect.IoCollectOrderCodeMan; import com.glxp.api.entity.inout.IoSplitCodeEntity; +import com.glxp.api.entity.inv.AnncmntProductEntity; import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; import com.glxp.api.exception.JsonException; @@ -33,6 +35,7 @@ import com.glxp.api.service.basic.BasicCollectBustypeService; import com.glxp.api.service.basic.SysWorkplaceDocumentService; import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.inout.IoSplitCodeService; +import com.glxp.api.service.inv.AnncmntProductService; import com.glxp.api.service.thrsys.IThrBusTypeOriginService; import com.glxp.api.service.thrsys.ThrSystemService; import com.glxp.api.util.GennerOrderUtils; @@ -62,9 +65,9 @@ public class IoCollectOrderCodeManService extends ServiceImpl().eq("nameCode", udiEntity.getUdi()).last("limit 1")); + if (anncmntProductEntity != null) { + throw new JsonException(500, anncmntProductEntity.getErrMsg()); + } + List collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); //2.校验是否处方单UDI码 diff --git a/src/main/java/com/glxp/api/service/inv/AnncmntProductService.java b/src/main/java/com/glxp/api/service/inv/AnncmntProductService.java new file mode 100644 index 000000000..190eff17c --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/AnncmntProductService.java @@ -0,0 +1,11 @@ +package com.glxp.api.service.inv; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.dao.inv.AnncmntProductMapper; +import com.glxp.api.entity.inv.AnncmntProductEntity; +import org.springframework.stereotype.Service; + +@Service +public class AnncmntProductService extends ServiceImpl { + +} diff --git a/src/main/resources/mybatis/mapper/inv/AnncmntProductMapper.xml b/src/main/resources/mybatis/mapper/inv/AnncmntProductMapper.xml new file mode 100644 index 000000000..4f9efaba7 --- /dev/null +++ b/src/main/resources/mybatis/mapper/inv/AnncmntProductMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 894c4188f..ae0d0015a 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -2004,7 +2004,8 @@ CALL Pro_Temp_ColumnWork('thr_inv_order', 'sickerCode', CALL Pro_Temp_ColumnWork('thr_inv_order', 'sickerName', ' varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''患者名称''', 1); -CALL Pro_Temp_ColumnWork('thr_inv_order', 'chargeTime', ' datetime(0) NULL DEFAULT NULL COMMENT''收费时间''', +CALL Pro_Temp_ColumnWork('thr_inv_order', 'chargeTime', + ' datetime(0) NULL DEFAULT NULL COMMENT''收费时间''', 1); CALL Pro_Temp_ColumnWork('thr_inv_order', 'chargeUser', ' varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT''收费人员''', @@ -4519,4 +4520,28 @@ CALL Pro_Temp_ColumnWork('basic_udirel', 'unpackUseTime', 1); - +CREATE TABLE IF NOT EXISTS `anncmnt_product` +( + `id` int NOT NULL AUTO_INCREMENT, + `productName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '产品通用名称', + `ggxh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格型号', + `nameCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'di/产品标识', + `ylqxzcrbarmc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '医疗器械注册备案人', + `regCreditCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '注册人统一社会信用号', + `manuName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生产企业', + `manuCreditCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '生产企业统一社会信用代码', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '产品状态', + `errType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '异常类型', + `errMsg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '异常信息', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人', + `createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `updateUser` datetime(0) NULL DEFAULT NULL COMMENT '更新人', + `udpateTime` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `pauseStartTime` datetime(0) NULL DEFAULT NULL COMMENT '暂停使用时间', + `pauseEndTime` datetime(0) NULL DEFAULT NULL COMMENT '恢复使用时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB + CHARACTER SET = utf8mb4 + COLLATE = utf8mb4_0900_ai_ci + ROW_FORMAT = DYNAMIC;