diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/Oem.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/Oem.java index 42f66146..9e508584 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/Oem.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/Oem.java @@ -3,13 +3,16 @@ */ 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; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; +import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import java.io.Serial; +import java.util.List; /** * [外协厂家] 实体类 @@ -98,6 +101,7 @@ public class Oem extends BaseEntity { */ @Schema(description = "工艺能力") private String craftAbility; + private String craftAbilityId; /** * 地区 */ @@ -153,4 +157,7 @@ public class Oem extends BaseEntity { */ @Schema(description = "备注") private String remark; + + @TableField(exist = false) + private List crafs; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/WorkTankVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/WorkTankVO.java index c0afe374..716129d7 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/WorkTankVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/WorkTankVO.java @@ -25,4 +25,6 @@ public class WorkTankVO extends WorkTank { @Schema(description = "BaseEntityVO") private BaseEntityVO base; + private String opUserRealName; + } diff --git a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/CraftAbilityEntity.java b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/CraftAbilityEntity.java index 66bf877f..d2695ce8 100644 --- a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/CraftAbilityEntity.java +++ b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/CraftAbilityEntity.java @@ -85,5 +85,16 @@ public class CraftAbilityEntity extends BaseEntity { private String batch; @Schema(description = "饱和度") private BigDecimal saturation; + @Schema(description = "计划员") + private Long planner; + @Schema(description = "调度员") + private Long dispatcher; + @Schema(description = "是否大批量 0:是 1:否") + private String isBatch; + +// @TableField(exist = false) + private String plannerName; +// @TableField(exist = false) + private String dispatcherName; } 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 4b7adeaf..5b75739f 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 @@ -28,17 +28,25 @@ import org.springblade.desk.basic.constant.BAModuleConst; import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.excel.OemExcel; import org.springblade.desk.basic.pojo.entity.Oem; +import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.pojo.request.OemSearch; import org.springblade.desk.basic.pojo.vo.OemVO; +import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.wrapper.OemWrapper; +import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; +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; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -59,7 +67,10 @@ public class OemController extends BladeController { @Resource private IOemService service; - + @Resource + private ICraftAbilityService craftAbilityService; + @Resource + private IUserClient iUserClient; /** * [外协厂家] 详情 */ @@ -74,6 +85,77 @@ public class OemController extends BladeController { return R.data(detailVO); } + + @PostMapping("/updateCraftAbilityId") + @ApiOperationSupport(order = 31) + @Operation(summary = "设置工艺Id保存", description = "传入WorkCenter List") + @Transactional + public R updateCraftAbilityId(@Valid @RequestBody Oem oem) { + QueryWrapper qw = Condition.getQueryWrapper(oem); + Oem detail = service.getOne(qw); +// List craftIds = workCenter.getCraftIds(); + List crafs = oem.getCrafs(); + String result = null; + String craftAbility = null; + if(null != crafs && crafs.size()>0){ + for(CraftAbilityEntity craft:crafs){ + craftAbilityService.updateById(craft); + } +// result= crafs.stream() +// .map(user -> String.valueOf(user.getId())) +// .collect(Collectors.joining(",")); + + result= crafs.stream() + .map(craf -> craf.getId()) + .filter(Objects::nonNull) // 过滤 null 的 role_id + .map(String::valueOf) // 转换为 String 类型(适配 joining) + .collect(Collectors.joining(",")); // 用逗号拼接 + + + + craftAbility= crafs.stream() + .map(user -> String.valueOf(user.getCaName())) + .collect(Collectors.joining(",")); + } + + detail.setCraftAbilityId(result); + detail.setCraftAbility(craftAbility); + service.updateById(detail); + return R.status(true); + } + + + @PostMapping("/getSelectCraftAbility") + @ApiOperationSupport(order = 31) + @Operation(summary = "获取已选择工艺", description = "传入WorkCenter List") + public R> getSelectCraftAbility(@Valid @RequestBody Oem oem) { + List teams = new ArrayList<>(); + + QueryWrapper qw = Condition.getQueryWrapper(oem); + Oem detail = service.getOne(qw); + if(detail != null){ + String teamId = detail.getCraftAbilityId(); + if(null != teamId && !"".equals(teamId)){ + List ids = Func.toLongList(teamId); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id",ids); + teams = craftAbilityService.list(queryWrapper); + for(CraftAbilityEntity team:teams){ + R user= iUserClient.userInfoById(team.getDispatcher()); + if(null != user && null != user.getData()){ + team.setDispatcherName(user.getData().getRealName()); + } + R userplan= iUserClient.userInfoById(team.getPlanner()); + if(null != userplan && null != userplan.getData()){ + team.setPlannerName(userplan.getData().getRealName()); + } + } + } + } + return R.data(teams); + } + + /** * [外协厂家] list分页 */ 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 840e452d..69694d08 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 @@ -33,6 +33,8 @@ import org.springblade.desk.basic.pojo.vo.WorkTankVO; import org.springblade.desk.basic.service.IWorkTankService; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.wrapper.WorkTankWrapper; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -58,6 +60,8 @@ public class WorkTankController extends BladeController { @Resource private IWorkTankService service; + @Resource + private IUserClient iUserClient; /** * [作业槽] 详情 @@ -83,6 +87,11 @@ public class WorkTankController extends BladeController { QueryWrapper qw = Condition.getQueryWrapper(workTank, WorkTank.class); IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = WorkTankWrapper.build().pageVO(pages); + List listVO = pagesVO.getRecords(); + for(WorkTankVO one : listVO){ + R userplan= iUserClient.userInfoById(one.getOpUserId()); + one.setOpUserRealName(userplan.getData().getRealName()); + } return R.data(pagesVO); } @@ -97,6 +106,11 @@ public class WorkTankController extends BladeController { IPage pagesVO = service.selectWorkTankPage( Condition.getPage(query), workTank ); + List listVO = pagesVO.getRecords(); + for(WorkTankVO one : listVO){ + R userplan= iUserClient.userInfoById(one.getOpUserId()); + one.setOpUserRealName(userplan.getData().getRealName()); + } return R.data(pagesVO); }