Browse Source

病区管理

chengyao 3 năm trước cách đây
mục cha
commit
a3090237b3

+ 48 - 0
common/src/main/java/com/lantone/common/vo/SysRegionVo.java

@@ -0,0 +1,48 @@
+package com.lantone.common.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 病区表
+ * </p>
+ */
+@Data
+public class SysRegionVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    @ApiModelProperty(value = "医院ID")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "病区编码")
+    private String code;
+
+    @ApiModelProperty(value = "病区名称")
+    private String name;
+
+    @ApiModelProperty(value = "首字母拼音")
+    private String spell;
+
+    @ApiModelProperty(value = "区域类别")
+    private String station;
+
+    @ApiModelProperty(value = "排序")
+    private String orderNo;
+
+    @ApiModelProperty(value = "科室id集合")
+    @NotEmpty
+    private List<Long> deptIds;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 78 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/SysRegion.java

@@ -0,0 +1,78 @@
+package com.lantone.dblayermbg.entity;
+
+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.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 病区表
+ * </p>
+ */
+@Data
+@TableName("sys_region")
+@ApiModel(value="SysRegion对象", description="病区表")
+public class SysRegion implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "医院ID")
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "病区编码")
+    @TableField("code")
+    private String code;
+
+    @ApiModelProperty(value = "病区名称")
+    @TableField("name")
+    private String name;
+
+    @ApiModelProperty(value = "首字母拼音")
+    @TableField("spell")
+    private String spell;
+
+    @ApiModelProperty(value = "区域类别")
+    @TableField("station")
+    private String station;
+
+    @ApiModelProperty(value = "排序")
+    @TableField("order_no")
+    private String orderNo;
+
+    @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    @ApiModelProperty(value = "记录创建时间")
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    @ApiModelProperty(value = "记录修改时间,如果时间是1970年则表示纪录未修改")
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    @ApiModelProperty(value = "创建人,0表示无创建人值")
+    @TableField("creator")
+    private String creator;
+
+    @ApiModelProperty(value = "修改人,如果为0则表示纪录未修改")
+    @TableField("modifier")
+    private String modifier;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+
+}

+ 71 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/entity/SysRegionDept.java

@@ -0,0 +1,71 @@
+package com.lantone.dblayermbg.entity;
+
+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.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 病区科室关联表
+ * </p>
+ */
+@Data
+@TableName("sys_region_dept")
+@ApiModel(value="SysRegionDept对象", description="病区科室关联表")
+public class SysRegionDept implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "编号")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "医院ID")
+    @TableField("hospital_id")
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "病区ID")
+    @TableField("region_id")
+    private Long regionId;
+
+    @ApiModelProperty(value = "科室ID")
+    @TableField("dept_id")
+    private Long deptId;
+
+    @ApiModelProperty(value = "排序")
+    @TableField("order_no")
+    private String orderNo;
+
+    @ApiModelProperty(value = "是否删除,N:未删除,Y:删除")
+    @TableField("is_deleted")
+    private String isDeleted;
+
+    @ApiModelProperty(value = "记录创建时间")
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    @ApiModelProperty(value = "记录修改时间,如果时间是1970年则表示纪录未修改")
+    @TableField("gmt_modified")
+    private Date gmtModified;
+
+    @ApiModelProperty(value = "创建人,0表示无创建人值")
+    @TableField("creator")
+    private String creator;
+
+    @ApiModelProperty(value = "修改人,如果为0则表示纪录未修改")
+    @TableField("modifier")
+    private String modifier;
+
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
+
+
+}

+ 14 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/SysRegionDeptFacade.java

@@ -0,0 +1,14 @@
+package com.lantone.dblayermbg.facade;
+
+import com.lantone.dblayermbg.service.impl.SysRegionDeptServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * 病区科室关联表 服务实现类Facade
+ * </p>
+ */
+@Component
+public class SysRegionDeptFacade extends SysRegionDeptServiceImpl {
+
+}

+ 97 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/SysRegionFacade.java

