Ver código fonte

Merge remote-tracking branch 'origin/master'

zhaops 4 anos atrás
pai
commit
1b16295fdb

+ 6 - 1
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -26,7 +26,7 @@ import java.io.IOException;
  */
 @Configuration
 @EnableResourceServer
-@ComponentScan({"com.diagbot.config" })
+@ComponentScan({ "com.diagbot.config" })
 public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
     Logger log = LoggerFactory.getLogger(ResourceServerConfigurer.class);
 
@@ -115,7 +115,12 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/sys/plan/getSysPlanInfoDatas").permitAll()
                 .antMatchers("/sys/plan/cancelPlanDatas").permitAll()
                 .antMatchers("/sys/plan/revStopPlans").permitAll()
+                .antMatchers("/sys/tokenHospital/getTokenHospital").permitAll()
                 .antMatchers("/demo/retrieval/index").permitAll()
+                .antMatchers("/sys/planDetail/getPlanDetailDatas").permitAll()
+                .antMatchers("/sys/planDetail/savePlanDetails").permitAll()
+                .antMatchers("/sys/planDetail/cancelPlanDetails").permitAll()
+                .antMatchers("/sys/planDetail/revStopPlanDetails").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

+ 7 - 2
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -35,7 +35,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
         if (matchPermitAllUrl(request)) {
             return;
         }
