瀏覽代碼

增加泵输注信息做过修改进行修改记录

wangzl 4 月之前
父節點
當前提交
ffe30876e4

+ 46 - 0
pump-web/src/main/java/com/tuoren/web/layer/controller/BusReceiveRecordUpdateController.java

@@ -0,0 +1,46 @@
+package com.tuoren.web.layer.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.tuoren.common.api.CommonResult;
+import com.tuoren.web.layer.entity.BusReceiveRecordUpdateEntity;
+import com.tuoren.web.layer.service.IBusReceiveRecordUpdateService;
+import com.tuoren.web.layer.vo.ReceiveRecordUpdateQueryParam;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author wangzl
+ * @description: TODO
+ * @date 2025/8/5 9:40
+ */
+@Api(tags = "BusReceiveRecordUpdateController", description = "修改记录管理")
+@Slf4j
+@RestController
+@RequestMapping("/bus/receive-record/update")
+public class BusReceiveRecordUpdateController {
+
+    @Autowired
+    private IBusReceiveRecordUpdateService iBusReceiveRecordEntityService;
+
+    /**
+     * 分页查询所有数据(模糊查询)
+     *
+     * @param pageNo   页码
+     * @param pageSize 条数
+     * @param param    查询实体
+     * @return 所有数据
+     */
+    @ApiOperation("分页查询数据")
+    @PostMapping("/list")
+    public CommonResult<IPage<BusReceiveRecordUpdateEntity>> selectCopyAll(Integer pageNo, Integer pageSize, @RequestBody @Validated ReceiveRecordUpdateQueryParam param) {
+        IPage<BusReceiveRecordUpdateEntity> result = iBusReceiveRecordEntityService.queryUpdateList(pageNo, pageSize, param);
+        return CommonResult.success(result);
+    }
+}

+ 62 - 0
pump-web/src/main/java/com/tuoren/web/layer/entity/BusReceiveRecordUpdateEntity.java

@@ -0,0 +1,62 @@
+package com.tuoren.web.layer.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author wangzl
+ * @description: TODO
+ * @date 2025/8/5 8:30
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("bus_receive_record_update")
+@ApiModel(value="BusReceiveRecordUpdateEntity对象", description="")
+public class BusReceiveRecordUpdateEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键",hidden = true)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "注液泵编码")
+    private String pumpCode;
+
+    @ApiModelProperty(value = "医院编码")
+    private String hospitalCode;
+
+    @ApiModelProperty(value = "住院号")
+    private String patientCode;
+
+    @ApiModelProperty(value = "持续量")
+    private BigDecimal continueQuantity;
+
+    @ApiModelProperty(value = "极限量")
+    private BigDecimal maxQuantity;
+
+    @ApiModelProperty(value = "首次量")
+    private Integer firstQuantity;
+
+    @ApiModelProperty(value = "追加量")
+    private BigDecimal singleQuantity;
+
+    @ApiModelProperty(value = "总量")
+    private Integer totalQuantity;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime gmtCreate;
+
+    @ApiModelProperty(value = "更新时间",hidden = true)
+    private LocalDateTime gmtModified;
+}

+ 12 - 0
pump-web/src/main/java/com/tuoren/web/layer/mapper/BusReceiveRecordUpdateMapper.java

@@ -0,0 +1,12 @@
+package com.tuoren.web.layer.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.tuoren.web.layer.entity.BusReceiveRecordUpdateEntity;
+
+/**
+ * @author wangzl
+ * @description: TODO
+ * @date 2025/8/5 8:36
+ */
+public interface BusReceiveRecordUpdateMapper extends BaseMapper<BusReceiveRecordUpdateEntity> {
+}

+ 25 - 0
pump-web/src/main/java/com/tuoren/web/layer/service/IBusReceiveRecordUpdateService.java

