diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/feign/IWorkCenterClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/feign/IWorkCenterClient.java index bee97d05..eb28a859 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/feign/IWorkCenterClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/feign/IWorkCenterClient.java @@ -28,6 +28,7 @@ package org.springblade.desk.basic.feign; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.tool.api.R; +import org.springblade.desk.basic.pojo.entity.BasicClazz; import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springframework.cloud.openfeign.FeignClient; @@ -47,6 +48,7 @@ public interface IWorkCenterClient { String API_PREFIX = "/feign/client/workCenter"; String GET_BY_ID = API_PREFIX + "/getById"; String GET_TeamSet_BY_ID = API_PREFIX + "/getTeamSetById"; + String GET_Clazz_BY_ID = API_PREFIX + "/getClazzById"; /** * 根据id获取作业中心 * @@ -58,4 +60,7 @@ public interface IWorkCenterClient { @GetMapping(GET_TeamSet_BY_ID) R getTeamSetById(@RequestParam("id") Long id); + + @GetMapping(GET_Clazz_BY_ID) + R getClazzById(@RequestParam("id") Long id); } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java index 9c513d7e..0928ef1e 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/BasicClazz.java @@ -3,6 +3,7 @@ */ package org.springblade.desk.basic.pojo.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -10,6 +11,7 @@ import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; import java.io.Serial; +import java.util.List; /** * [基础分类] 实体类 @@ -75,4 +77,15 @@ public class BasicClazz extends BaseEntity { */ @Schema(description = "排序") private Long sort; + + /** + * 班组成员 + */ + @Schema(description = "") + private String teamMember; + @Schema(description = "") + private String teamMemberId; + + @TableField(exist = false) + private List userIds; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/WorkCenterVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/WorkCenterVO.java index 25ee29c9..b759d966 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/WorkCenterVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/WorkCenterVO.java @@ -21,4 +21,6 @@ public class WorkCenterVO extends WorkCenter { @Serial private static final long serialVersionUID = 1L; + private String leaderUserName; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java index 0601010c..0c612ff5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java @@ -32,11 +32,15 @@ import org.springblade.desk.basic.constant.BAModuleConst; import org.springblade.desk.basic.constant.BasicClazzConst; import org.springblade.desk.basic.excel.BasicClazzExcel; import org.springblade.desk.basic.pojo.entity.BasicClazz; +import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.vo.BasicClazzVO; import org.springblade.desk.basic.service.IBasicClazzService; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.wrapper.BasicClazzWrapper; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -62,7 +66,8 @@ public class BasicClazzController extends BladeController { @Resource private IBasicClazzService service; - + @Resource + private IUserClient iUserClient; /** * [基础分类] 详情 */ @@ -109,6 +114,35 @@ public class BasicClazzController extends BladeController { return R.data(pagesVO); } + @PostMapping("/updateUserId") + @ApiOperationSupport(order = 31) + @Operation(summary = "设置人员Id保存", description = "传入WorkCenter List") + @Transactional + public R updateUserId(@Valid @RequestBody BasicClazz basicClazz) { + QueryWrapper qw = Condition.getQueryWrapper(basicClazz); + BasicClazz detail = service.getOne(qw); + List teamIds = basicClazz.getUserIds(); + String result = null; + String team = null; + if(null != teamIds){ + result = teamIds.stream() + .map(Object::toString) // 或者直接使用String::valueOf,效果相同 + .collect(Collectors.joining(",")); + + + List teams = iUserClient.userListByIds(result); + + team= teams.stream() + .map(user -> String.valueOf(user.getRealName())) + .collect(Collectors.joining(",")); + } + + detail.setTeamMemberId(result); + detail.setTeamMember(team); + service.updateById(detail); + return R.status(true); + } + /** * SELECT * * diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java index 08251a4a..cc25241f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java @@ -279,10 +279,20 @@ public class CraftAbilityController extends BladeController { return R.data(list); } +// @GetMapping("/downloadExcelTemplate") +// @ApiOperationSupport(order = 71) +// @Operation(summary = "下载Excel模板", description = "") +// public ResponseEntity downloadExcelTemplate() { +// return ExcelExtUtil.downloadXlsTemplate( +// "Excel/QA/工艺能力.xls", +// "导入模版-工艺能力.xls"); +// } + + @GetMapping("/downloadExcelTemplate") @ApiOperationSupport(order = 71) @Operation(summary = "下载Excel模板", description = "") - public ResponseEntity downloadExcelTemplate() { + public ResponseEntity downloadExcelTemplate() { return ExcelExtUtil.downloadXlsTemplate( "Excel/QA/工艺能力.xls", "导入模版-工艺能力.xls"); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java index 4e739fd6..f6246100 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java @@ -176,16 +176,20 @@ public class OemController extends BladeController { queryWrapperOemCraft.eq("CRAFT_ABILITY_ID",team.getId()); OemCraftAbilityEntity craft = oemCraftAbilityService.getOne(queryWrapperOemCraft); - BeanUtils.copyProperties(craft,team); - team.setId(id); - R user= iUserClient.userInfoById(craft.getDispatcher()); - if(null != user && null != user.getData()){ - team.setDispatcherName(user.getData().getRealName()); - } - R userplan= iUserClient.userInfoById(craft.getPlanner()); - if(null != userplan && null != userplan.getData()){ - team.setPlannerName(userplan.getData().getRealName()); + if(null != craft){ + BeanUtils.copyProperties(craft,team); + + R user= iUserClient.userInfoById(craft.getDispatcher()); + if(null != user && null != user.getData()){ + team.setDispatcherName(user.getData().getRealName()); + } + R userplan= iUserClient.userInfoById(craft.getPlanner()); + if(null != userplan && null != userplan.getData()){ + team.setPlannerName(userplan.getData().getRealName()); + } } + + team.setId(id); } } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlanAssignSteerController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlanAssignSteerController.java index 52b15225..c2f8736f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlanAssignSteerController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlanAssignSteerController.java @@ -284,7 +284,7 @@ public class PlanAssignSteerController extends BladeController { //零件 QueryWrapper queryWrapperPart = new QueryWrapper<>(); - queryWrapperPart.eq("NAME",noticeExcel.getDsPartName()); + queryWrapperPart.eq("PART_CODE",noticeExcel.getDsPartName()); List parts = partService.list(queryWrapperPart); if(null != parts && parts.size() > 0){ notice.setDsPart(parts.get(0).getId()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java index ac867c38..e06f53e3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java @@ -33,10 +33,7 @@ import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.constant.BaseValue; import org.springblade.desk.basic.excel.PlatingExcel; import org.springblade.desk.basic.excel.PlatingSmallExcel; -import org.springblade.desk.basic.pojo.entity.BasicClazz; -import org.springblade.desk.basic.pojo.entity.Plating; -import org.springblade.desk.basic.pojo.entity.PlatingSmall; -import org.springblade.desk.basic.pojo.entity.Shifts; +import org.springblade.desk.basic.pojo.entity.*; import org.springblade.desk.basic.pojo.vo.PlatingVO; import org.springblade.desk.basic.service.IBasicClazzService; import org.springblade.desk.basic.service.IPlatingService; @@ -161,6 +158,13 @@ public class PlatingController extends BladeController { @ApiOperationSupport(order = 30) @Operation(summary = "新增一条", description = "传入Plating Obj") public R save(@Valid @RequestBody Plating addOne) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("CONFIG_NO",addOne.getConfigNo()); + List list = service.list(queryWrapper); + if(null != list && list.size()>0){ + return R.fail("此配置码已存在"); + } addOne.setId(null); return R.status(service.save(addOne)); } @@ -185,6 +189,16 @@ public class PlatingController extends BladeController { @ApiOperationSupport(order = 40) @Operation(summary = "修改一条", description = "传入Plating Obj") public R update(@Valid @RequestBody Plating updateOne) { + + Plating plate = service.getById(updateOne.getId()); + if(!plate.getConfigNo().equals(updateOne.getConfigNo())){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("CONFIG_NO",updateOne.getConfigNo()); + List list = service.list(queryWrapper); + if(null != list && list.size()>0){ + return R.fail("此配置码已存在"); + } + } return R.status(service.updateById(updateOne)); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java index 080bd08c..7ddcc65a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java @@ -38,6 +38,7 @@ import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.wrapper.WorkCenterWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.scheduling.pojo.entity.TeamSetEntity; +import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; import org.springframework.beans.BeanUtils; import org.springframework.http.ResponseEntity; @@ -72,7 +73,8 @@ public class WorkCenterController extends BladeController { private ICraftAbilityService craftAbilityService; @Resource private IOemCraftAbilityService oemCraftAbilityService; - + @Resource + private IUserClient iUserClient; /** * [作业中心] 详情 */ @@ -106,6 +108,13 @@ public class WorkCenterController extends BladeController { IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = WorkCenterWrapper.build().pageVO(pages); + List vos = pagesVO.getRecords(); + for(WorkCenterVO one : vos){ + R user= iUserClient.userInfoById(one.getLeaderUser()); + if(null != user && null != user.getData()){ + one.setLeaderUserName(user.getData().getRealName()); + } + } return R.data(pagesVO); } @@ -120,6 +129,13 @@ public class WorkCenterController extends BladeController { IPage pagesVO = service.selectWorkCenterPage( Condition.getPage(query), workCenter ); + List vos = pagesVO.getRecords(); + for(WorkCenterVO one : vos){ + R user= iUserClient.userInfoById(one.getLeaderUser()); + if(null != user && null != user.getData()){ + one.setLeaderUserName(user.getData().getRealName()); + } + } return R.data(pagesVO); } @@ -223,10 +239,10 @@ public class WorkCenterController extends BladeController { queryWrapperOemCraft.eq("OTHER_ID",detail.getId()); queryWrapperOemCraft.eq("CRAFT_ABILITY_ID",team.getId()); OemCraftAbilityEntity craft = oemCraftAbilityService.getOne(queryWrapperOemCraft); - - BeanUtils.copyProperties(craft,team); + if(null != craft){ + BeanUtils.copyProperties(craft,team); + } team.setId(id); - } } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java index ab22d493..bf6d3cf3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java @@ -27,6 +27,7 @@ import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.constant.BAModuleConst; import org.springblade.desk.basic.excel.PlatingSmallExcel; import org.springblade.desk.basic.excel.WorkTankExcel; +import org.springblade.desk.basic.pojo.entity.Plating; import org.springblade.desk.basic.pojo.entity.PlatingSmall; import org.springblade.desk.basic.pojo.entity.WorkTank; import org.springblade.desk.basic.pojo.vo.WorkTankVO; @@ -89,8 +90,15 @@ public class WorkTankController extends BladeController { IPage pagesVO = WorkTankWrapper.build().pageVO(pages); List listVO = pagesVO.getRecords(); for(WorkTankVO one : listVO){ - if(null != one.getOpUserId()){ - R userplan= iUserClient.userInfoById(one.getOpUserId()); +// if(null != one.getOpUserId()){ +// R userplan= iUserClient.userInfoById(one.getOpUserId()); +// one.setOpUserRealName(userplan.getData().getRealName()); +// } + if(null != one.getUpdateUser() && !"".equals(one.getUpdateUser())){ + R userplan= iUserClient.userInfoById(one.getUpdateUser()); + one.setOpUserRealName(userplan.getData().getRealName()); + }else{ + R userplan= iUserClient.userInfoById(one.getCreateUser()); one.setOpUserRealName(userplan.getData().getRealName()); } @@ -137,6 +145,14 @@ public class WorkTankController extends BladeController { @ApiOperationSupport(order = 30) @Operation(summary = "新增一条", description = "传入WorkTank Obj") public R save(@Valid @RequestBody WorkTank addOne) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("WORK_TANK_CODE",addOne.getWorkTankCode()); + List list = service.list(queryWrapper); + if(null != list && list.size()>0){ + return R.fail("此槽号已存在"); + } + addOne.setId(null); return R.status(service.save(addOne)); } @@ -161,6 +177,18 @@ public class WorkTankController extends BladeController { @ApiOperationSupport(order = 40) @Operation(summary = "修改一条", description = "传入WorkTank Obj") public R update(@Valid @RequestBody WorkTank updateOne) { + + + WorkTank plate = service.getById(updateOne.getId()); + if(!plate.getWorkTankCode().equals(updateOne.getWorkTankCode())){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("WORK_TANK_CODE",updateOne.getWorkTankCode()); + List list = service.list(queryWrapper); + if(null != list && list.size()>0){ + return R.fail("此槽号已存在"); + } + } + return R.status(service.updateById(updateOne)); } @@ -230,8 +258,8 @@ public class WorkTankController extends BladeController { @Operation(summary = "下载Excel模板", description = "") public ResponseEntity downloadExcelTemplate() { return ExcelExtUtil.downloadXlsTemplate( - "Excel/QA/ImportTemplate-CycleTestItem.xls", - "导入模版-周期试验项目.xls"); + "Excel/QA/作业槽.xls", + "导入模版-作业槽.xls"); } /** @@ -255,6 +283,10 @@ public class WorkTankController extends BladeController { list.forEach(noticeExcel -> { WorkTank notice = BeanUtil.copy(noticeExcel, WorkTank.class); + List userLeaders = iUserClient.listByNameNolike(noticeExcel.getOpUserName()); + if(null != userLeaders && userLeaders.size() > 0){ + notice.setOpUserId(userLeaders.get(0).getId()); + } noticeList.add(notice); }); return R.data(service.saveBatch(noticeList)); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/CoatingThicknessExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/CoatingThicknessExcel.java index 5268db50..7063508c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/CoatingThicknessExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/CoatingThicknessExcel.java @@ -46,13 +46,13 @@ public class CoatingThicknessExcel implements Serializable { */ @ColumnWidth(20) @ExcelProperty("质量等级") - private Long level; + private Integer levelNum; /** * 是否以21E8-210开头 */ // @ColumnWidth(20) // @ExcelProperty("是否以21E8-210开头") - private Short startF21e8; +// private Short startF21e8; @ColumnWidth(20) @ExcelProperty("是否以21E8-210开头") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/PlanAssignSteerExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/PlanAssignSteerExcel.java index 873b6b32..e8cbeaac 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/PlanAssignSteerExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/PlanAssignSteerExcel.java @@ -87,7 +87,7 @@ public class PlanAssignSteerExcel implements Serializable { * 维护时间 */ @ColumnWidth(20) - @ExcelProperty("维护时间") + @ExcelProperty("维护时间-示例[1998-08-09 16:33:11]") private LocalDateTime maintainTime; /** * 日分派量 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/WorkTankExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/WorkTankExcel.java index f0231431..63129786 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/WorkTankExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/WorkTankExcel.java @@ -82,6 +82,7 @@ public class WorkTankExcel implements Serializable { * 操作[用户]id */ @ColumnWidth(20) - @ExcelProperty("操作[用户]id") - private BigDecimal opUserId; + @ExcelProperty("操作[用户]") +// private BigDecimal opUserId; + private String opUserName; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/WorkCenterClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/WorkCenterClient.java index f28d2d37..84a5ae73 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/WorkCenterClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/WorkCenterClient.java @@ -6,8 +6,10 @@ import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; +import org.springblade.desk.basic.pojo.entity.BasicClazz; import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.WorkCenter; +import org.springblade.desk.basic.service.IBasicClazzService; import org.springblade.desk.basic.service.ITeamSetService; import org.springblade.desk.basic.service.IWorkCenterService; import org.springframework.web.bind.annotation.RestController; @@ -26,6 +28,8 @@ public class WorkCenterClient implements IWorkCenterClient { private final IWorkCenterService workCenterService; @Resource private ITeamSetService service; + @Resource + private IBasicClazzService clazzService; @Override public R getById(Long workCenterId) { WorkCenter workCenter = workCenterService.getById(workCenterId); @@ -36,4 +40,9 @@ public class WorkCenterClient implements IWorkCenterClient { public R getTeamSetById(Long id) { return R.data(service.getById(id)); } + + @Override + public R getClazzById(Long id) { + return R.data(clazzService.getById(id)); + } } diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/作业槽.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/作业槽.xls new file mode 100644 index 00000000..3a802727 Binary files /dev/null and b/blade-service/blade-desk/src/main/resources/Excel/QA/作业槽.xls differ diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/外协分派.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/外协分派.xls index 0ea58d31..b3713f7e 100644 Binary files a/blade-service/blade-desk/src/main/resources/Excel/QA/外协分派.xls and b/blade-service/blade-desk/src/main/resources/Excel/QA/外协分派.xls differ diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/镀层厚度对应.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/镀层厚度对应.xls index b8eb939c..ddc13538 100644 Binary files a/blade-service/blade-desk/src/main/resources/Excel/QA/镀层厚度对应.xls and b/blade-service/blade-desk/src/main/resources/Excel/QA/镀层厚度对应.xls differ diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java index 107435b0..a679090e 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java @@ -182,6 +182,16 @@ public class DeptController extends BladeController { return R.data(map); } + @GetMapping("/findUserByClazz") + @ApiOperationSupport(order = 5) + @Operation(summary = "懒加载树形结构", description = "树形结构") + public R findUserByClazz(Long clazzId) { + + + Map map = deptService.findUserByClazz(clazzId); + return R.data(map); + } + /** * 新增或修改 diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java index 20752109..28f29915 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java @@ -69,6 +69,8 @@ public interface IDeptService extends IService { */ List lazyTree(String tenantId, Long parentId); Map findUserByTeam(Long teamSetId); + Map findUserByClazz(Long clazzId); + /** * 获取部门ID * diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java index f0cf3d1f..56870d99 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java @@ -40,6 +40,7 @@ import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; import org.springblade.core.tool.utils.StringUtil; import org.springblade.desk.basic.feign.IWorkCenterClient; +import org.springblade.desk.basic.pojo.entity.BasicClazz; import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.system.cache.SysCache; import org.springblade.system.mapper.DeptMapper; @@ -166,6 +167,59 @@ public class DeptServiceImpl extends ServiceImpl implements ID return map; } + @Override + public Map findUserByClazz(Long clazzId) { + Map map = new HashMap<>(); + + List teamUnSelects = new ArrayList<>(); + List teamSelects = new ArrayList<>(); + + Map> noChooseMap = new HashMap<>(); + Map> chooseMap = new HashMap<>(); + + BasicClazz detail = workCenterClient.getClazzById(clazzId).getData(); + if(detail != null){ + String teamId = detail.getTeamMemberId(); + if(null != teamId && !"".equals(teamId)){ + List ids = Func.toLongList(teamId); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.notIn("id",ids); +// queryWrapper.eq("dept_id",parentId); + teamUnSelects = userService.list(queryWrapper); + }else{ + QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("dept_id",parentId); + teamUnSelects = userService.list(queryWrapper); + } + + + if(null != teamId && !"".equals(teamId)){ + List ids = Func.toLongList(teamId); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id",ids); +// queryWrapper.eq("dept_id",parentId); + teamSelects = userService.list(queryWrapper); + + } + + + if(teamUnSelects != null && teamUnSelects.size() > 0){ + noChooseMap = teamUnSelects.stream().collect(Collectors.groupingBy(User::getDeptId)); + } + if(teamSelects != null && teamSelects.size() > 0){ + chooseMap = teamSelects.stream().collect(Collectors.groupingBy(User::getDeptId)); + } + } + + Map> deptMap = this.loadDeptMap(); + + // 获取所有父级部门并排序 + List dataList = deptMap.get(0L); + map.put("clazzUnSelects",this.loadDeptUserTreeJSON(dataList, deptMap, noChooseMap)); + map.put("clazzSelects",this.loadDeptUserTreeJSON(dataList, deptMap, chooseMap)); + return map; + } + private JSONArray loadDeptUserTreeJSON(List deptList, Map> map, Map> userMap) { JSONArray array = new JSONArray();