Explorar o código

add 医院name

18339543638 %!s(int64=3) %!d(string=hai) anos
pai
achega
94b35ed4fb

+ 12 - 0
coffee-common/src/main/java/com/coffee/common/config/mybatis/GetNameInterface.java

@@ -0,0 +1,12 @@
+package com.coffee.common.config.mybatis;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName GetNameInterface.java
+ * @Description TODO
+ * @createTime 2022年03月22日 17:22:00
+ */
+public interface GetNameInterface<PK,T> {
+    T getName(PK id);
+}

+ 55 - 0
coffee-common/src/main/java/com/coffee/common/config/mybatis/TenantNameHandler.java

@@ -0,0 +1,55 @@
+package com.coffee.common.config.mybatis;
+
+import cn.hutool.extra.spring.SpringUtil;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+import org.apache.ibatis.type.TypeHandler;
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName DateToBigIntHandler.java
+ * @Description TODO
+ * @createTime 2022年03月21日 09:58:00
+ */
+@MappedTypes(String.class)
+@MappedJdbcTypes(JdbcType.VARCHAR)
+public class TenantNameHandler implements TypeHandler<String> {
+
+    private GetNameInterface<String,String> getHospitalName;
+
+    @Override
+    public void setParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) {
+
+    }
+
+    @Override
+    public String getResult(ResultSet rs, String columnName) throws SQLException {
+        if(getHospitalName==null){
+            getHospitalName= SpringUtil.getBean(GetNameInterface.class);
+        }
+        return getHospitalName.getName( rs.getString(columnName));
+    }
+
+    @Override
+    public String getResult(ResultSet rs, int columnIndex) throws SQLException {
+        if(getHospitalName==null){
+            getHospitalName= SpringUtil.getBean(GetNameInterface.class);
+        }
+        return getHospitalName.getName( rs.getString(columnIndex));
+    }
+
+    @Override
+    public String getResult(CallableStatement cs, int columnIndex) throws SQLException {
+        if(getHospitalName==null){
+            getHospitalName= SpringUtil.getBean(GetNameInterface.class);
+        }
+        return getHospitalName.getName( cs.getString(columnIndex));
+    }
+}

+ 73 - 9
coffee-common/src/main/java/com/coffee/common/crud/BaseService.java