-        if ("anonymousUser".equals(authentication.getPrincipal())) {
+        if ("anonymousUser" .equals(authentication.getPrincipal())) {
             throw new AccessDeniedException("no right");
         } else {
             String tokenStr = HttpUtils.getHeaders(request).get("Authorization");
@@ -51,7 +51,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 url = authority[0];
                 method = authority[1];
                 if (matchers(url, request)) {
-                    if (method.equals(request.getMethod()) || "ALL".equals(method)) {
+                    if (method.equals(request.getMethod()) || "ALL" .equals(method)) {
                         return;
                     }
                 }
@@ -157,7 +157,12 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/sys/plan/getSysPlanInfoDatas", request)
                 || matchers("/sys/plan/cancelPlanDatas", request)
                 || matchers("/sys/plan/revStopPlans", request)
+                || matchers("/sys/tokenHospital/getTokenHospital", request)
                 || matchers("/demo/retrieval/index", request)
+                || matchers("/sys/planDetail/getPlanDetailDatas", request)
+                || matchers("/sys/planDetail/savePlanDetails", request)
+                || matchers("/sys/planDetail/cancelPlanDetails", request)
+                || matchers("/sys/planDetail/revStopPlanDetails", request)
                 || matchers("/", request)) {
             return true;
         }

+ 3 - 1
src/main/java/com/diagbot/dto/PlanDetailDTO.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author wangfeng
@@ -24,7 +25,7 @@ public class PlanDetailDTO {
      * 方案编号
      */
     private Long planId;
-
+    private Long parentId;
     /**
      * 配置名称
      */
@@ -57,4 +58,5 @@ public class PlanDetailDTO {
      */
     private String remark;
 
+    private List<PlanDetailDTO> PlanDetails;
 }

+ 9 - 1
src/main/java/com/diagbot/entity/PlanDetail.java

@@ -61,7 +61,7 @@ public class PlanDetail implements Serializable {
      * 方案编号
      */
     private Long planId;
-
+    private Long parentId;
     /**
      * 配置名称
      */
@@ -94,6 +94,14 @@ public class PlanDetail implements Serializable {
      */
     private String remark;
 
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
     public Long getId() {
         return id;
     }

+ 62 - 23
src/main/java/com/diagbot/facade/PlanDetailFacade.java

@@ -21,12 +21,15 @@ import com.diagbot.vo.HospitalSetVO;
 import com.diagbot.vo.PlanDetailCancelVO;
 import com.diagbot.vo.PlanDetailRevStopVO;
 import com.diagbot.vo.PlanDetailSaveVO;
+import com.diagbot.vo.PlanDetailSubSaveVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author wangfeng
@@ -48,8 +51,29 @@ public class PlanDetailFacade extends PlanDetailServiceImpl {
                 .in("plan_id", hospitalSetVO.getPlanId())
                 .orderByAsc("plan_id", "order_no");
         List<PlanDetail> sysSetData = list(sysSetInfo);
-        List<PlanDetailDTO> data = BeanUtil.listCopyTo(sysSetData, PlanDetailDTO.class);
-        return data;
+        //List<PlanDetailDTO> data = BeanUtil.listCopyTo(sysSetData, PlanDetailDTO.class);
+        //return data;
+        List<PlanDetailDTO> sysSetInfoData = BeanUtil.listCopyTo(sysSetData, PlanDetailDTO.class);
+        List<PlanDetailDTO> planDetailParent = new ArrayList<>();//父级数据
+        List<PlanDetailDTO> planDetailSub = new ArrayList<>();//子级数据
+        //分离数据,-1分父级菜单
+        for (PlanDetailDTO dataDeta : sysSetInfoData) {
+            if (dataDeta.getParentId() == (-1)) {
+                planDetailParent.add(dataDeta);
+            } else {
+                planDetailSub.add(dataDeta);
+            }
+        }
+        //把子级数据,放在父级下
+        Map<Long, List<PlanDetailDTO>> mapParentId = planDetailSub.stream().collect(Collectors.groupingBy(PlanDetailDTO::getParentId));
+        for (Long key : mapParentId.keySet()) {
+            for (PlanDetailDTO sysPlanInfos : planDetailParent) {
+                if (sysPlanInfos.getId().equals(key)) {
+                    sysPlanInfos.setPlanDetails(mapParentId.get(key));
+                }
+            }
+        }
+        return planDetailParent;
     }
 
     public List<PlanDetailDTO> getByPlanIds(List<Long> planIds) {
@@ -69,29 +93,44 @@ public class PlanDetailFacade extends PlanDetailServiceImpl {
     }
 
     public boolean savePlanDetail(PlanDetailSaveVO planDetailSaveVO) {
+        boolean res = false;
         Date now = DateUtil.now();
-        UpdateWrapper<PlanDetail> planDetailUpdate = new UpdateWrapper<>();
-        planDetailUpdate.eq("plan_id", planDetailSaveVO.getPlanId())
-                .eq("hospital_id", SysUserUtils.getCurrentHospitalID())//医院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(SysUserUtils.getCurrentPrincipleID());
-            planDetail.setModifier(SysUserUtils.getCurrentPrincipleID());
-            planDetail.setGmtModified(now);
-            planDetailList.add(planDetail);
+        QueryWrapper<PlanDetail> planDetailQuery = new QueryWrapper<>();
+        planDetailQuery.eq("plan_id", planDetailSaveVO.getPlanId())
+                .eq("hospital_id", planDetailSaveVO.getHospitalId())//医院id
+                .eq("is_deleted", IsDeleteEnum.N.getKey());
+        // 删除所有的配置
+        res = remove(planDetailQuery);
+        //先保存父类
+        List<PlanDetail> planDetailParentNew = new ArrayList<>();
+        List<HospitalPlanDetailSaveVO> planDetailParent = planDetailSaveVO.getPlanDetailParent();
+        for (HospitalPlanDetailSaveVO planDetailSave : planDetailParent) {
+            PlanDetail planDetails = new PlanDetail();
+            BeanUtil.copyProperties(planDetailSave, planDetails);
+            planDetails.setParentId(-1L);
+            planDetails.setGmtCreate(now);
+            planDetails.setCreator(SysUserUtils.getCurrentPrincipleID());
+            planDetails.setModifier(SysUserUtils.getCurrentPrincipleID());
+            planDetails.setGmtModified(now);
+            List<PlanDetailSubSaveVO> data = planDetailSave.getPlanDetailSub();
+            planDetailService.save(planDetails);
+            List<PlanDetail> planDetailList = new ArrayList<>();
+            //再保存子类
+            for (PlanDetailSubSaveVO planDetailVO : data) {
+                PlanDetail planDetail = new PlanDetail();
+                BeanUtil.copyProperties(planDetailVO, planDetail);
+                planDetail.setPlanId(planDetailSaveVO.getPlanId());
+                planDetail.setParentId(planDetails.getId());
+                planDetail.setGmtCreate(now);
+                planDetail.setCreator(SysUserUtils.getCurrentPrincipleID());
+                planDetail.setModifier(SysUserUtils.getCurrentPrincipleID());
+                planDetail.setGmtModified(now);
+                planDetailList.add(planDetail);
+            }
+            res = planDetailService.saveBatch(planDetailList);
         }
-        return planDetailService.saveBatch(planDetailList);
+
+        return res;
     }
 
     public boolean cancelPlanDetail(PlanDetailCancelVO planDetailCancelVO) {

+ 20 - 0
src/main/java/com/diagbot/facade/PlanFacade.java

@@ -81,6 +81,26 @@ public class PlanFacade extends PlanServiceImpl {
         hospitalSetVO.setHospitalId(hospitalId);
         hospitalSetVO.setPlanId(planId);
         List<PlanDetailDTO> sysSetInfoData = sysSetFacade.getSysSetInfoData(hospitalSetVO);
+       /* List<PlanDetailDTO> planDetailParent = new ArrayList<>();//父级数据
+        List<PlanDetailDTO> planDetailSub = new ArrayList<>();//子级数据
+        //分离数据,-1分父级菜单
+        for (PlanDetailDTO dataDeta : sysSetInfoData) {
+            if (dataDeta.getParentId() == (-1)) {
+                planDetailParent.add(dataDeta);
+            } else {
+                planDetailSub.add(dataDeta);
+            }
+        }
+        //把子级数据,放在父级下
+        Map<Long, List<PlanDetailDTO>> mapParentId = planDetailSub.stream().collect(Collectors.groupingBy(PlanDetailDTO::getParentId));
+        for (Long key : mapParentId.keySet()) {
+            for (PlanDetailDTO sysPlanInfos : planDetailParent) {
+                if (sysPlanInfos.getId().equals(key)) {
+                    sysPlanInfos.setPlanDetails(mapParentId.get(key));
+                }
+            }
+        }*/
+        //把父级数据放在方案下
         Map<Long, List<PlanDetailDTO>> dataMap = sysSetInfoData.stream().collect(Collectors.groupingBy(PlanDetailDTO::getPlanId));
         for (Long key : dataMap.keySet()) {
             for (SysPlanInfoDTO sysPlanInfos : sysPlanInfoDTO) {

+ 6 - 0
src/main/java/com/diagbot/vo/HospitalPlanDetailSaveVO.java

@@ -3,6 +3,8 @@ package com.diagbot.vo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * @author wangfeng
  * @Description:
@@ -11,6 +13,8 @@ import lombok.Setter;
 @Setter
 @Getter
 public class HospitalPlanDetailSaveVO {
+
+    private Long planId;
     /**
      * 医院编码
      */
@@ -47,4 +51,6 @@ public class HospitalPlanDetailSaveVO {
      * 备注
      */
     private String remark;
+
+    private List<PlanDetailSubSaveVO> planDetailSub;
 }

+ 1 - 0
src/main/java/com/diagbot/vo/HospitalSetVO.java

@@ -15,4 +15,5 @@ import java.util.List;
 public class HospitalSetVO extends HospitalBaseVO {
     private List<Long> planId;
     private String code;
+    private Long parentId;
 }

+ 7 - 1
src/main/java/com/diagbot/vo/PlanDetailSaveVO.java

@@ -13,5 +13,11 @@ import java.util.List;
 @Getter
 public class PlanDetailSaveVO {
     private Long planId;
-    private  List<HospitalPlanDetailSaveVO> planDetail;
+    /**
+     * 医院编码
+     */
+    private Long hospitalId;
+
+    private  List<HospitalPlanDetailSaveVO> planDetailParent;
+
 }

+ 52 - 0
src/main/java/com/diagbot/vo/PlanDetailSubSaveVO.java

@@ -0,0 +1,52 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-08-13 13:26
+ */
+@Setter
+@Getter
+public class PlanDetailSubSaveVO {
+    private Long planId;
+    /**
+     * 医院编码
+     */
+    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;
+
+}

+ 2 - 2
src/main/java/com/diagbot/web/PlanController.java

@@ -59,14 +59,14 @@ public class PlanController {
         return RespDTO.onSuc(res);
     }
 
-    @ApiOperation(value = "分页获取方案配置信息[by:wangfeng]", notes = "分页获取方案配置信息")
+    /*@ApiOperation(value = "分页获取方案配置信息[by:wangfeng]", notes = "分页获取方案配置信息")
     @PostMapping("/getPlanInfoPages")
     @SysLogger("getPlanInfoPages")
     @Transactional
     public RespDTO<IPage<PlanInfoPageDTO>> getPlanInfoPages(@RequestBody HospitalPlanPageVO hospitalPlanPageVO) {
         IPage<PlanInfoPageDTO> data = planFacade.getPlanInfoPage(hospitalPlanPageVO);
         return RespDTO.onSuc(data);
-    }
+    }*/
 
     @ApiOperation(value = "删除方案配置信息[by:wangfeng]", notes = "删除方案配置信息")
     @PostMapping("/cancelPlanDatas")

+ 1 - 1
src/main/java/com/diagbot/web/TokenHospitalController.java

@@ -29,7 +29,6 @@ import javax.validation.Valid;
 @RequestMapping("/sys/tokenHospital")
 @Api(value = "医院token信息API", tags = { "医院token信息API" })
 @SuppressWarnings("unchecked")
-@ApiIgnore
 public class TokenHospitalController {
 
     @Autowired
@@ -48,6 +47,7 @@ public class TokenHospitalController {
             notes = "")
     @PostMapping("/refreshDays")
     @SysLogger("refreshDays")
+    @ApiIgnore
     public RespDTO<Boolean> refreshDays() {
         Boolean res = tokenHospitalFacade.refreshDays();
         return RespDTO.onSuc(res);

+ 1 - 0
src/main/resources/mapper/PlanDetailMapper.xml

@@ -12,6 +12,7 @@
         <result column="modifier" property="modifier" />
         <result column="hospital_id" property="hospitalId" />
         <result column="plan_id" property="planId" />
+        <result column="parent_id" property="parentId" />
         <result column="name" property="name" />
         <result column="code" property="code" />
         <result column="value" property="value" />