ソースを参照

医院方案配置

wangfeng 4 年 前
コミット
3cd044e557
26 ファイル変更1362 行追加0 行削除
  1. 58 0
      cdssman-service/src/main/java/com/diagbot/dto/PlanDetailDTO.java
  2. 34 0
      cdssman-service/src/main/java/com/diagbot/dto/PlanInfoPagesDTO.java
  3. 170 0
      cdssman-service/src/main/java/com/diagbot/entity/Plan.java
  4. 219 0
      cdssman-service/src/main/java/com/diagbot/entity/PlanDetail.java
  5. 138 0
      cdssman-service/src/main/java/com/diagbot/facade/PlanDetailFacade.java
  6. 156 0
      cdssman-service/src/main/java/com/diagbot/facade/PlanFacade.java
  7. 16 0
      cdssman-service/src/main/java/com/diagbot/mapper/PlanDetailMapper.java
  8. 20 0
      cdssman-service/src/main/java/com/diagbot/mapper/PlanMapper.java
  9. 16 0
      cdssman-service/src/main/java/com/diagbot/service/PlanDetailService.java
  10. 19 0
      cdssman-service/src/main/java/com/diagbot/service/PlanService.java
  11. 20 0
      cdssman-service/src/main/java/com/diagbot/service/impl/PlanDetailServiceImpl.java
  12. 27 0
      cdssman-service/src/main/java/com/diagbot/service/impl/PlanServiceImpl.java
  13. 18 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanCancelVO.java
  14. 50 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanDetailSaveVO.java
  15. 23 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanPageVO.java
  16. 40 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanSaveVO.java
  17. 19 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanVO.java
  18. 17 0
      cdssman-service/src/main/java/com/diagbot/vo/HospitalSetVO.java
  19. 23 0
      cdssman-service/src/main/java/com/diagbot/vo/PlanDetailCancelVO.java
  20. 20 0
      cdssman-service/src/main/java/com/diagbot/vo/PlanDetailRevStopVO.java
  21. 18 0
      cdssman-service/src/main/java/com/diagbot/vo/PlanDetailSaveVO.java
  22. 20 0
      cdssman-service/src/main/java/com/diagbot/vo/PlanRevStopVO.java
  23. 78 0
      cdssman-service/src/main/java/com/diagbot/web/PlanController.java
  24. 77 0
      cdssman-service/src/main/java/com/diagbot/web/PlanDetailController.java
  25. 24 0
      cdssman-service/src/main/resources/mapper/PlanDetailMapper.xml
  26. 42 0
      cdssman-service/src/main/resources/mapper/PlanMapper.xml

