From 2613872722bca1778dd48884f88a5f8f54ffd672 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Thu, 1 Aug 2024 16:31:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=91=E5=AE=A4=E5=90=8D=E7=A7=B0=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../department/DepartmentController.java | 4 +- .../mapper/department/DepartmentMapper.java | 8 +++ .../department/IDepartmentService.java | 4 +- .../impl/DepartmentServiceImpl.java | 66 ++++++++++++++----- .../manage/department/DepartmentMapper.xml | 57 +++++++++------- 5 files changed, 93 insertions(+), 46 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/department/DepartmentController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/department/DepartmentController.java index ce9931db..9ccbfb2f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/department/DepartmentController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/department/DepartmentController.java @@ -105,7 +105,7 @@ public class DepartmentController extends BaseController { @Log(title = "科室信息", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody Department department) { - return toAjax(departmentService.insertDepartment(department)); + return departmentService.insertDepartment(department); } /** @@ -115,7 +115,7 @@ public class DepartmentController extends BaseController { @Log(title = "科室信息", businessType = BusinessType.UPDATE) @PutMapping("/edit") public AjaxResult edit(@RequestBody Department department) { - return toAjax(departmentService.updateDepartment(department)); + return departmentService.updateDepartment(department); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/department/DepartmentMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/department/DepartmentMapper.java index 04add12e..92a0e381 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/department/DepartmentMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/department/DepartmentMapper.java @@ -145,4 +145,12 @@ public interface DepartmentMapper { * @return 机构信息 */ List selectDepartmentByParentId(Long[] id); + + /** + * 根据上级机构id和科室名称查询数量 + * + * @param department 科室 + * @return int + */ + List selectDepartmentNameCount(Department department); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/IDepartmentService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/IDepartmentService.java index 321906d7..120ee817 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/IDepartmentService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/IDepartmentService.java @@ -52,7 +52,7 @@ public interface IDepartmentService { * @param department 科室信息 * @return 结果 */ - int insertDepartment(Department department); + AjaxResult insertDepartment(Department department); /** * 修改科室信息 @@ -60,7 +60,7 @@ public interface IDepartmentService { * @param department 科室信息 * @return 结果 */ - int updateDepartment(Department department); + AjaxResult updateDepartment(Department department); /** * 批量删除科室信息 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java index d99d9e66..2576a6c1 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java @@ -19,18 +19,19 @@ import com.xinelu.manage.vo.department.DepartmentBaseVo; import com.xinelu.manage.vo.department.DepartmentListVO; import com.xinelu.manage.vo.department.DepartmentVO; import com.xinelu.system.mapper.SysUserMapper; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; -import javax.annotation.Resource; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + /** * 科室信息Service业务层处理 @@ -46,8 +47,8 @@ public class DepartmentServiceImpl implements IDepartmentService { private RegexUtil regexUtil; @Resource private SysUserMapper sysUserMapper; - @Resource - private AgencyMapper agencyMapper; + @Resource + private AgencyMapper agencyMapper; @Resource private GenerateSystemCodeUtil generateSystemCodeUtil; @@ -111,14 +112,28 @@ public class DepartmentServiceImpl implements IDepartmentService { * @return 结果 */ @Override - public int insertDepartment(Department department) { + public AjaxResult insertDepartment(Department department) { if (Objects.isNull(department.getParentDepartmentId())) { department.setParentDepartmentId(0L); } department.setCreateTime(LocalDateTime.now()); department.setCreateBy(SecurityUtils.getUsername()); + //根据上级机构id查询 + List departmentList = departmentMapper.selectDepartmentNameCount(department); + if (CollectionUtils.isNotEmpty(departmentList)) { + //重名 + List departmentName = departmentList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getDepartmentName()) && department.getDepartmentName().equals(item.getDepartmentName())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(departmentName)) { + return AjaxResult.error("该" + department.getHospitalAgencyName() + "下,已存在名称为" + department.getDepartmentName() + "的科室!"); + } + //重编号 + List departmentCode = departmentList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getDepartmentCode()) && department.getDepartmentCode().equals(item.getDepartmentName())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(departmentCode)) { + return AjaxResult.error("该" + department.getHospitalAgencyName() + "下,已存在科室编号为" + department.getDepartmentName() + "的科室!"); + } + } //department.setDepartmentCode(Constants.DEPARTMENT_CODE + generateSystemCodeUtil.generateSystemCode(Constants.DEPARTMENT_CODE)); - return departmentMapper.insertDepartment(department); + return AjaxResult.success(departmentMapper.insertDepartment(department)); } /** @@ -128,13 +143,28 @@ public class DepartmentServiceImpl implements IDepartmentService { * @return 结果 */ @Override - public int updateDepartment(Department department) { + public AjaxResult updateDepartment(Department department) { + //上级科室是自己本身,取消上级科室 if (Objects.nonNull(department) && Objects.nonNull(department.getId()) && Objects.nonNull(department.getParentDepartmentId()) && department.getId().equals(department.getParentDepartmentId())) { department.setParentDepartmentId(null); } + //根据上级机构id查询 + List departmentList = departmentMapper.selectDepartmentNameCount(department); + if (CollectionUtils.isNotEmpty(departmentList)) { + //重名 + List departmentName = departmentList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getDepartmentName()) && department.getDepartmentName().equals(item.getDepartmentName()) && !department.getId().equals(item.getId())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(departmentName)) { + return AjaxResult.error("该" + department.getHospitalAgencyName() + "下,已存在名称为" + department.getDepartmentName() + "的科室!"); + } + //重编号 + List departmentCode = departmentList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getDepartmentCode()) && department.getDepartmentCode().equals(item.getDepartmentName()) && !department.getId().equals(item.getId())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(departmentCode)) { + return AjaxResult.error("该" + department.getHospitalAgencyName() + "下,已存在科室编号为" + department.getDepartmentName() + "的科室!"); + } + } department.setUpdateBy(SecurityUtils.getUsername()); department.setUpdateTime(LocalDateTime.now()); - return departmentMapper.updateDepartmentById(department); + return AjaxResult.success(departmentMapper.updateDepartmentById(department)); } /** @@ -245,9 +275,9 @@ public class DepartmentServiceImpl implements IDepartmentService { return AjaxResult.error("当前科室电话:" + department.getDepartmentPhone() + " 格式不正确,请重新录入!"); } List departmentName = importDataList.stream().filter(item -> StringUtils.isNotBlank(item.getDepartmentName())).map(Department::getDepartmentName).distinct().collect(Collectors.toList()); - //根据名称查询护理站基本信息 + //根据名称查询科室基本信息 List allDepartment = departmentMapper.getAllDepartmentInfo(departmentName); - //做差集,去除数据库中已经存在的护理站信息 + //做差集,去除数据库中已经存在的科室信息 List subtractList = new ArrayList<>(CollectionUtils.subtract(importDataList, allDepartment)); if (CollectionUtils.isEmpty(subtractList)) { return AjaxResult.success(); @@ -279,9 +309,9 @@ public class DepartmentServiceImpl implements IDepartmentService { @DataScope(agencyAlias = "d", deptAlias = "sp") @Override public DepartmentBaseVo selectListServicePackageNum(DepartmentDTO departmentDto) { - Agency agency = agencyMapper.selectAgencyById(departmentDto.getHospitalAgencyId()); - List departmentVOList = departmentMapper.selectListServicePackageNum(departmentDto); - return DepartmentBaseVo.builder().hospitalAgencyName(ObjectUtils.isEmpty(agency) ? "" : agency.getAgencyName()) - .deptNumList(departmentVOList).build(); + Agency agency = agencyMapper.selectAgencyById(departmentDto.getHospitalAgencyId()); + List departmentVOList = departmentMapper.selectListServicePackageNum(departmentDto); + return DepartmentBaseVo.builder().hospitalAgencyName(ObjectUtils.isEmpty(agency) ? "" : agency.getAgencyName()) + .deptNumList(departmentVOList).build(); } } diff --git a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml index 0afaadfc..f298ce16 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml @@ -496,76 +496,76 @@ update department parent_department_id = - #{parentDepartmentId}, + #{parentDepartmentId}, hospital_agency_id = - #{hospitalAgencyId}, + #{hospitalAgencyId}, hospital_agency_name = - #{hospitalAgencyName}, + #{hospitalAgencyName}, department_name = - #{departmentName}, + #{departmentName}, department_code = - #{departmentCode}, + #{departmentCode}, department_type = - #{departmentType}, + #{departmentType}, department_abbreviation = - #{departmentAbbreviation}, + #{departmentAbbreviation}, department_person_id = - #{departmentPersonId}, + #{departmentPersonId}, department_person_name = - #{departmentPersonName}, + #{departmentPersonName}, node_type = - #{nodeType}, + #{nodeType}, provide_service_category = - #{provideServiceCategory}, + #{provideServiceCategory}, subdivision_category_id = - #{subdivisionCategoryId}, + #{subdivisionCategoryId}, subdivision_category_name = - #{subdivisionCategoryName}, + #{subdivisionCategoryName}, norm_department_compare_id = - #{normDepartmentCompareId}, + #{normDepartmentCompareId}, norm_department_compare_name = - #{normDepartmentCompareName}, + #{normDepartmentCompareName}, prepare_beds_count = - #{prepareBedsCount}, + #{prepareBedsCount}, department_phone = - #{departmentPhone}, + #{departmentPhone}, department_mail = - #{departmentMail}, + #{departmentMail}, establish_date = - #{establishDate}, + #{establishDate}, revoke_date = - #{revokeDate}, + #{revokeDate}, create_by = - #{createBy}, + #{createBy}, create_time = - #{createTime}, + #{createTime}, update_by = - #{updateBy}, + #{updateBy}, update_time = - #{updateTime}, + #{updateTime}, where id = #{id} @@ -624,4 +624,13 @@ #{id} + + \ No newline at end of file