@@ -58,7 +58,11 @@ public abstract class BaseService<M extends BaseMapper<E>, E,PK extends Serializ
     @Override
     public boolean saveBatch(Collection<E> entityList, int batchSize) {
         entityList.forEach(this::validateBeforeSave);
-        return super.saveBatch(entityList, batchSize);
+        if (super.saveBatch(entityList, batchSize)) {
+            entityList.forEach(this::postSave);
+            return true;
+        }
+        return false;
     }
 
     /**
@@ -78,7 +82,19 @@ public abstract class BaseService<M extends BaseMapper<E>, E,PK extends Serializ
             String keyProperty = tableInfo.getKeyProperty();
             Assert.notEmpty(keyProperty, "error: can not execute. because can not find column for id from entity!");
             Object idVal = tableInfo.getPropertyValue(entity, tableInfo.getKeyProperty());
-            return StringUtils.checkValNull(idVal) || Objects.isNull(getById((Serializable) idVal)) ? save(entity) : updateById(entity);
+            if (StringUtils.checkValNull(idVal) || Objects.isNull(getById((Serializable) idVal))) {
+                if(save(entity)){
+                    postSave(entity);
+                    return true;
+                }
+                return false;
+            }else {
+                if(updateById(entity)){
+                    postUpdate(entity);
+                    return true;
+                }
+                return false;
+            }
         }
         return false;
     }
@@ -106,50 +122,77 @@ public abstract class BaseService<M extends BaseMapper<E>, E,PK extends Serializ
             MapperMethod.ParamMap<E> param = new MapperMethod.ParamMap<>();
             validateBeforeUpdate(entity);
             param.put(Constants.ENTITY, entity);
-            sqlSession.update(getSqlStatement(SqlMethod.UPDATE_BY_ID), param);
+            if (sqlSession.update(getSqlStatement(SqlMethod.UPDATE_BY_ID), param)==0) {
+                postUpdate(entity);
+            }
         });
     }
 
     @Override
     public boolean removeById(Serializable id) {
         validateBeforeDelete((PK) id);
-        return super.removeById(id);
+        if (super.removeById(id)) {
+            postDelete((PK) id);
+            return true;
+        }
+        return false;
     }
 
     @Override
     public boolean removeByIds(Collection<?> list) {
         list.stream().map(id->(PK)id).forEach(this::validateBeforeDelete);
-        return super.removeByIds(list);
+        if (super.removeByIds(list)) {
+            list.stream().map(id->(PK)id).forEach(this::postDelete);
+            return true;
+        }
+        return false;
     }
 
 
     @Override
     public boolean removeById(Serializable id, boolean useFill) {
         this.validateBeforeDelete((PK) id);
-        return super.removeById(id, useFill);
+        if (super.removeById(id, useFill)) {
+            postDelete((PK) id);
+            return true;
+        }
+        return false;
     }
 
     @Override
     public boolean removeBatchByIds(Collection<?> list, int batchSize) {
         list.stream().map(id->(PK)id).forEach(this::validateBeforeDelete);
-        return super.removeBatchByIds(list, batchSize);
+        if (super.removeBatchByIds(list, batchSize)) {
+            list.stream().map(id->(PK)id).forEach(this::postDelete);
+            return true;
+        }
+        return false;
     }
 
     @Override
     public boolean removeBatchByIds(Collection<?> list, int batchSize, boolean useFill) {
         list.stream().map(id->(PK)id).forEach(this::validateBeforeDelete);
-        return super.removeBatchByIds(list, batchSize, useFill);
+        if (super.removeBatchByIds(list, batchSize, useFill)) {
+            list.stream().map(id->(PK)id).forEach(this::postDelete);
+            return true;
+        }
+        return false;
     }
 
     @Override
     public boolean updateById(E entity) {
         validateBeforeUpdate(entity);
-        return super.updateById(entity);
+        if (super.updateById(entity)) {
+            postUpdate(entity);
+            return true;
+        }
+        return false;
     }
 
     @Override
     public boolean updateBatchById(Collection<E> entityList) {
         entityList.forEach(this::validateBeforeUpdate);
+        entityList.forEach(this::postUpdate);
         return false;
     }
 
@@ -191,6 +234,26 @@ public abstract class BaseService<M extends BaseMapper<E>, E,PK extends Serializ
         return queryWrapper;
     }
 
+    /**
+     * 保存成功后操作
+     */
+    public void postSave(E  entity ){
+
+    }
+
+    /**
+     * 更新成功后操作
+     */
+    public void postUpdate(E entity){
+
+    }
+
+    /**
+     * 删除成功后操作
+     */
+    public void postDelete(PK id){
+
+    }
 
     /**
      * @Author lifang
@@ -211,6 +274,7 @@ public abstract class BaseService<M extends BaseMapper<E>, E,PK extends Serializ
    public abstract void validateBeforeUpdate(E entity) ;
 
 
+
     /**
      * @Author lifang
      * @Date 10:02 2022/3/14

+ 6 - 0
coffee-common/src/main/java/com/coffee/common/entity/TenantGenericEntity.java

@@ -1,6 +1,8 @@
 package com.coffee.common.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.coffee.common.config.mybatis.TenantNameHandler;
 import lombok.Getter;
 
 /**
@@ -17,4 +19,8 @@ public abstract class TenantGenericEntity<PK,TN> extends GenericEntity<PK> {
     @Getter
     @TableField("tenant_id")
     private TN tenantId;
+
+    @Getter
+    @TableField(value = "tenant_id",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER,typeHandler = TenantNameHandler.class)
+    private String tenantName;
 }

+ 1 - 1
coffee-system/src/main/java/com/coffee/bus/controller/BuDoctorController.java → coffee-system/src/main/java/com/coffee/bus/controller/BusDoctorController.java

@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
 @AllArgsConstructor
 @RequestMapping("/bus/doctor")
 @Api(tags = "医院医生管理",description = "统一权限前缀(bus:doctor),例如新增bus:doctor:add")
-public class BuDoctorController extends BaseCrudController<BusDoctorEntity, String> {
+public class BusDoctorController extends BaseCrudController<BusDoctorEntity, String> {
     private final LocalBusDoctorService doctorService;
 
 

+ 43 - 0
coffee-system/src/main/java/com/coffee/bus/controller/BusNetPumpController.java

@@ -0,0 +1,43 @@
+package com.coffee.bus.controller;
+
+import com.baomidou.mybatisplus.core.mapper.Mapper;
+import com.coffee.bus.entity.BusDoctorEntity;
+import com.coffee.bus.entity.BusNetPumpEntity;
+import com.coffee.bus.service.LocalBusDoctorService;
+import com.coffee.bus.service.LocalBusNetPumpService;
+import com.coffee.common.crud.BaseService;
+import com.coffee.common.crud.controller.BaseCrudController;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName BusHospitalController.java
+ * @Description TODO
+ * @createTime 2022年03月19日 09:28:00
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bus/netpump")
+@Api(tags = "网络泵管理",description = "统一权限前缀(bus:pump),例如新增bus:pump:add")
+public class BusNetPumpController extends BaseCrudController<BusNetPumpEntity, String> {
+    private final LocalBusNetPumpService netPumpService;
+
+
+    /**
+     * 权限控制前缀
+     * @return
+     */
+    @Override
+    public String getPermissionPrefix() {
+        return "bus:pump";
+    }
+
+    @Override
+    public BaseService<? extends Mapper<BusNetPumpEntity>, BusNetPumpEntity, String> getService() {
+        return netPumpService;
+    }
+}

