diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java index 93cc06a..951430e 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java @@ -54,7 +54,7 @@ @ApiOperation("更新") @PostMapping("/update") - public ReturnDTO updateMeasureItemCategory(@RequestBody @Valid BizBusinessDeviceMeasureInfo measureInfo) { + public ReturnDTO updateMeasureInfo(@RequestBody @Valid BizBusinessDeviceMeasureInfo measureInfo) { return measureInfoService.updateMeasureInfo(measureInfo); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java index 93cc06a..951430e 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java @@ -54,7 +54,7 @@ @ApiOperation("更新") @PostMapping("/update") - public ReturnDTO updateMeasureItemCategory(@RequestBody @Valid BizBusinessDeviceMeasureInfo measureInfo) { + public ReturnDTO updateMeasureInfo(@RequestBody @Valid BizBusinessDeviceMeasureInfo measureInfo) { return measureInfoService.updateMeasureInfo(measureInfo); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java new file mode 100644 index 0000000..2d8a0ee --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java @@ -0,0 +1,35 @@ +package com.casic.missiles.controller.system; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.system.ISystemDeptService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Api(tags = "系统通用接口") +@RestController +@RequestMapping("system") +@RequiredArgsConstructor +public class SystemDeptController { + + private final ISystemDeptService systemDeptService; + + @ApiOperation("获取所在单位") + @GetMapping("/company") + public ReturnDTO getCompanyId() { + return ReturnUtil.success(systemDeptService.getUserCompany()); + } + + @ApiOperation("获取所在单位列表") + @GetMapping("/companyList") + public ReturnDTO> companyList() { + return ReturnUtil.success(systemDeptService.getAllCompanyList()); + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java index 93cc06a..951430e 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java @@ -54,7 +54,7 @@ @ApiOperation("更新") @PostMapping("/update") - public ReturnDTO updateMeasureItemCategory(@RequestBody @Valid BizBusinessDeviceMeasureInfo measureInfo) { + public ReturnDTO updateMeasureInfo(@RequestBody @Valid BizBusinessDeviceMeasureInfo measureInfo) { return measureInfoService.updateMeasureInfo(measureInfo); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java new file mode 100644 index 0000000..2d8a0ee --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java @@ -0,0 +1,35 @@ +package com.casic.missiles.controller.system; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.system.ISystemDeptService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Api(tags = "系统通用接口") +@RestController +@RequestMapping("system") +@RequiredArgsConstructor +public class SystemDeptController { + + private final ISystemDeptService systemDeptService; + + @ApiOperation("获取所在单位") + @GetMapping("/company") + public ReturnDTO getCompanyId() { + return ReturnUtil.success(systemDeptService.getUserCompany()); + } + + @ApiOperation("获取所在单位列表") + @GetMapping("/companyList") + public ReturnDTO> companyList() { + return ReturnUtil.success(systemDeptService.getAllCompanyList()); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemDeptServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemDeptServiceImpl.java new file mode 100644 index 0000000..2f84202 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemDeptServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.service.Impl.system; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.system.ISystemDeptService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; + +@Service +@RequiredArgsConstructor +public class SystemDeptServiceImpl implements ISystemDeptService { + + private final AbstractDeptService deptService; + private final AbstractPermissionContext permissionContext; + + @Override + public Dept getUserCompany() { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + Long deptId = user.getDeptId(); + List parentDeptIds = deptService.getParentListById(deptId); + if (CollUtil.isNotEmpty(parentDeptIds)) { + List deptList = new ArrayList<>(); + parentDeptIds.forEach(i -> deptList.add(deptService.getById(i))); + Dept top = deptList.stream().filter(i -> ObjectUtil.isEmpty(i.getPid()) || i.getPid() < 0).findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(top)) { + Dept company = deptList.stream().filter(i -> top.getId().equals(i.getPid())).findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(company)) { + return company; + } + } + } + return deptService.getById(deptId); + } + + + @Override + public List getAllCompanyList() { + List allDept = deptService.list(null); + Dept top = allDept.stream().filter(i -> ObjectUtil.isEmpty(i.getPid()) || i.getPid() < 0).findFirst().orElse(null); + if(ObjectUtil.isEmpty(top)){ + return null; + } + List secondDepts = allDept.stream().filter(i-> top.getId().equals(i.getPid())).collect(Collectors.toList()); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + if(!ALL_TYPE.equals(dataScope.getScopeEnums())){ + secondDepts = secondDepts.stream().filter(i->dataScope.getDeptIds().contains(i.getId())).collect(Collectors.toList()); + } + return secondDepts; + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java index 93cc06a..951430e 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BizBusinessDeviceMeasureInfoController.java @@ -54,7 +54,7 @@ @ApiOperation("更新") @PostMapping("/update") - public ReturnDTO updateMeasureItemCategory(@RequestBody @Valid BizBusinessDeviceMeasureInfo measureInfo) { + public ReturnDTO updateMeasureInfo(@RequestBody @Valid BizBusinessDeviceMeasureInfo measureInfo) { return measureInfoService.updateMeasureInfo(measureInfo); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java new file mode 100644 index 0000000..2d8a0ee --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemDeptController.java @@ -0,0 +1,35 @@ +package com.casic.missiles.controller.system; + +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.system.ISystemDeptService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Api(tags = "系统通用接口") +@RestController +@RequestMapping("system") +@RequiredArgsConstructor +public class SystemDeptController { + + private final ISystemDeptService systemDeptService; + + @ApiOperation("获取所在单位") + @GetMapping("/company") + public ReturnDTO getCompanyId() { + return ReturnUtil.success(systemDeptService.getUserCompany()); + } + + @ApiOperation("获取所在单位列表") + @GetMapping("/companyList") + public ReturnDTO> companyList() { + return ReturnUtil.success(systemDeptService.getAllCompanyList()); + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemDeptServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemDeptServiceImpl.java new file mode 100644 index 0000000..2f84202 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemDeptServiceImpl.java @@ -0,0 +1,61 @@ +package com.casic.missiles.service.Impl.system; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDeptService; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.system.ISystemDeptService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; + +@Service +@RequiredArgsConstructor +public class SystemDeptServiceImpl implements ISystemDeptService { + + private final AbstractDeptService deptService; + private final AbstractPermissionContext permissionContext; + + @Override + public Dept getUserCompany() { + AuthUser user = permissionContext.getAuthService().getLoginUser(); + Long deptId = user.getDeptId(); + List parentDeptIds = deptService.getParentListById(deptId); + if (CollUtil.isNotEmpty(parentDeptIds)) { + List deptList = new ArrayList<>(); + parentDeptIds.forEach(i -> deptList.add(deptService.getById(i))); + Dept top = deptList.stream().filter(i -> ObjectUtil.isEmpty(i.getPid()) || i.getPid() < 0).findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(top)) { + Dept company = deptList.stream().filter(i -> top.getId().equals(i.getPid())).findFirst().orElse(null); + if (ObjectUtil.isNotEmpty(company)) { + return company; + } + } + } + return deptService.getById(deptId); + } + + + @Override + public List getAllCompanyList() { + List allDept = deptService.list(null); + Dept top = allDept.stream().filter(i -> ObjectUtil.isEmpty(i.getPid()) || i.getPid() < 0).findFirst().orElse(null); + if(ObjectUtil.isEmpty(top)){ + return null; + } + List secondDepts = allDept.stream().filter(i-> top.getId().equals(i.getPid())).collect(Collectors.toList()); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + if(!ALL_TYPE.equals(dataScope.getScopeEnums())){ + secondDepts = secondDepts.stream().filter(i->dataScope.getDeptIds().contains(i.getId())).collect(Collectors.toList()); + } + return secondDepts; + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java new file mode 100644 index 0000000..a821d17 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemDeptService.java @@ -0,0 +1,12 @@ +package com.casic.missiles.service.system; + +import com.casic.missiles.modular.system.model.Dept; + +import java.util.List; + +public interface ISystemDeptService { + + Dept getUserCompany(); + + List getAllCompanyList(); +}