diff --git a/src/main/java/com/ccsens/carbasics/service/ManagementService.java b/src/main/java/com/ccsens/carbasics/service/ManagementService.java index 6a1bbfc..c78ad68 100644 --- a/src/main/java/com/ccsens/carbasics/service/ManagementService.java +++ b/src/main/java/com/ccsens/carbasics/service/ManagementService.java @@ -12,15 +12,14 @@ 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.*; -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.cloudutil.bean.tall.dto.ProjectDto; +import com.ccsens.cloudutil.feign.Tall3FeignClient; 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; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -52,6 +51,10 @@ public class ManagementService implements IManagementService { @Resource private OrganizationPositionTypeRelationDao positionTypeRelationDao; @Resource + private OrganizationMemberPositionDao memberPositionDao; + @Resource + private Tall3FeignClient tall3FeignClient; + @Resource private Snowflake snowflake; @Override @@ -169,6 +172,11 @@ public class ManagementService implements IManagementService { BeanUtil.copyProperties(param,organization); organizationDao.updateByPrimaryKeySelective(organization); //TODO 同步修改tall项目名称 + ProjectDto.SaveProjectDto saveProjectDto = new ProjectDto.SaveProjectDto(); + saveProjectDto.setId(param.getId()); + saveProjectDto.setName(organization.getName()); + log.info("调用feign修改项目名称:{}",saveProjectDto); + tall3FeignClient.saveProjectList(saveProjectDto); } @@ -200,10 +208,29 @@ public class ManagementService implements IManagementService { @Override public void delDepartment(ManagementDto.DelDepartment param, Long userId) { + OrganizationDepartmentParentExample departmentParentExample = new OrganizationDepartmentParentExample(); + departmentParentExample.createCriteria().andParentIdEqualTo(param.getDid()); + List departmentParentList = departmentParentDao.selectByExample(departmentParentExample); + if (CollectionUtil.isNotEmpty(departmentParentList)) { + throw new BaseException(DefaultCodeError.HAVE_SON_NOT_DEL); + } + ManagementVo.HospitalData sonDepartmentData = organizationDao.querySonDepartmentData(param.getDid()); + if (ObjectUtil.isNull(sonDepartmentData)) { + throw new BaseException(DefaultCodeError.NOT_HAVE_DEPARTMENT); + } + if (CollectionUtil.isNotEmpty(sonDepartmentData.getPositionInfoList())) { + throw new BaseException(DefaultCodeError.DEPARTMENT_HAVE_POSITION); + } OrganizationDepartment department = new OrganizationDepartment(); department.setId(param.getDid()); department.setRecStatus((byte) 2); departmentDao.updateByPrimaryKeySelective(department); + //删除父子级 + OrganizationDepartmentParentExample delDepartmentParentExample = new OrganizationDepartmentParentExample(); + delDepartmentParentExample.createCriteria().andDepartmentIdEqualTo(param.getDid()); + OrganizationDepartmentParent departmentParent = new OrganizationDepartmentParent(); + departmentParent.setRecStatus((byte) 2); + departmentParentDao.updateByExampleSelective(departmentParent,delDepartmentParentExample); } @Override @@ -219,6 +246,13 @@ public class ManagementService implements IManagementService { @Override public void delPosition(ManagementDto.DelPosition param, Long userId) { + OrganizationMemberPositionExample memberPositionExample = new OrganizationMemberPositionExample(); + memberPositionExample.createCriteria().andPositionIdEqualTo(param.getPositionId()); + List memberPositionList = memberPositionDao.selectByExample(memberPositionExample); + if (CollectionUtil.isNotEmpty(memberPositionList)) { + throw new BaseException(DefaultCodeError.POSITION_HAVE_MEMBER); + } + OrganizationPosition position = new OrganizationPosition(); position.setId(param.getPositionId()); position.setRecStatus((byte) 2); diff --git a/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java b/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java index e8886a4..68e5457 100644 --- a/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java +++ b/src/main/java/com/ccsens/carbasics/service/QuestionnaireService.java @@ -78,7 +78,7 @@ public class QuestionnaireService implements IQuestionnaireService{ @Resource private OrganizationPositionTypeDao positionTypeDao; @Resource - private OrganizationPositionTypeRelationMapper positionTypeRelationMapper; + private OrganizationPositionTypeRelationDao positionTypeRelationMapper; @Override public List queryArea(QuestionnaireDto.QueryArea param, Long userId) { @@ -423,9 +423,14 @@ public class QuestionnaireService implements IQuestionnaireService{ OrganizationDepartment departmentOne = new OrganizationDepartment(); departmentOne.setId(snowflake.nextId()); departmentOne.setOrganizationId(organization.getId()); - departmentOne.setCode(departmentTemplate.getCode()); - //TODO 比较code 如果code相等 使用departmentName departmentOne.setName(departmentTemplate.getName()); + //比较code 如果code相等 使用departmentName + if (StrUtil.isNotBlank(departmentCode)) { + departmentOne.setCode(departmentTemplate.getCode()); + if (departmentTemplate.getCode().equals(departmentCode)) { + departmentOne.setName(departmentName); + } + } departmentDao.insertSelective(departmentOne); if (departmentName.equals(departmentTemplate.getName())) { department = departmentOne; diff --git a/src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java b/src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java index 1622cbc..584fa4e 100644 --- a/src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java +++ b/src/main/java/com/ccsens/carbasics/util/DefaultCodeError.java @@ -54,6 +54,10 @@ public class DefaultCodeError extends CodeError { public static final Code FIRST_AID_AUDIT = new Code(507,"急救审核通过,数据不可修改", true); public static final Code OUT_HOSPITAL_AUDIT = new Code(508,"出院审核通过,数据不可修改", true); public static final Code HOSPITAL_NAME_REPEAT = new Code(509,"医院名称重复", true); + public static final Code HAVE_SON_NOT_DEL = new Code(510,"有下级不可删除", true); + public static final Code NOT_HAVE_DEPARTMENT = new Code(511,"部门不存在,请检查后重试", true); + public static final Code DEPARTMENT_HAVE_POSITION = new Code(512,"请删除部门下的职位", true); + public static final Code POSITION_HAVE_MEMBER = new Code(513,"请删除职位下的成员", true); diff --git a/src/main/resources/mapper_dao/OrganizationDao.xml b/src/main/resources/mapper_dao/OrganizationDao.xml index 3ffcf06..783f083 100644 --- a/src/main/resources/mapper_dao/OrganizationDao.xml +++ b/src/main/resources/mapper_dao/OrganizationDao.xml @@ -982,6 +982,7 @@ FROM t_organization_department AS od LEFT JOIN t_organization_position AS op ON od.id = op.department_id + AND op.rec_status = 0 LEFT JOIN t_organization_position_type_relation AS ptr ON ptr.position_id = op.id AND ptr.rec_status = 0 LEFT JOIN t_organization_position_type AS pt ON ptr.position_type_id = pt.id @@ -993,7 +994,7 @@ WHERE od.id = #{did} AND od.rec_status = 0 - AND op.rec_status = 0 +