@@ -0,0 +1,25 @@
+package com.tuoren.web.layer.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.tuoren.web.layer.entity.BusPumpEntity;
+import com.tuoren.web.layer.entity.BusReceiveRecordUpdateEntity;
+import com.tuoren.web.layer.vo.ReceiveRecordUpdateQueryParam;
+
+/**
+ * @author wangzl
+ * @description: TODO
+ * @date 2025/8/5 8:37
+ */
+public interface IBusReceiveRecordUpdateService extends IService<BusReceiveRecordUpdateEntity> {
+
+    /**
+     * @description: 比对泵表输注信息是否有修改
+     * @author wangzl
+     * @date 2025/8/5
+     */
+    void comparePumpData(BusPumpEntity pumpEntity);
+
+
+    IPage<BusReceiveRecordUpdateEntity> queryUpdateList(Integer pageNo, Integer pageSize, ReceiveRecordUpdateQueryParam param);
+}

+ 116 - 0
pump-web/src/main/java/com/tuoren/web/layer/service/impl/BusReceiveRecordUpdateImpl.java

@@ -0,0 +1,116 @@
+package com.tuoren.web.layer.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.crypto.digest.DigestUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.tuoren.web.layer.entity.BusPumpEntity;
+import com.tuoren.web.layer.entity.BusReceiveRecordUpdateEntity;
+import com.tuoren.web.layer.mapper.BusReceiveRecordUpdateMapper;
+import com.tuoren.web.layer.service.IBusReceiveRecordUpdateService;
+import com.tuoren.web.layer.vo.ReceiveRecordUpdateQueryParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author wangzl
+ * @description: TODO
+ * @date 2025/8/5 8:38
+ */
+@Slf4j
+@Service
+public class BusReceiveRecordUpdateImpl extends ServiceImpl<BusReceiveRecordUpdateMapper, BusReceiveRecordUpdateEntity> implements IBusReceiveRecordUpdateService {
+    private static final String[] MD5_FIELDS = {"pumpCode", "hospitalCode", "patientCode", "continueQuantity", "maxQuantity", "firstQuantity", "singleQuantity", "totalQuantity"};
+
+    /**
+     * @param pumpEntity 泵实体
+     * @description: 比对泵表输注信息是否有修改
+     * @author wangzl
+     * @date 2025/8/5
+     */
+    @Override
+    public void comparePumpData(BusPumpEntity pumpEntity) {
+        try {
+            if (ObjectUtil.isNull(pumpEntity)) {
+                return;
+            }
+            BusReceiveRecordUpdateEntity busReceiveRecordUpdateEntity = this.getBaseMapper().selectOne(new LambdaQueryWrapper<BusReceiveRecordUpdateEntity>()
+                    .eq(BusReceiveRecordUpdateEntity::getPumpCode, pumpEntity.getPumpCode())
+                    .eq(BusReceiveRecordUpdateEntity::getHospitalCode, pumpEntity.getHospitalCode())
+                    .eq(BusReceiveRecordUpdateEntity::getPatientCode, pumpEntity.getPatientCode())
+                    .orderByDesc(BusReceiveRecordUpdateEntity::getGmtModified).last("limit 1"));
+
+            // 2. 转换为Map并应用配置
+            Map<String, Object> pumpEntityMap = beanToMapWithInclude(pumpEntity, MD5_FIELDS);
+            //将pumpEntity转为Map 为了加密校验做准备
+            //将map转为实体 做插入
+            BusReceiveRecordUpdateEntity insertUpdateEntity = BeanUtil.mapToBean(pumpEntityMap, BusReceiveRecordUpdateEntity.class, true);
+            if (ObjectUtil.isNull(busReceiveRecordUpdateEntity)) {
+                this.save(insertUpdateEntity);
+            } else {
+                Map<String, Object> updateEntityMap = beanToMapWithInclude(busReceiveRecordUpdateEntity, MD5_FIELDS);
+                String pumpMd5 = DigestUtil.md5Hex(pumpEntityMap.toString());
+                String updateMd5 = DigestUtil.md5Hex(updateEntityMap.toString());
+                if (!pumpMd5.equals(updateMd5)) {
+                    this.save(insertUpdateEntity);
+                }
+            }
+        } catch (Exception e) {
+            log.info("增加修改记录信息异常了:{} ", e.getMessage());
+            e.printStackTrace();
+
+        }
+    }
+
+    @Override
+    public IPage<BusReceiveRecordUpdateEntity> queryUpdateList(Integer pageNo, Integer pageSize, ReceiveRecordUpdateQueryParam param) {
+        IPage<BusReceiveRecordUpdateEntity> iPage = new Page<>(pageNo, pageSize);
+        List<BusReceiveRecordUpdateEntity> list = this.list(new LambdaQueryWrapper<BusReceiveRecordUpdateEntity>()
+                .eq(BusReceiveRecordUpdateEntity::getHospitalCode, param.getHospitalCode())
+                .eq(BusReceiveRecordUpdateEntity::getPatientCode, param.getPatientCode())
+                .eq(BusReceiveRecordUpdateEntity::getPumpCode, param.getPumpCode())
+                .orderByDesc(BusReceiveRecordUpdateEntity::getGmtModified));
+        iPage.setRecords(list);
+        return iPage;
+    }
+
+
+    /**
+     * 转换对象为Map,只保留指定的特定属性
+     */
+    public static Map<String, Object> beanToMapWithInclude(Object bean, String... includeFields) {
+        Map<String, Object> fullMap = BeanUtil.beanToMap(bean);
+        Map<String, Object> resultMap = new HashMap<>();
+        for (Map.Entry<String, Object> entry : fullMap.entrySet()) {
+            boolean exists = Arrays.asList(includeFields).contains(entry.getKey());
+            if (exists) {
+                resultMap.put(entry.getKey(), entry.getValue());
+            }
+        }
+        return resultMap;
+    }
+
+
+    public static void main(String[] args) {
+        BusPumpEntity pumpEntity = new BusPumpEntity();
+        pumpEntity.setPumpCode("PUMP_CODE");
+        pumpEntity.setHospitalCode("HOSPITAL_CODE");
+        pumpEntity.setPatientCode("PATIENT_CODE");
+        pumpEntity.setContinueQuantity(BigDecimal.valueOf(1));
+        pumpEntity.setMaxQuantity(BigDecimal.valueOf(1));
+        pumpEntity.setFirstQuantity(1);
+        pumpEntity.setSingleQuantity(BigDecimal.valueOf(1));
+        pumpEntity.setTotalQuantity(1);
+        BusReceiveRecordUpdateEntity updateEntityNew = new BusReceiveRecordUpdateEntity();
+
+    }
+}