+ 136 - 0
coffee-system/src/main/java/com/coffee/bus/entity/BusNetPumpEntity.java

@@ -0,0 +1,136 @@
+package com.coffee.bus.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.coffee.common.config.mybatis.DateToBigIntHandler;
+import com.coffee.common.entity.TenantGenericEntity;
+import com.fasterxml.jackson.annotation.JsonSetter;
+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;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author fanfan
+ * @since 2020-07-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("bus_netpump")
+@ApiModel(value="网络泵", description="")
+public class BusNetPumpEntity extends TenantGenericEntity<String,String> {
+
+    @ApiModelProperty(value = "网络泵id")
+    private String deviceId;
+
+
+    @ApiModelProperty(value = "病号")
+    private String patientCode;
+
+    @ApiModelProperty(value = "病人名称")
+    private String patientName;
+
+    @ApiModelProperty(value = "别名")
+    private String alias;
+
+    @ApiModelProperty(value = "剩余量")
+    private BigDecimal remainQuantity;
+
+    @ApiModelProperty(value = "持续量")
+    private BigDecimal continueQuantity;
+
+    @ApiModelProperty(value = "自控锁时")
+    private BigDecimal selfControlLockTime;
+
+    @ApiModelProperty(value = "已输入量")
+    private BigDecimal inputQuantity;
+
+    @ApiModelProperty(value = "有效次数")
+    private Integer validTime;
+
+    @ApiModelProperty(value = "无效次数")
+    private Integer invalidTime;
+
+    @ApiModelProperty(value = "极限量")
+    private BigDecimal maxQuantity;
+
+    @ApiModelProperty(value = "首次量")
+    private Integer firstQuantity;
+
+    @ApiModelProperty(value = "追加量")
+    private BigDecimal singleQuantity;
+
+    @ApiModelProperty(value = "总量")
+    private Integer totalQuantity;
+
+    @ApiModelProperty(value = "总按次数")
+    private Integer totalCount;
+
+
+    @ApiModelProperty(value = "镇痛泵运行状态")
+    private Integer runState;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState1;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState2;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState3;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState4;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState5;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState6;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState7;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState8;
+
+    @ApiModelProperty(value = "镇痛泵状态BUF")
+    private Integer bufState9;
+
+    @ApiModelProperty(value = "开始时间")
+    @TableField(typeHandler = DateToBigIntHandler.class)
+    private Date startTime;
+
+    @ApiModelProperty(value = "是否已撤泵")
+    private Boolean isRemove;
+
+    @ApiModelProperty(value = "状态标记")
+    private Integer stateFlag;
+
+    @ApiModelProperty(value = "显示状态")
+    private String viewState;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "最后上传时间")
+    @TableField(typeHandler = DateToBigIntHandler.class)
+    private Date lastUploadTime;
+
+    @TableField(typeHandler = DateToBigIntHandler.class)
+    private Date registerTime;
+
+}