@@ -0,0 +1,97 @@
+package com.lantone.dblayermbg.facade;
+
+import com.lantone.common.exception.ApiException;
+import com.lantone.common.util.ListUtil;
+import com.lantone.common.vo.SysRegionVo;
+import com.lantone.dblayermbg.entity.SysRegion;
+import com.lantone.dblayermbg.entity.SysRegionDept;
+import com.lantone.dblayermbg.service.impl.SysRegionDeptServiceImpl;
+import com.lantone.dblayermbg.service.impl.SysRegionServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 病区表 服务实现类Facade
+ * </p>
+ */
+@Component
+public class SysRegionFacade extends SysRegionServiceImpl {
+    @Autowired
+    private SysRegionDeptServiceImpl sysRegionDeptServiceImpl;
+    public Boolean saveWard(SysRegionVo sysRegionVo){
+        Boolean flag = false;
+        //校验病区和科室
+        getSysRegion(sysRegionVo);
+        SysRegion sysRegion = new SysRegion();
+        BeanUtils.copyProperties(sysRegionVo,sysRegion);
+        List<SysRegionDept> sysRegionDepts = new ArrayList<>();
+        if(null == sysRegionVo.getId()){
+            flag = addSysRegion(sysRegionVo, sysRegion, sysRegionDepts);
+        }else if(null != sysRegionVo.getId()){
+            flag = updateSysRegion(sysRegionVo, sysRegion,sysRegionDepts);
+        }
+        return flag;
+    };
+
+    public void getSysRegion(SysRegionVo sysRegionVo){
+        List<Long> collects = this.lambdaQuery()
+                .eq(SysRegion::getName, sysRegionVo.getName())
+                .eq(SysRegion::getHospitalId, sysRegionVo.getHospitalId()).list().stream().map(obj -> obj.getId()).collect(Collectors.toList());
+        if(ListUtil.isNotEmpty(collects)){
+            Integer count = sysRegionDeptServiceImpl.lambdaQuery()
+                    .in(SysRegionDept::getRegionId,collects)
+                    .in(SysRegionDept::getDeptId, sysRegionVo.getDeptIds()).count();
+            if(count>0){
+                throw new ApiException("此病区关联科室重复");
+            }
+        }
+    }
+
+    public Boolean addSysRegion(SysRegionVo sysRegionVo,SysRegion sysRegion ,List<SysRegionDept> sysRegionDepts){
+        sysRegion.setGmtCreate(new Date());
+        sysRegion.setCreator("程瑶-后期改");
+        this.save(sysRegion);
+        sysRegionVo.getDeptIds().forEach(obj->{
+            SysRegionDept sysRegionDept = new SysRegionDept();
+            BeanUtils.copyProperties(sysRegionVo,sysRegionDept);
+            sysRegionDept.setDeptId(obj);
+            sysRegionDept.setRegionId(sysRegion.getId());
+            sysRegionDept.setGmtCreate(new Date());
+            sysRegionDept.setCreator("后期修改");
+            sysRegionDepts.add(sysRegionDept);
+        });
+        Boolean flag = sysRegionDeptServiceImpl.saveBatch(sysRegionDepts);
+        return flag;
+    }
+
+    public Boolean updateSysRegion(SysRegionVo sysRegionVo,SysRegion sysRegion,List<SysRegionDept> sysRegionDepts){
+        sysRegion.setGmtModified(new Date());
+        sysRegion.setModifier("程瑶改");
+        this.updateById(sysRegion);
+        List<SysRegion> list = this.lambdaQuery().eq(SysRegion::getId, sysRegionVo.getId()).list();
+        sysRegionDeptServiceImpl.lambdaUpdate()
+                .eq(SysRegionDept::getHospitalId, sysRegionVo.getHospitalId())
+                .eq(SysRegionDept::getRegionId, sysRegionVo.getId()).remove();
+        sysRegionVo.getDeptIds().forEach(obj->{
+            SysRegionDept sysRegionDeptEntry = new SysRegionDept();
+            BeanUtils.copyProperties(sysRegionVo,sysRegionDeptEntry);
+            sysRegionDeptEntry.setId(null);
+            sysRegionDeptEntry.setDeptId(obj);
+            sysRegionDeptEntry.setRegionId(sysRegionVo.getId());
+            if(ListUtil.isNotEmpty(list)){
+                sysRegionDeptEntry.setGmtCreate(list.get(0).getGmtCreate());
+                sysRegionDeptEntry.setCreator(list.get(0).getCreator());
+            }
+            sysRegionDeptEntry.setGmtModified(new Date());
+            sysRegionDeptEntry.setModifier("后期修改");
+            sysRegionDepts.add(sysRegionDeptEntry);
+        });
+        Boolean flag = sysRegionDeptServiceImpl.saveBatch(sysRegionDepts);
+        return flag;
+    }
+}