+ 36 - 0
pump-web/src/main/java/com/tuoren/web/layer/vo/ReceiveRecordUpdateQueryParam.java

@@ -0,0 +1,36 @@
+package com.tuoren.web.layer.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author wangzl
+ * @description: TODO
+ * @date 2025/8/5 9:32
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "ReceiveRecordUpdateQueryParam", description = "字段: 接口: 接口名称 | 接口名称 | 注释")
+public class ReceiveRecordUpdateQueryParam implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "接口: null | 第几页")
+    private Integer pageNo = 1;
+    @ApiModelProperty(value = "接口: null | 条数")
+    private Integer pageSize = 10;
+
+    @ApiModelProperty(value = "住院号")
+    @NotBlank(message = "住院号不能为空")
+    private String patientCode;
+    @ApiModelProperty(value = "泵编码")
+    @NotBlank(message = "泵编码不能为空")
+    private String pumpCode;
+    @ApiModelProperty(value = "医院编码")
+    @NotBlank(message = "医院编码不能为空")
+    private String hospitalCode;
+}

+ 4 - 0
pump-web/src/main/java/com/tuoren/web/rabbit/RabbitHandle.java

@@ -68,6 +68,8 @@ public class RabbitHandle {
 
 	private final ISysConfigService iSysConfigService;
 
+	private final IBusReceiveRecordUpdateService iBusReceiveRecordUpdateService;
+
 	PushInfo pushInfo;
 	/**
 	 * @Description 监听呼吸队列
@@ -194,6 +196,8 @@ public class RabbitHandle {
 				iBusPumpService.pumpRabbitHandle(record);
 				pushInfo.pushErrorInfo(record.getStateFlag(), record.getBufState9(), record.getPumpCode(), record.getProductCode());
 			}
+			//增加修改记录
+			iBusReceiveRecordUpdateService.comparePumpData(record);
 		} catch (Exception e) {
 			log.error("======"+e.getMessage()+"======");
 		}