diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java index 5fabf58..625acc5 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java @@ -9,11 +9,14 @@ import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.exception.BusinessException; import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.permission.DataAccessLayerService; +import com.lyms.platform.permission.dao.master.MasterDepartmentsMapper; import com.lyms.platform.permission.dao.master.MasterOrganizationMapper; import com.lyms.platform.permission.dao.slave.OrganizationMapper; -import com.lyms.platform.permission.model.Organization; -import com.lyms.platform.permission.model.OrganizationQuery; +import com.lyms.platform.permission.model.*; +import com.lyms.platform.permission.service.DepartmentsService; import com.lyms.platform.permission.service.OrganizationService; +import com.lyms.platform.permission.service.RolePermissionMapsService; +import com.lyms.platform.permission.service.RolesService; import com.lyms.platform.pojo.DataPermissionsModel; import com.lyms.platform.query.DataPermissionsModelQuery; import org.apache.commons.collections.CollectionUtils; @@ -21,10 +24,7 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; @Service("organizationServiceImpl1") public class OrganizationServiceImpl extends DataAccessLayerService implements OrganizationService { @@ -33,6 +33,15 @@ public class OrganizationServiceImpl extends DataAccessLayerService implements O private MasterOrganizationMapper masterOrganizationMapper; @Autowired + private DepartmentsService departmentsService; + + @Autowired + private RolesService rolesService; + + @Autowired + private RolePermissionMapsService rolePermissionMapsService; + + @Autowired private ISyncDataDao iSyncDataDao; @Autowired @@ -43,9 +52,59 @@ public class OrganizationServiceImpl extends DataAccessLayerService implements O masterOrganizationMapper.addOrganization(obj); iSyncDataDao.addSyncData("MysqlAdd", obj, obj.getId().toString()); rebuildDataPermissions(null); + // 新建机构时,除卫生局外都新建三个科室:信息科、儿科、妇产科 + addDept("信息科", obj); + addDept("儿科", obj); + addDept("妇产科", obj); + // 新建机构时,新建6个角色:院内统计87、产科产房4、儿科医生46、院办管理63、孕产妇医生48、主任-产科66 + addDefaultRoles(obj); return obj.getId(); } + private void addDefaultRoles(Organization obj) { + List rolesList = new ArrayList<>(); + rolesList.add(rolesService.getRoles(87)); + rolesList.add(rolesService.getRoles(4)); + rolesList.add(rolesService.getRoles(46)); + rolesList.add(rolesService.getRoles(63)); + rolesList.add(rolesService.getRoles(48)); + rolesList.add(rolesService.getRoles(66)); + for (Roles roles:rolesList) { + RolePermissionMapsQuery mapsQuery = new RolePermissionMapsQuery(); + mapsQuery.setYn(YnEnums.YES.getId()); + mapsQuery.setRoleId(roles.getId()); + List mapsList = rolePermissionMapsService.queryRolePermissionMaps(mapsQuery); + roles.setId(null); + roles.setPublishName(obj.getPublishName()); + roles.setPublishId(obj.getPublishId()); + roles.setOrgId(obj.getId()); + roles.setModified(new Date()); + roles.setCreated(roles.getModified()); + roles.setRemarks(obj.getName()); + rolesService.addRoles(roles); + for (RolePermissionMaps maps:mapsList) { + maps.setId(null); + maps.setRoleId(roles.getId()); + rolePermissionMapsService.addRolePermissionMaps(maps); + } + } + } + + private void addDept(String name, Organization obj) { + Departments departments = new Departments(); + departments.setType(2); + departments.setYn(YnEnums.YES.getId()); + departments.setCreated(new Date()); + departments.setModified(departments.getCreated()); + departments.setName(name); + departments.setOrgId(obj.getId()); + departments.setParentId(1); + departments.setPublishId(obj.getPublishId()); + departments.setPublishName(obj.getPublishName()); + departments.setDescription(obj.getName()); + departmentsService.addDepartments(departments); + } + @Override public void updateOrganization(Organization obj) { masterOrganizationMapper.updateOrganization(obj);