+ 16 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/SysRegionDeptMapper.java

@@ -0,0 +1,16 @@
+package com.lantone.dblayermbg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.dblayermbg.entity.SysRegionDept;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ * 病区科室关联表 Mapper 接口
+ * </p>
+ */
+@Repository
+public interface SysRegionDeptMapper extends BaseMapper<SysRegionDept> {
+
+}
+

+ 14 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/mapper/SysRegionMapper.java

@@ -0,0 +1,14 @@
+package com.lantone.dblayermbg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.lantone.dblayermbg.entity.SysRegion;
+
+/**
+ * <p>
+ * 病区表 Mapper 接口
+ * </p>
+ */
+public interface SysRegionMapper extends BaseMapper<SysRegion> {
+
+}
+

+ 15 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/SysRegionDeptService.java

@@ -0,0 +1,15 @@
+package com.lantone.dblayermbg.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lantone.dblayermbg.entity.SysRegionDept;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 病区科室关联表 服务类
+ * </p>
+ */
+@Service
+public interface SysRegionDeptService extends IService<SysRegionDept> {
+
+}

+ 13 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/SysRegionService.java

@@ -0,0 +1,13 @@
+package com.lantone.dblayermbg.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.lantone.dblayermbg.entity.SysRegion;
+
+/**
+ * <p>
+ * 病区表 服务类
+ * </p>
+ */
+public interface SysRegionService extends IService<SysRegion> {
+
+}

+ 17 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/SysRegionDeptServiceImpl.java

@@ -0,0 +1,17 @@
+package com.lantone.dblayermbg.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lantone.dblayermbg.entity.SysRegionDept;
+import com.lantone.dblayermbg.mapper.SysRegionDeptMapper;
+import com.lantone.dblayermbg.service.SysRegionDeptService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 病区科室关联表 服务实现类
+ * </p>
+ */
+@Service
+public class SysRegionDeptServiceImpl extends ServiceImpl<SysRegionDeptMapper, SysRegionDept> implements SysRegionDeptService {
+
+}

+ 17 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/service/impl/SysRegionServiceImpl.java

@@ -0,0 +1,17 @@
+package com.lantone.dblayermbg.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.lantone.dblayermbg.entity.SysRegion;
+import com.lantone.dblayermbg.mapper.SysRegionMapper;
+import com.lantone.dblayermbg.service.SysRegionService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 病区表 服务实现类
+ * </p>
+ */
+@Service
+public class SysRegionServiceImpl extends ServiceImpl<SysRegionMapper, SysRegion> implements SysRegionService {
+
+}

+ 5 - 0
dblayer-mbg/src/main/resources/mapper/SysRegionDeptMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.SysRegionDeptMapper">
+
+</mapper>

+ 5 - 0
dblayer-mbg/src/main/resources/mapper/SysRegionMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lantone.dblayermbg.mapper.SysRegionMapper">
+
+</mapper>

+ 37 - 0
security-center/src/main/java/com/lantone/security/web/DataWardController.java

@@ -0,0 +1,37 @@
+package com.lantone.security.web;
+
+import com.lantone.common.api.CommonResult;
+import com.lantone.common.vo.SysRegionVo;
+import com.lantone.dblayermbg.facade.SysRegionFacade;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+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;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * @ClassName: DataWardController
+ * @Description: 病区管理
+ * @Author cy
+ * @Date 2021/7/27
+ * @Version 1.0
+ */
+@RestController
+@Api(value = "病区管理API", tags = { "病区管理API" })
+@RequestMapping("/data/ward")
+public class DataWardController {
+    @Autowired
+    private SysRegionFacade sysRegionFacade;
+    @ApiOperation(value = "新增/修改病区[by:cy]",
+            notes = "")
+    @PostMapping("/saveWard")
+    @ApiIgnore
+    @Transactional
+    public CommonResult<Boolean> saveWard(@RequestBody SysRegionVo sysRegionVo) {
+        return CommonResult.success(sysRegionFacade.saveWard(sysRegionVo));
+    }
+}