+ 58 - 0
cdssman-service/src/main/java/com/diagbot/dto/PlanDetailDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 10:30
+ */
+@Setter
+@Getter
+public class PlanDetailDTO {
+
+    private Long id;
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+
+    /**
+     * 方案编号
+     */
+    private Long planId;
+
+    /**
+     * 配置名称
+     */
+    private String name;
+
+    /**
+     * 配置编码
+     */
+    private String code;
+
+    private String value;
+
+    /**
+     * 是否显示(1是,0否)
+     */
+    private Integer status;
+
+    /**
+     * 显示个数
+     */
+    private Integer number;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 34 - 0
cdssman-service/src/main/java/com/diagbot/dto/PlanInfoPagesDTO.java

@@ -0,0 +1,34 @@
+package com.diagbot.dto;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 10:29
+ */
+@Setter
+@Getter
+public class PlanInfoPagesDTO {
+    private Long id;
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+    /**
+     * 方案编号
+     */
+    private String planName;
+
+    private String planCode;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private List<PlanDetailDTO> planDetails;
+}

+ 170 - 0
cdssman-service/src/main/java/com/diagbot/entity/Plan.java

@@ -0,0 +1,170 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+@TableName("tran_plan")
+public class Plan implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 资源ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+
+    /**
+     * 方案名称
+     */
+    private String planName;
+
+    /**
+     * 方案编号
+     */
+    private String planCode;
+
+    /**
+     * 方案启动1:启动,0:不启用
+     */
+    private Integer planStatus;
+
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getPlanName() {
+        return planName;
+    }
+
+    public void setPlanName(String planName) {
+        this.planName = planName;
+    }
+    public String getPlanCode() {
+        return planCode;
+    }
+
+    public void setPlanCode(String planCode) {
+        this.planCode = planCode;
+    }
+    public Integer getPlanStatus() {
+        return planStatus;
+    }
+
+    public void setPlanStatus(Integer planStatus) {
+        this.planStatus = planStatus;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "Plan{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", hospitalId=" + hospitalId +
+            ", planName=" + planName +
+            ", planCode=" + planCode +
+            ", planStatus=" + planStatus +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 219 - 0
cdssman-service/src/main/java/com/diagbot/entity/PlanDetail.java

@@ -0,0 +1,219 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+@TableName("tran_plan_detail")
+public class PlanDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 资源ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+
+    /**
+     * 方案编号
+     */
+    private Long planId;
+
+    /**
+     * 配置名称
+     */
+    private String name;
+
+    /**
+     * 是否显示(1是,0否)
+     */
+    private Integer status;
+
+    /**
+     * 显示个数
+     */
+    private Integer number;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+
+    /**
+     * 配置编码
+     */
+    private String code;
+
+    private String value;
+
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public Long getPlanId() {
+        return planId;
+    }
+
+    public void setPlanId(Long planId) {
+        this.planId = planId;
+    }
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+    public Integer getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(Integer orderNo) {
+        this.orderNo = orderNo;
+    }
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "PlanDetail{" +
+            "id=" + id +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", hospitalId=" + hospitalId +
+            ", planId=" + planId +
+            ", name=" + name +
+            ", status=" + status +
+            ", number=" + number +
+            ", orderNo=" + orderNo +
+            ", code=" + code +
+            ", value=" + value +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 138 - 0
cdssman-service/src/main/java/com/diagbot/facade/PlanDetailFacade.java

@@ -0,0 +1,138 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.PlanDetailDTO;
+import com.diagbot.entity.PlanDetail;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.PlanDetailService;
+import com.diagbot.service.impl.PlanDetailServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.HospitalPlanDetailSaveVO;
+import com.diagbot.vo.HospitalSetVO;
+import com.diagbot.vo.PlanDetailCancelVO;
+import com.diagbot.vo.PlanDetailRevStopVO;
+import com.diagbot.vo.PlanDetailSaveVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 10:38
+ */
+@Component
+public class PlanDetailFacade extends PlanDetailServiceImpl {
+    @Autowired
+    PlanDetailService planDetailService;
+
+
+    public List<PlanDetailDTO> getSysSetInfoData(HospitalSetVO hospitalSetVO) {
+        QueryWrapper<PlanDetail> sysSetInfo = new QueryWrapper<>();
+        sysSetInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
+        sysSetInfo.eq("hospital_id", hospitalSetVO.getHospitalId());
+        sysSetInfo.eq("plan_id", hospitalSetVO.getPlanId());
+        sysSetInfo.eq(StringUtil.isNotBlank(hospitalSetVO.getCode()), "code", hospitalSetVO.getCode());
+        List<PlanDetail> sysSetData = list(sysSetInfo);
+        List<PlanDetailDTO> data = BeanUtil.listCopyTo(sysSetData, PlanDetailDTO.class);
+        return data;
+    }
+
+    public List<PlanDetailDTO> getByPlanIds(List<Long> planIds) {
+        List<PlanDetailDTO> dataNew = new ArrayList<PlanDetailDTO>();
+        if (ListUtil.isNotEmpty(planIds)) {
+            QueryWrapper<PlanDetail> planDetailQuery = new QueryWrapper<>();
+            planDetailQuery
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("STATUS", StatusEnum.Enable.getKey())
+                    .in("plan_id", planIds)
+                    .orderByDesc("gmt_create")
+                    .orderByAsc("order_no");
+            List<PlanDetail> datas = list(planDetailQuery);
+            dataNew = BeanUtil.listCopyTo(datas, PlanDetailDTO.class);
+        }
+        return dataNew;
+    }
+
+    public boolean savePlanDetail(PlanDetailSaveVO planDetailSaveVO) {
+        Date now = DateUtil.now();
+        UpdateWrapper<PlanDetail> planDetailUpdate = new UpdateWrapper<>();
+        planDetailUpdate.eq("plan_id", planDetailSaveVO.getPlanId())
+                .eq("hospital_id", planDetailSaveVO.getHospitalId())//医院id
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                .set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        update(new PlanDetail(), planDetailUpdate);
+        List<PlanDetail> planDetailList = new ArrayList<>();
+        List<HospitalPlanDetailSaveVO> planDetailData = planDetailSaveVO.getPlanDetail();
+        Long planId = planDetailSaveVO.getPlanId();
+        for (HospitalPlanDetailSaveVO planDetailVO : planDetailData) {
+            PlanDetail planDetail = new PlanDetail();
+            BeanUtil.copyProperties(planDetailVO, planDetail);
+            planDetail.setPlanId(planId);
+            planDetail.setGmtCreate(now);
+            planDetail.setCreator(UserUtils.getCurrentPrincipleID());
+            planDetail.setModifier(UserUtils.getCurrentPrincipleID());
+            planDetail.setGmtModified(now);
+            planDetailList.add(planDetail);
+        }
+        return planDetailService.saveBatch(planDetailList);
+    }
+
+    public boolean cancelPlanDetail(PlanDetailCancelVO planDetailCancelVO) {
+        boolean res = false;
+        // 1.先判断数据是否存在有效
+        UpdateWrapper<PlanDetail> planDetailNew = new UpdateWrapper<>();
+        planDetailNew
+                .eq("hospital_id", planDetailCancelVO.getHospitalId())
+                .eq("plan_id", planDetailCancelVO.getPlanId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                .set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        res = update(new PlanDetail(), planDetailNew);
+        return res;
+    }
+
+    public boolean revStopPlanDetail(PlanDetailRevStopVO planDetailRevStopVO) {
+        checkPlan(planDetailRevStopVO.getId());
+        UpdateWrapper<PlanDetail> planNew = new UpdateWrapper<>();
+        planNew
+                .eq("id", planDetailRevStopVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("status", planDetailRevStopVO.getStatus())
+                .set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        return update(new PlanDetail(), planNew);
+
+    }
+
+    /**
+     * 判断数据是否存在有效
+     *
+     * @param id
+     */
+    private PlanDetail checkPlan(Long id) {
+        // 1.先判断数据是否存在有效
+        QueryWrapper<PlanDetail> PlanFand = new QueryWrapper<>();
+        PlanFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
+        PlanDetail planDetail = getOne(PlanFand, false);
+        if (null == planDetail) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
+        }
+        return planDetail;
+    }
+}
+

+ 156 - 0
cdssman-service/src/main/java/com/diagbot/facade/PlanFacade.java

@@ -0,0 +1,156 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.PlanDetailDTO;
+import com.diagbot.dto.PlanInfoPagesDTO;
+import com.diagbot.entity.Plan;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.PlanServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.HospitalPlanCancelVO;
+import com.diagbot.vo.HospitalPlanPageVO;
+import com.diagbot.vo.HospitalPlanSaveVO;
+import com.diagbot.vo.PlanRevStopVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 10:29
+ */
+@Component
+public class PlanFacade extends PlanServiceImpl {
+
+    @Autowired
+    PlanDetailFacade planDetailFacade;
+
+
+    /**
+     * @param hospitalPlanSaveVO
+     * @return
+     */
+    public boolean savePlanInfoDatas(HospitalPlanSaveVO hospitalPlanSaveVO) {
+        Date now = DateUtil.now();
+        boolean res = false;
+        // 校验名称是否相同
+        int count = this.count(new QueryWrapper<Plan>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", hospitalPlanSaveVO.getHospitalId())
+                .eq("plan_name", hospitalPlanSaveVO.getPlanName())
+                .eq("plan_code", hospitalPlanSaveVO.getPlanCode())
+                .ne("id", hospitalPlanSaveVO.getId() == null ? -1 : hospitalPlanSaveVO.getId()));
+        if (count > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "相同【医院】下,方案名称已存在");
+        }
+        if (hospitalPlanSaveVO.getId() != null) {
+            UpdateWrapper<Plan> planQuery = new UpdateWrapper<>();
+            planQuery.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("id", hospitalPlanSaveVO.getId())
+                    .set("gmt_modified", now)
+                    .set("modifier", UserUtils.getCurrentPrincipleID())
+                    .set("hospital_id", hospitalPlanSaveVO.getHospitalId())
+                    .set("plan_name", hospitalPlanSaveVO.getPlanName())
+                    .set("plan_code", hospitalPlanSaveVO.getPlanCode())
+                    .set("plan_status", StatusEnum.Enable.getKey());
+            res = update(new Plan(), planQuery);
+        } else {
+            Plan plan = new Plan();
+            BeanUtil.copyProperties(hospitalPlanSaveVO, plan);
+            plan.setGmtCreate(now);
+            plan.setGmtModified(now);
+            plan.setCreator(UserUtils.getCurrentPrincipleID());
+            plan.setModifier(UserUtils.getCurrentPrincipleID());
+            res = this.save(plan);
+        }
+        return res;
+    }
+
+    public IPage<PlanInfoPagesDTO> getPlanInfoPage(HospitalPlanPageVO hospitalPlanPageVO) {
+        IPage<PlanInfoPagesDTO> data = getPlanInfoPageAll(hospitalPlanPageVO);
+        List<PlanInfoPagesDTO> planInfos = data.getRecords();
+        // 取版本id查明细
+        List<Long> ids = new ArrayList<>();
+        if (planInfos != null) {
+            // 当查出的数据不为空时,取到版本id,再去版本明细表中查询详细的信息
+            for (PlanInfoPagesDTO planInfo : planInfos) {
+                ids.add(planInfo.getId());
+            }
+            // 获取明细信息
+            List<PlanDetailDTO> PlanDetailDatas = planDetailFacade.getByPlanIds(ids);
+            Map<Long, List<PlanDetailDTO>> map = new HashMap<>();
+            // 获取所有用户开通的产品信息
+            map = EntityUtil.makeEntityListMap(PlanDetailDatas, "planId");
+            if (map.size() > 0) {
+                for (PlanInfoPagesDTO planInfo : planInfos) {
+                    List<PlanDetailDTO> planDetails = map.get(planInfo.getId());
+                    if (ListUtil.isNotEmpty(planDetails)) {
+                        planInfo.setPlanDetails(planDetails);
+                    }
+                }
+            }
+        }
+        return data.setRecords(planInfos);
+    }
+
+    public boolean cancelPlanData(HospitalPlanCancelVO hospitalPlanCancelVO) {
+        boolean res = false;
+        // 1.先判断数据是否存在有效
+        checkPlan(hospitalPlanCancelVO.getPlanId());
+        UpdateWrapper<Plan> planNew = new UpdateWrapper<>();
+        planNew
+                .eq("id", hospitalPlanCancelVO.getPlanId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                .set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        res = update(new Plan(), planNew);
+
+        return res;
+    }
+
+    public boolean revStopPlan(PlanRevStopVO planRevStopVO) {
+        checkPlan(planRevStopVO.getId());
+        UpdateWrapper<Plan> planNew = new UpdateWrapper<>();
+        planNew
+                .eq("id", planRevStopVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("plan_status", planRevStopVO.getStatus())
+                .set("modifier", UserUtils.getCurrentPrincipleID())
+                .set("gmt_modified", DateUtil.now());
+        return update(new Plan(), planNew);
+    }
+
+    /**
+     * 判断数据是否存在有效
+     *
+     * @param id
+     */
+    private Plan checkPlan(Long id) {
+        // 1.先判断数据是否存在有效
+        QueryWrapper<Plan> PlanFand = new QueryWrapper<>();
+        PlanFand.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("id", id);
+        Plan plan = getOne(PlanFand, false);
+        if (null == plan) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在");
+        }
+        return plan;
+    }
+
+
+}

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/mapper/PlanDetailMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.PlanDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+public interface PlanDetailMapper extends BaseMapper<PlanDetail> {
+
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/mapper/PlanMapper.java

@@ -0,0 +1,20 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.PlanInfoPagesDTO;
+import com.diagbot.entity.Plan;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.HospitalPlanPageVO;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+public interface PlanMapper extends BaseMapper<Plan> {
+
+    IPage<PlanInfoPagesDTO> getPlanInfoPageAll(HospitalPlanPageVO hospitalPlanPageVO);
+}

+ 16 - 0
cdssman-service/src/main/java/com/diagbot/service/PlanDetailService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.PlanDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+public interface PlanDetailService extends IService<PlanDetail> {
+
+}

+ 19 - 0
cdssman-service/src/main/java/com/diagbot/service/PlanService.java

@@ -0,0 +1,19 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.PlanInfoPagesDTO;
+import com.diagbot.entity.Plan;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.HospitalPlanPageVO;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+public interface PlanService extends IService<Plan> {
+    IPage<PlanInfoPagesDTO> getPlanInfoPageAll(HospitalPlanPageVO hospitalPlanPageVO);
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/PlanDetailServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.PlanDetail;
+import com.diagbot.mapper.PlanDetailMapper;
+import com.diagbot.service.PlanDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+@Service
+public class PlanDetailServiceImpl extends ServiceImpl<PlanDetailMapper, PlanDetail> implements PlanDetailService {
+
+}

+ 27 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/PlanServiceImpl.java

@@ -0,0 +1,27 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.PlanInfoPagesDTO;
+import com.diagbot.entity.Plan;
+import com.diagbot.mapper.PlanMapper;
+import com.diagbot.service.PlanService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.HospitalPlanPageVO;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+@Service
+public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements PlanService {
+
+    @Override
+    public IPage<PlanInfoPagesDTO> getPlanInfoPageAll(HospitalPlanPageVO hospitalPlanPageVO) {
+        return baseMapper.getPlanInfoPageAll(hospitalPlanPageVO);
+    }
+}

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanCancelVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 11:43
+ */
+@Setter
+@Getter
+public class HospitalPlanCancelVO {
+    /**
+     * 方案编号
+     */
+    private Long planId;
+}

+ 50 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanDetailSaveVO.java

@@ -0,0 +1,50 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 09:57
+ */
+@Setter
+@Getter
+public class HospitalPlanDetailSaveVO {
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+
+    /**
+     * 配置名称
+     */
+    private String name;
+
+
+
+    private String value;
+
+    /**
+     * 是否显示(1是,0否)
+     */
+    private Integer status;
+
+    /**
+     * 显示个数
+     */
+    private Integer number;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNo;
+    /**
+     * 配置编码
+     */
+    private String code;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 23 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanPageVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 10:31
+ */
+@Setter
+@Getter
+public class HospitalPlanPageVO extends Page {
+
+    private Long hospitalId;
+
+    private String planName;
+
+    private String planCode;
+
+    private Integer planStatus;
+}

+ 40 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanSaveVO.java

@@ -0,0 +1,40 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 9:55
+ */
+@Setter
+@Getter
+public class HospitalPlanSaveVO {
+    private Long Id;
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+
+    /**
+     * 方案名称
+     */
+    private String planName;
+
+    /**
+     * 方案编号
+     */
+    private String planCode;
+
+    /**
+     * 方案启动1:启动,0:不启用
+     */
+    private Integer planStatus;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 19 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalPlanVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 09:24
+ */
+@Setter
+@Getter
+public class HospitalPlanVO {
+    private Long hospitalId;
+    /**
+     * 方案编号
+     */
+    private String planCode;
+}

+ 17 - 0
cdssman-service/src/main/java/com/diagbot/vo/HospitalSetVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-07-27 19:02
+ */
+@Setter
+@Getter
+public class HospitalSetVO  {
+    private Long hospitalId;
+    private Long planId;
+    private String code;
+}

+ 23 - 0
cdssman-service/src/main/java/com/diagbot/vo/PlanDetailCancelVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 10:33
+ */
+@Setter
+@Getter
+public class PlanDetailCancelVO {
+
+    @NotNull(message = "请输入医院Id")
+    private Long hospitalId;
+    /**
+     * 方案编号
+     */
+    private Long planId;
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/vo/PlanDetailRevStopVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 13:40
+ */
+@Setter
+@Getter
+public class PlanDetailRevStopVO {
+    @NotNull(message = "请输入Id")
+    private Long Id;
+    @NotNull(message = "请输入状态")
+    private Integer status;
+}

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/vo/PlanDetailSaveVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 10:30
+ */@Setter
+@Getter
+public class PlanDetailSaveVO {
+    private Long hospitalId;
+    private Long planId;
+    private  List<HospitalPlanDetailSaveVO> planDetail;
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/vo/PlanRevStopVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-07 13:42
+ */
+@Setter
+@Getter
+public class PlanRevStopVO {
+    @NotNull(message = "请输入Id")
+    private Long Id;
+    @NotNull(message = "请输入状态")
+    private Integer status;
+}

+ 78 - 0
cdssman-service/src/main/java/com/diagbot/web/PlanController.java

@@ -0,0 +1,78 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.PlanInfoPagesDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.PlanFacade;
+import com.diagbot.vo.HospitalPlanCancelVO;
+import com.diagbot.vo.HospitalPlanPageVO;
+import com.diagbot.vo.HospitalPlanSaveVO;
+import com.diagbot.vo.PlanRevStopVO;
+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.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+@RestController
+@RequestMapping("/plan")
+@Api(value = "方案配置信息API", tags = { "方案配置信息API" })
+@SuppressWarnings("unchecked")
+public class PlanController {
+    @Autowired
+    PlanFacade planFacade;
+
+
+    @ApiOperation(value = "分页获取方案配置信息[by:wangfeng]", notes = "分页获取方案配置信息[by:wangfeng]")
+    @PostMapping("/getPlanInfoPages")
+    @SysLogger("getPlanInfoPages")
+    public RespDTO<IPage<PlanInfoPagesDTO>> getPlanInfoPages(@Valid @RequestBody HospitalPlanPageVO hospitalPlanPageVO) {
+        IPage<PlanInfoPagesDTO> data = planFacade.getPlanInfoPage(hospitalPlanPageVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "保存更新方案配置信息[by:wangfeng]", notes = "保存更新方案配置信息")
+    @PostMapping("/savePlanInfoDatas")
+    @SysLogger("savePlanInfoDatas")
+    @Transactional
+    public RespDTO<Boolean> savePlanInfoDatas(@Valid @RequestBody HospitalPlanSaveVO hospitalPlanSaveVO) {
+        boolean res = planFacade.savePlanInfoDatas(hospitalPlanSaveVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "删除方案配置信息[by:wangfeng]", notes = "删除方案配置信息")
+    @PostMapping("/cancelPlanDatas")
+    @SysLogger("cancelPlanDatas")
+    @Transactional
+    public RespDTO<Boolean> cancelPlanDatas(@Valid @RequestBody HospitalPlanCancelVO hospitalPlanCancelVO) {
+        boolean res = planFacade.cancelPlanData(hospitalPlanCancelVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "停用启用方案配置[by:wangfeng]", notes = "停用启用方案配置")
+    @PostMapping("/revStopPlans")
+    @SysLogger("revStopPlans")
+    @Transactional
+    public RespDTO<Boolean> revStopPlans(@Valid @RequestBody PlanRevStopVO planRevStopVO) {
+        boolean res = planFacade.revStopPlan(planRevStopVO);
+        return RespDTO.onSuc(res);
+    }
+}
+

+ 77 - 0
cdssman-service/src/main/java/com/diagbot/web/PlanDetailController.java

@@ -0,0 +1,77 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.PlanDetailDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.PlanDetailFacade;
+import com.diagbot.vo.HospitalSetVO;
+import com.diagbot.vo.PlanDetailCancelVO;
+import com.diagbot.vo.PlanDetailRevStopVO;
+import com.diagbot.vo.PlanDetailSaveVO;
+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.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-08-07
+ */
+@RestController
+@RequestMapping("/planDetail")
+@Api(value = "方案配置信息明细API", tags = { "方案配置信息明细API" })
+@SuppressWarnings("unchecked")
+public class PlanDetailController {
+    @Autowired
+    PlanDetailFacade planDetailFacade;
+
+    @ApiOperation(value = "根据医院编码获取配置信息明细[by:wangfeng]", notes = "hospitalId :医院id  必填<br> ")
+    @PostMapping("/getPlanDetailDatas")
+    @SysLogger("getPlanDetailDatas")
+    public RespDTO<List<PlanDetailDTO>> getSysSetInfoDatas(@Valid @RequestBody HospitalSetVO hospitalSetVO) {
+        List<PlanDetailDTO> data = planDetailFacade.getSysSetInfoData(hospitalSetVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "保存更新方案配置信息明细[by:wangfeng]", notes = "保存更新方案配置信息明细")
+    @PostMapping("/savePlanDetails")
+    @SysLogger("savePlanDetails")
+    @Transactional
+    public RespDTO<Boolean> savePlanDetails(@Valid @RequestBody PlanDetailSaveVO planDetailSaveVO) {
+        boolean res = planDetailFacade.savePlanDetail(planDetailSaveVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "删除方案配置明细[by:wangfeng]", notes = "删除方案配置明细")
+    @PostMapping("/cancelPlanDetails")
+    @SysLogger("cancelPlanDetails")
+    @Transactional
+    public RespDTO<Boolean> cancelPlanDetails(@Valid @RequestBody PlanDetailCancelVO planDetailCancelVO) {
+        boolean res = planDetailFacade.cancelPlanDetail(planDetailCancelVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "停用启用方案配置明细[by:wangfeng]", notes = "停用启用方案配置明细")
+    @PostMapping("/revStopPlanDetails")
+    @SysLogger("revStopPlanDetails")
+    @Transactional
+    public RespDTO<Boolean> revStopPlanDetails(@Valid @RequestBody PlanDetailRevStopVO planDetailRevStopVO) {
+        boolean res = planDetailFacade.revStopPlanDetail(planDetailRevStopVO);
+        return RespDTO.onSuc(res);
+    }
+}
+

+ 24 - 0
cdssman-service/src/main/resources/mapper/PlanDetailMapper.xml

@@ -0,0 +1,24 @@
+<?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.diagbot.mapper.PlanDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.PlanDetail">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="plan_id" property="planId" />
+        <result column="name" property="name" />
+        <result column="status" property="status" />
+        <result column="number" property="number" />
+        <result column="order_no" property="orderNo" />
+        <result column="code" property="code" />
+        <result column="value" property="value" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 42 - 0
cdssman-service/src/main/resources/mapper/PlanMapper.xml

@@ -0,0 +1,42 @@
+<?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.diagbot.mapper.PlanMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.Plan">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="plan_name" property="planName" />
+        <result column="plan_code" property="planCode" />
+        <result column="plan_status" property="planStatus" />
+        <result column="remark" property="remark" />
+    </resultMap>
+    <select id="getPlanInfoPageAll" resultType="com.diagbot.dto.PlanInfoPageDTO">
+        SELECT
+        id as id,
+        hospital_id as hospitalId,
+        plan_name as planName,
+        plan_code as planCode,
+        plan_status as planStatus
+        FROM tran_plan u
+        WHERE u.is_deleted = 'N'
+        <if test="hospitalId !=null">
+          and hospital_id =#{hospitalId}
+        </if>
+        <if test="planName != null and planName =''">
+            AND UPPER(u.plan_name) LIKE CONCAT('%', UPPER(trim(#{planName})), '%')
+        </if>
+        <if test="planCode != null and planCode != ''">
+            AND u.plan_code = #{planCode}
+        </if>
+        <if test="planStatus != null">
+            AND u.plan_status = #{planStatus}
+        </if>
+        ORDER BY gmt_create DESC
+    </select>
+</mapper>