|
@@ -19,10 +19,15 @@ import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.util.UserUtils;
|
|
|
import com.diagbot.vo.HospitalPlanCancelVO;
|
|
|
+import com.diagbot.vo.HospitalPlanDetailSaveVO;
|
|
|
+import com.diagbot.vo.HospitalPlanIdVO;
|
|
|
import com.diagbot.vo.HospitalPlanPageVO;
|
|
|
import com.diagbot.vo.HospitalPlanSaveVO;
|
|
|
import com.diagbot.vo.HospitalPlanVO;
|
|
|
import com.diagbot.vo.HospitalSetVO;
|
|
|
+import com.diagbot.vo.PlanDetailCancelVO;
|
|
|
+import com.diagbot.vo.PlanDetailSaveVO;
|
|
|
+import com.diagbot.vo.PlanDetailSubSaveVO;
|
|
|
import com.diagbot.vo.PlanRevStopVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -51,6 +56,7 @@ public class PlanFacade extends PlanServiceImpl {
|
|
|
* @return
|
|
|
*/
|
|
|
public boolean savePlanInfoDatas(HospitalPlanSaveVO hospitalPlanSaveVO) {
|
|
|
+ Long planId = hospitalPlanSaveVO.getId();
|
|
|
Date now = DateUtil.now();
|
|
|
boolean res = false;
|
|
|
// 校验名称是否相同
|
|
@@ -58,18 +64,23 @@ public class PlanFacade extends PlanServiceImpl {
|
|
|
.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, "相同【医院】下,方案名称已存在");
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该方案名称已存在");
|
|
|
+ }
|
|
|
+ int countTow = this.count(new QueryWrapper<Plan>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("hospital_id", hospitalPlanSaveVO.getHospitalId())
|
|
|
+ .eq("plan_code", hospitalPlanSaveVO.getPlanCode())
|
|
|
+ .ne("id", hospitalPlanSaveVO.getId() == null ? -1 : hospitalPlanSaveVO.getId()));
|
|
|
+ if (countTow > 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("gmt_create", now)
|
|
|
- .set("creator", UserUtils.getCurrentPrincipleID())
|
|
|
.set("modifier", UserUtils.getCurrentPrincipleID())
|
|
|
.set("hospital_id", hospitalPlanSaveVO.getHospitalId())
|
|
|
.set("plan_name", hospitalPlanSaveVO.getPlanName())
|
|
@@ -84,7 +95,35 @@ public class PlanFacade extends PlanServiceImpl {
|
|
|
plan.setCreator(UserUtils.getCurrentPrincipleID());
|
|
|
plan.setModifier(UserUtils.getCurrentPrincipleID());
|
|
|
res = this.save(plan);
|
|
|
+ planId = plan.getId();
|
|
|
+ }
|
|
|
+ PlanDetailSaveVO planDetailSaveVO = new PlanDetailSaveVO();
|
|
|
+ planDetailSaveVO.setPlanId(planId);
|
|
|
+ planDetailSaveVO.setHospitalId(hospitalPlanSaveVO.getHospitalId());
|
|
|
+ List<HospitalPlanDetailSaveVO> planDetailParentNew = new ArrayList<>();
|
|
|
+ List<HospitalPlanDetailSaveVO> planDetailParent = hospitalPlanSaveVO.getPlanDetailParent();
|
|
|
+ if (ListUtil.isNotEmpty(planDetailParent)) {
|
|
|
+ for (HospitalPlanDetailSaveVO data : planDetailParent) {
|
|
|
+ HospitalPlanDetailSaveVO dataNew = new HospitalPlanDetailSaveVO();
|
|
|
+ BeanUtil.copyProperties(data, dataNew);
|
|
|
+ dataNew.setPlanId(planId);
|
|
|
+ List<PlanDetailSubSaveVO> planDetailSubNew = new ArrayList<>();
|
|
|
+ List<PlanDetailSubSaveVO> planDetailSub = data.getPlanDetailSub();
|
|
|
+ if (ListUtil.isNotEmpty(planDetailSub)) {
|
|
|
+ for (PlanDetailSubSaveVO dataSub : planDetailSub) {
|
|
|
+ PlanDetailSubSaveVO dataSubNew = new PlanDetailSubSaveVO();
|
|
|
+ BeanUtil.copyProperties(dataSub, dataSubNew);
|
|
|
+ dataSubNew.setPlanId(planId);
|
|
|
+ planDetailSubNew.add(dataSubNew);
|
|
|
+ }
|
|
|
+ dataNew.setPlanDetailSub(planDetailSubNew);
|
|
|
+ planDetailParentNew.add(dataNew);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ planDetailSaveVO.setPlanDetailParent(planDetailParentNew);
|
|
|
+ res = planDetailFacade.savePlanDetail(planDetailSaveVO);
|
|
|
return res;
|
|
|
}
|
|
|
|
|
@@ -137,17 +176,26 @@ public class PlanFacade extends PlanServiceImpl {
|
|
|
}
|
|
|
|
|
|
public boolean cancelPlanData(HospitalPlanCancelVO hospitalPlanCancelVO) {
|
|
|
+ PlanDetailCancelVO planDetailCancelVO = new PlanDetailCancelVO();
|
|
|
+ planDetailCancelVO.setHospitalId(hospitalPlanCancelVO.getHospitalId());
|
|
|
+ planDetailCancelVO.setPlanId(hospitalPlanCancelVO.getPlanId());
|
|
|
boolean res = false;
|
|
|
// 1.先判断数据是否存在有效
|
|
|
- checkPlan(hospitalPlanCancelVO.getPlanId());
|
|
|
+ Plan plan = checkPlan(hospitalPlanCancelVO.getPlanId());
|
|
|
+ if (plan.getPlanStatus() == 1) {
|
|
|
+ throw new CommonException(CommonErrorCode.FAIL, "该方案启用中,不能删除!");
|
|
|
+ }
|
|
|
UpdateWrapper<Plan> planNew = new UpdateWrapper<>();
|
|
|
planNew
|
|
|
.eq("id", hospitalPlanCancelVO.getPlanId())
|
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("hospital_id", hospitalPlanCancelVO.getHospitalId())
|
|
|
.set("is_deleted", IsDeleteEnum.Y.getKey())
|
|
|
.set("modifier", UserUtils.getCurrentPrincipleID())
|
|
|
.set("gmt_modified", DateUtil.now());
|
|
|
res = update(new Plan(), planNew);
|
|
|
+ //再删除明细
|
|
|
+ planDetailFacade.cancelPlanDetail(planDetailCancelVO);
|
|
|
|
|
|
return res;
|
|
|
}
|
|
@@ -186,13 +234,13 @@ public class PlanFacade extends PlanServiceImpl {
|
|
|
QueryWrapper<Plan> planFand = new QueryWrapper<>();
|
|
|
planFand.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
.eq("plan_code", "plan_default")
|
|
|
- .eq("hospital_id", 0L);
|
|
|
+ .eq("hospital_id", -1L);
|
|
|
Plan plan = getOne(planFand, false);
|
|
|
BeanUtil.copyProperties(plan, data);
|
|
|
List<Long> planId = new ArrayList<>();
|
|
|
planId.add(plan.getId());
|
|
|
HospitalSetVO hospitalSetVO = new HospitalSetVO();
|
|
|
- hospitalSetVO.setHospitalId(0L);
|
|
|
+ hospitalSetVO.setHospitalId(-1L);
|
|
|
hospitalSetVO.setPlanId(planId);
|
|
|
List<PlanDetailDTO> sysSetInfoData = planDetailFacade.getSysSetInfoData(hospitalSetVO);
|
|
|
data.setPlanDetailDefault(sysSetInfoData);
|
|
@@ -200,7 +248,7 @@ public class PlanFacade extends PlanServiceImpl {
|
|
|
}
|
|
|
|
|
|
public List<PlanInfoPagesDTO> getSysPlanInfoData(HospitalPlanVO hospitalPlanVO) {
|
|
|
- //查询该医院有没有相关方案配置, 要是没有取默认的
|
|
|
+ //查询该医院有没有相关方案配置
|
|
|
List<PlanInfoPagesDTO> sysPlanInfoDTO = new ArrayList<>();
|
|
|
QueryWrapper<Plan> sysPlanInfo = new QueryWrapper<>();
|
|
|
sysPlanInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
@@ -215,26 +263,51 @@ public class PlanFacade extends PlanServiceImpl {
|
|
|
for (PlanInfoPagesDTO data : sysPlanInfoDTO) {
|
|
|
planId.add(data.getId());
|
|
|
}
|
|
|
- } else {
|
|
|
- QueryWrapper<Plan> sysPlandefault = new QueryWrapper<>();
|
|
|
- sysPlandefault.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
- sysPlandefault.eq("hospital_id", -1);
|
|
|
- sysPlandefault.eq(StringUtil.isNotBlank(hospitalPlanVO.getPlanCode()), "plan_code", hospitalPlanVO.getPlanCode());
|
|
|
- sysPlandefault.eq("plan_status", StatusEnum.Enable.getKey());
|
|
|
- List<Plan> sysPlandefaultData = list(sysPlandefault);
|
|
|
- if (ListUtil.isNotEmpty(sysPlandefaultData)) {
|
|
|
- sysPlanInfoDTO = BeanUtil.listCopyTo(sysPlandefaultData, PlanInfoPagesDTO.class);
|
|
|
- for (PlanInfoPagesDTO data : sysPlanInfoDTO) {
|
|
|
- planId.add(data.getId());
|
|
|
+ }
|
|
|
+ if (ListUtil.isEmpty(planId)) {
|
|
|
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医院没有配置方案,请先配置方案!");
|
|
|
+ }
|
|
|
+ HospitalSetVO hospitalSetVO = new HospitalSetVO();
|
|
|
+ hospitalSetVO.setHospitalId(hospitalId);
|
|
|
+ hospitalSetVO.setPlanId(planId);
|
|
|
+ List<PlanDetailDTO> sysSetInfoData = planDetailFacade.getSysSetInfoData(hospitalSetVO);
|
|
|
+ //把父级和子级数据sysSetInfoData放在方案下
|
|
|
+ Map<Long, List<PlanDetailDTO>> dataMap = sysSetInfoData.stream().collect(Collectors.groupingBy(PlanDetailDTO::getPlanId));
|
|
|
+ for (Long key : dataMap.keySet()) {
|
|
|
+ for (PlanInfoPagesDTO sysPlanInfos : sysPlanInfoDTO) {
|
|
|
+ if (sysPlanInfos.getId().equals(key)) {
|
|
|
+ sysPlanInfos.setSysSetInfo(dataMap.get(key));
|
|
|
}
|
|
|
}
|
|
|
- hospitalId = -1L;
|
|
|
+ }
|
|
|
+
|
|
|
+ return sysPlanInfoDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<PlanInfoPagesDTO> getPlanInfoIds(HospitalPlanIdVO hospitalPlanIdVO) {
|
|
|
+ //查询该医院有没有相关方案配置
|
|
|
+ List<PlanInfoPagesDTO> sysPlanInfoDTO = new ArrayList<>();
|
|
|
+ QueryWrapper<Plan> sysPlanInfo = new QueryWrapper<>();
|
|
|
+ sysPlanInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
|
|
|
+ sysPlanInfo.eq("hospital_id", hospitalPlanIdVO.getHospitalId());
|
|
|
+ sysPlanInfo.eq("id", hospitalPlanIdVO.getId());
|
|
|
+ List<Plan> sysPlanInfoData = list(sysPlanInfo);
|
|
|
+ List<Long> planId = new ArrayList<>();
|
|
|
+ Long hospitalId = hospitalPlanIdVO.getHospitalId();
|
|
|
+ if (ListUtil.isNotEmpty(sysPlanInfoData)) {
|
|
|
+ sysPlanInfoDTO = BeanUtil.listCopyTo(sysPlanInfoData, PlanInfoPagesDTO.class);
|
|
|
+ for (PlanInfoPagesDTO data : sysPlanInfoDTO) {
|
|
|
+ planId.add(data.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(ListUtil.isEmpty(planId)){
|
|
|
+ throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在!");
|
|
|
}
|
|
|
HospitalSetVO hospitalSetVO = new HospitalSetVO();
|
|
|
hospitalSetVO.setHospitalId(hospitalId);
|
|
|
hospitalSetVO.setPlanId(planId);
|
|
|
List<PlanDetailDTO> sysSetInfoData = planDetailFacade.getSysSetInfoData(hospitalSetVO);
|
|
|
- //把父级数据放在方案下
|
|
|
+ //把父级和子级数据sysSetInfoData放在方案下
|
|
|
Map<Long, List<PlanDetailDTO>> dataMap = sysSetInfoData.stream().collect(Collectors.groupingBy(PlanDetailDTO::getPlanId));
|
|
|
for (Long key : dataMap.keySet()) {
|
|
|
for (PlanInfoPagesDTO sysPlanInfos : sysPlanInfoDTO) {
|