|
|
@ -1,17 +1,24 @@ |
|
|
|
package com.ccsens.carbasics.service; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.lang.Snowflake; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.ccsens.carbasics.bean.dto.ManagementDto; |
|
|
|
import com.ccsens.carbasics.bean.po.OrganizationDepartment; |
|
|
|
import com.ccsens.carbasics.bean.po.OrganizationDepartmentParent; |
|
|
|
import com.ccsens.carbasics.bean.po.OrganizationLevel; |
|
|
|
import com.ccsens.carbasics.bean.po.OrganizationLevelExample; |
|
|
|
import com.ccsens.carbasics.bean.po.*; |
|
|
|
import com.ccsens.carbasics.bean.vo.AccountVo; |
|
|
|
import com.ccsens.carbasics.bean.vo.ManagementVo; |
|
|
|
import com.ccsens.carbasics.persist.dao.OrganizationDao; |
|
|
|
import com.ccsens.carbasics.persist.dao.OrganizationDepartmentDao; |
|
|
|
import com.ccsens.carbasics.persist.dao.OrganizationDepartmentParentDao; |
|
|
|
import com.ccsens.carbasics.persist.dao.OrganizationLevelDao; |
|
|
|
import com.ccsens.carbasics.persist.dao.*; |
|
|
|
import com.ccsens.carbasics.persist.mapper.OrganizationLevelMapper; |
|
|
|
import com.ccsens.carbasics.persist.mapper.OrganizationPositionTypeRelationMapper; |
|
|
|
import com.ccsens.carbasics.util.Constant; |
|
|
|
import com.ccsens.carbasics.util.DefaultCodeError; |
|
|
|
import com.ccsens.common.bean.po.ConstantExample; |
|
|
|
import com.ccsens.common.persist.mapper.ConstantMapper; |
|
|
|
import com.ccsens.util.exception.BaseException; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Repository; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
@ -34,6 +41,18 @@ public class ManagementService implements IManagementService { |
|
|
|
private OrganizationDao organizationDao; |
|
|
|
@Resource |
|
|
|
private OrganizationDepartmentParentDao departmentParentDao; |
|
|
|
@Resource |
|
|
|
private ConstantMapper constantMapper; |
|
|
|
@Resource |
|
|
|
private OrganizationPositionTypeDao positionTypeDao; |
|
|
|
@Resource |
|
|
|
private OrganizationPositionDao positionDao; |
|
|
|
@Resource |
|
|
|
private OrganizationDepartmentDao departmentDao; |
|
|
|
@Resource |
|
|
|
private OrganizationPositionTypeRelationMapper positionTypeRelationMapper; |
|
|
|
@Resource |
|
|
|
private Snowflake snowflake; |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<ManagementVo.LevelInfo> queryLevel(Long userId) { |
|
|
@ -55,7 +74,6 @@ public class ManagementService implements IManagementService { |
|
|
|
} |
|
|
|
return hospitalData; |
|
|
|
} |
|
|
|
|
|
|
|
public void querySonDepartment(ManagementVo.HospitalData hospitalDatum) { |
|
|
|
List<Long> sonIdList = departmentParentDao.querySonDepartmentId(hospitalDatum.getDid()); |
|
|
|
log.info("部门{}的下级部门{}:",hospitalDatum.getDid(),sonIdList); |
|
|
@ -71,4 +89,148 @@ public class ManagementService implements IManagementService { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void addHospital(ManagementDto.AddHospital param, Long userId) { |
|
|
|
Integer repeat = organizationDao.queryNameRepeat(param); |
|
|
|
if (1 <= repeat) { |
|
|
|
throw new BaseException(DefaultCodeError.HOSPITAL_NAME_REPEAT); |
|
|
|
} |
|
|
|
Organization organization = new Organization(); |
|
|
|
organization.setId(snowflake.nextId()); |
|
|
|
organization.setOrganizationType((byte) 3); |
|
|
|
organization.setName(param.getName()); |
|
|
|
organization.setLevelId(param.getLevelId()); |
|
|
|
organization.setProvinceId(param.getProvinceId()); |
|
|
|
organization.setCityId(param.getCityId()); |
|
|
|
organization.setCountyId(param.getCountyId()); |
|
|
|
organization.setOperator(userId); |
|
|
|
organizationDao.insertSelective(organization); |
|
|
|
addTemplateForHospital(organization.getId(),userId); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void addTemplateForHospital(Long hospitalId,Long userId) { |
|
|
|
//查询常量
|
|
|
|
ConstantExample constantExample = new ConstantExample(); |
|
|
|
constantExample.createCriteria().andBusinessTypeEqualTo((byte) 2) |
|
|
|
.andTKeyEqualTo(Constant.DEPARTMENT_POSITION_KEY); |
|
|
|
List<com.ccsens.common.bean.po.Constant> constantList = constantMapper.selectByExample(constantExample); |
|
|
|
log.info("查询到的模板部门与职位:{}",constantList); |
|
|
|
if (CollectionUtil.isNotEmpty(constantList)) { |
|
|
|
JSONArray jsonArray = JSONObject.parseArray(constantList.get(0).gettValue()); |
|
|
|
List<AccountVo.DepartmentList> departmentList = jsonArray.toJavaList(AccountVo.DepartmentList.class); |
|
|
|
log.info("给机构{}添加模板部门与职位{}",hospitalId,departmentList); |
|
|
|
for (AccountVo.DepartmentList department : departmentList) { |
|
|
|
OrganizationDepartment newDepartment = new OrganizationDepartment(); |
|
|
|
newDepartment.setId(snowflake.nextId()); |
|
|
|
newDepartment.setName(department.getDepartmentName()); |
|
|
|
newDepartment.setCode(department.getDepartmentCode()); |
|
|
|
newDepartment.setOrganizationId(hospitalId); |
|
|
|
newDepartment.setOperator(userId); |
|
|
|
if (CollectionUtil.isNotEmpty(department.getPositions())) { |
|
|
|
for (AccountVo.Position position : department.getPositions()) { |
|
|
|
OrganizationPosition newPosition = new OrganizationPosition(); |
|
|
|
newPosition.setId(snowflake.nextId()); |
|
|
|
newPosition.setName(position.getPositionName()); |
|
|
|
newPosition.setRoleName(position.getPositionName()); |
|
|
|
newPosition.setDepartmentId(newDepartment.getId()); |
|
|
|
newPosition.setOperator(userId); |
|
|
|
positionDao.insertSelective(newPosition); |
|
|
|
//绑定角色
|
|
|
|
OrganizationPositionType positionType = positionTypeDao.queryByCode(position.getPositionCode()); |
|
|
|
if (ObjectUtil.isNotNull(positionType)) { |
|
|
|
OrganizationPositionTypeRelation positionTypeRelation = new OrganizationPositionTypeRelation(); |
|
|
|
positionTypeRelation.setId(snowflake.nextId()); |
|
|
|
positionTypeRelation.setPositionId(newPosition.getId()); |
|
|
|
positionTypeRelation.setPositionTypeId(positionType.getId()); |
|
|
|
positionTypeRelationMapper.insertSelective(positionTypeRelation); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateHospital(ManagementDto.UpdateHospital param, Long userId) { |
|
|
|
if (StrUtil.isNotBlank(param.getName())) { |
|
|
|
ManagementDto.AddHospital addHospital = new ManagementDto.AddHospital(); |
|
|
|
BeanUtil.copyProperties(param,addHospital); |
|
|
|
Integer repeat = organizationDao.queryNameRepeat(addHospital); |
|
|
|
if (1 <= repeat) { |
|
|
|
throw new BaseException(DefaultCodeError.HOSPITAL_NAME_REPEAT); |
|
|
|
} |
|
|
|
} |
|
|
|
Organization organization = new Organization(); |
|
|
|
organization.setId(param.getId()); |
|
|
|
BeanUtil.copyProperties(param,organization); |
|
|
|
organizationDao.updateByPrimaryKeySelective(organization); |
|
|
|
//TODO 同步修改tall项目名称
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void addDepartment(ManagementDto.AddDepartment param, Long userId) { |
|
|
|
OrganizationDepartment department = new OrganizationDepartment(); |
|
|
|
department.setId(snowflake.nextId()); |
|
|
|
department.setName(param.getDepartmentName()); |
|
|
|
department.setOrganizationId(param.getOid()); |
|
|
|
departmentDao.insertSelective(department); |
|
|
|
if (ObjectUtil.isNotNull(param.getParentId()) && 0 != param.getParentId()) { |
|
|
|
OrganizationDepartmentParent departmentParent = new OrganizationDepartmentParent(); |
|
|
|
departmentParent.setId(snowflake.nextId()); |
|
|
|
departmentParent.setDepartmentId(department.getId()); |
|
|
|
departmentParent.setParentId(param.getParentId()); |
|
|
|
departmentParent.setOperator(userId); |
|
|
|
departmentParentDao.insertSelective(departmentParent); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateDepartment(ManagementDto.UpdateDepartment param, Long userId) { |
|
|
|
OrganizationDepartment department = new OrganizationDepartment(); |
|
|
|
department.setId(param.getDid()); |
|
|
|
department.setName(param.getDepartmentName()); |
|
|
|
departmentDao.updateByPrimaryKeySelective(department); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void delDepartment(ManagementDto.DelDepartment param, Long userId) { |
|
|
|
OrganizationDepartment department = new OrganizationDepartment(); |
|
|
|
department.setId(param.getDid()); |
|
|
|
department.setRecStatus((byte) 2); |
|
|
|
departmentDao.updateByPrimaryKeySelective(department); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void addPosition(ManagementDto.AddPosition param, Long userId) { |
|
|
|
OrganizationPosition position = new OrganizationPosition(); |
|
|
|
position.setId(snowflake.nextId()); |
|
|
|
position.setName(param.getPositionName()); |
|
|
|
position.setRoleName(param.getPositionName()); |
|
|
|
position.setDepartmentId(param.getDepartmentId()); |
|
|
|
positionDao.insertSelective(position); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void delPosition(ManagementDto.DelPosition param, Long userId) { |
|
|
|
OrganizationPosition position = new OrganizationPosition(); |
|
|
|
position.setId(param.getPositionId()); |
|
|
|
position.setRecStatus((byte) 2); |
|
|
|
positionDao.updateByPrimaryKeySelective(position); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updatePosition(ManagementDto.UpdatePosition param, Long userId) { |
|
|
|
OrganizationPosition position = new OrganizationPosition(); |
|
|
|
position.setId(param.getPositionId()); |
|
|
|
position.setRoleName(param.getPositionName()); |
|
|
|
position.setName(param.getPositionName()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|