|
@@ -1,19 +1,8 @@
|
|
|
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
|
|
@@ -21,96 +10,5 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@Component
|
|
|
public class SysRegionFacade extends SysRegionServiceImpl {
|
|
|
- @Autowired
|
|
|
- private SysRegionDeptServiceImpl sysRegionDeptServiceImpl;
|
|
|
- public Object saveWard(SysRegionVo sysRegionVo){
|
|
|
- Boolean flag = false;
|
|
|
- //校验病区和科室
|
|
|
- Object sysRegionObj = getSysRegion(sysRegionVo);
|
|
|
- if("1".equals(sysRegionObj.toString()) || "0".equals(sysRegionObj.toString())){
|
|
|
- return sysRegionObj;
|
|
|
- }
|
|
|
- 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 Object getSysRegion(SysRegionVo sysRegionVo){
|
|
|
- //禁用校验
|
|
|
- if(null != sysRegionVo.getId() && 1 == sysRegionVo.getMark()){
|
|
|
- List<Long> collectList = sysRegionDeptServiceImpl.lambdaQuery()
|
|
|
- .eq(SysRegionDept::getRegionId, sysRegionVo.getId())
|
|
|
- .list().stream().map(obj -> obj.getDeptId()).collect(Collectors.toList());
|
|
|
- if(ListUtil.isNotEmpty(collectList) && collectList.size()>0){
|
|
|
- //当前病区存在与之关联的科室
|
|
|
- return 1;
|
|
|
- }
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- //新增-校验重复数据
|
|
|
- if(null == sysRegionVo.getId()){
|
|
|
- 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("当前病区关联科室重复");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- 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;
|
|
|
- }
|
|
|
}
|