+ 16 - 0
coffee-system/src/main/java/com/coffee/bus/mapper/BusNetPumpMapper.java

@@ -0,0 +1,16 @@
+package com.coffee.bus.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.coffee.bus.entity.BusNetPumpEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName BusHospitalMapper.java
+ * @Description TODO
+ * @createTime 2022年03月19日 09:15:00
+ */
+@Mapper
+public interface BusNetPumpMapper extends BaseMapper<BusNetPumpEntity> {
+}

+ 44 - 1
coffee-system/src/main/java/com/coffee/bus/service/LocalBusHospitalService.java

@@ -1,10 +1,19 @@
 package com.coffee.bus.service;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
 import com.coffee.bus.entity.BusHospitalEntity;
 import com.coffee.bus.mapper.BusHospitalMapper;
+import com.coffee.common.config.mybatis.GetNameInterface;
 import com.coffee.common.crud.BaseService;
+import org.springframework.boot.CommandLineRunner;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * @author lifang
  * @version 1.0.0
@@ -13,7 +22,8 @@ import org.springframework.stereotype.Service;
  * @createTime 2022年03月19日 09:27:00
  */
 @Service
-public class LocalBusHospitalService extends BaseService<BusHospitalMapper, BusHospitalEntity,String> {
+public class LocalBusHospitalService extends BaseService<BusHospitalMapper, BusHospitalEntity,String> implements CommandLineRunner, GetNameInterface<String,String> {
+    private static Map<String,String> hospitalMap=new HashMap<>();
     @Override
     public void validateBeforeSave(BusHospitalEntity entity) {
 
@@ -28,4 +38,37 @@ public class LocalBusHospitalService extends BaseService<BusHospitalMapper, BusH
     public void validateBeforeDelete(String id) {
 
     }
+
+    @Override
+    public void postSave(BusHospitalEntity entity) {
+        hospitalMap.put(entity.getId(),entity.getName());
+    }
+
+    @Override
+    public void postUpdate(BusHospitalEntity entity) {
+        hospitalMap.put(entity.getId(),entity.getName());
+    }
+
+    @Override
+    public void postDelete(String id) {
+        hospitalMap.remove(id);
+    }
+
+    @Override
+    public void run(String... args) throws Exception {
+        List<BusHospitalEntity> hospitalList = this.list();
+        if(CollectionUtil.isNotEmpty(hospitalList)){
+            Map<String, List<BusHospitalEntity>> collect = hospitalList.stream().collect(Collectors.groupingBy(BusHospitalEntity::getId));
+            collect.forEach((k,v)->hospitalMap.put(k,v.get(0).getName()));
+        }
+    }
+
+
+    @Override
+    public String getName(String id) {
+        if(StrUtil.isEmpty(id)){
+            return "";
+        }
+        return hospitalMap.get(id);
+    }
 }

+ 33 - 0
coffee-system/src/main/java/com/coffee/bus/service/LocalBusNetPumpService.java

@@ -0,0 +1,33 @@
+package com.coffee.bus.service;
+
+import com.coffee.bus.entity.BusDoctorEntity;
+import com.coffee.bus.entity.BusNetPumpEntity;
+import com.coffee.bus.mapper.BusDoctorMapper;
+import com.coffee.bus.mapper.BusNetPumpMapper;
+import com.coffee.common.crud.BaseService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName LocalBusHospitalService.java
+ * @Description TODO
+ * @createTime 2022年03月19日 09:27:00
+ */
+@Service
+public class LocalBusNetPumpService extends BaseService<BusNetPumpMapper, BusNetPumpEntity,String> {
+    @Override
+    public void validateBeforeSave(BusNetPumpEntity entity) {
+
+    }
+
+    @Override
+    public void validateBeforeUpdate(BusNetPumpEntity entity) {
+
+    }
+
+    @Override
+    public void validateBeforeDelete(String id) {
+
+    }
+}