基础数据联调修改

liweidong
pangyang 3 months ago
parent d3a7eddc06
commit 32df8d1431
  1. 80
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/OemCraftAbilityEntity.java
  2. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/TeamSet.java
  3. 4
      blade-service-api/blade-system-api/pom.xml
  4. 6
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/vo/DeptVO.java
  5. 7
      blade-service-api/blade-user-api/src/main/java/org/springblade/system/feign/IUserClient.java
  6. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CoatingThicknessController.java
  7. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java
  8. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java
  9. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/MaterialQuotaController.java
  10. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java
  11. 51
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlanAssignSteerController.java
  12. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java
  13. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingSmallController.java
  14. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/ProdMarkController.java
  15. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java
  16. 37
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java
  17. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/CoatingThicknessExcel.java
  18. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/CraftAbilityExcel.java
  19. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/MaterialQuotaExcel.java
  20. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/PlanAssignSteerExcel.java
  21. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/PlatingExcel.java
  22. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/PlatingSmallExcel.java
  23. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/ProdMarkExcel.java
  24. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/TeamSetExcel.java
  25. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/OemCraftAbilityMapper.java
  26. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/OemCraftAbilityMapper.xml
  27. 47
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IOemCraftAbilityService.java
  28. 53
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/OemCraftAbilityServiceImpl.java
  29. BIN
      blade-service/blade-desk/src/main/resources/Excel/QA/外协分派.xls
  30. BIN
      blade-service/blade-desk/src/main/resources/Excel/QA/局部镀零件.xls
  31. BIN
      blade-service/blade-desk/src/main/resources/Excel/QA/工艺能力.xls
  32. BIN
      blade-service/blade-desk/src/main/resources/Excel/QA/物料定额.xls
  33. BIN
      blade-service/blade-desk/src/main/resources/Excel/QA/班组.xls
  34. BIN
      blade-service/blade-desk/src/main/resources/Excel/QA/生产标识.xls
  35. BIN
      blade-service/blade-desk/src/main/resources/Excel/QA/镀种小类.xls
  36. BIN
      blade-service/blade-desk/src/main/resources/Excel/QA/镀种维护.xls
  37. 38
      blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java
  38. 31
      blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java
  39. 10
      blade-service/blade-system/src/main/java/org/springblade/system/feign/UserClient.java
  40. 4
      blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java
  41. 155
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java

@ -0,0 +1,80 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
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 java.io.Serial;
import java.math.BigDecimal;
import java.util.List;
/**
* 工艺能力关联其他表 实体类
*
* @author BladeX
* @since 2025-12-22
*/
@Data
@TableName("BS_OEM_CRAFT")
@Schema(description = "BsCraftAbility对象")
@EqualsAndHashCode(callSuper = true)
public class OemCraftAbilityEntity extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "面积")
private BigDecimal area;
@Schema(description = "数量")
private Integer quality;
@Schema(description = "批次")
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;
private Long otherId;
private Long craftAbilityId;
// @TableField(exist = false)
private String plannerName;
// @TableField(exist = false)
private String dispatcherName;
}

@ -177,4 +177,8 @@ public class TeamSet extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private List<TeamTime> teamTimes; private List<TeamTime> teamTimes;
@TableField(exist = false)
private Long deptId;
} }

@ -18,6 +18,10 @@
<groupId>org.springblade</groupId> <groupId>org.springblade</groupId>
<artifactId>blade-starter-cache</artifactId> <artifactId>blade-starter-cache</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-user-api</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>

@ -33,7 +33,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.core.tool.node.INode; import org.springblade.core.tool.node.INode;
import org.springblade.system.pojo.entity.Dept; import org.springblade.system.pojo.entity.Dept;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springblade.system.pojo.entity.User;
import java.io.Serial; import java.io.Serial;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -92,4 +93,7 @@ public class DeptVO extends Dept implements INode<DeptVO> {
*/ */
private String deptCategoryName; private String deptCategoryName;
private List<User> teamUnSelects;
private List<User> teamSelects;
} }

@ -65,6 +65,8 @@ public interface IUserClient {
String USER_LIST = API_PREFIX + "/user-list"; String USER_LIST = API_PREFIX + "/user-list";
String UN_SELECTUSER_LIST = API_PREFIX + "/unuser-list"; String UN_SELECTUSER_LIST = API_PREFIX + "/unuser-list";
String SELECTUSER_LIST = API_PREFIX + "/unuser-listByName"; String SELECTUSER_LIST = API_PREFIX + "/unuser-listByName";
String SELECTUSER_LIST_NO_LIKE = API_PREFIX + "/unuser-listByNameNolike";
@GetMapping(USER_LIST) @GetMapping(USER_LIST)
List<User> userListByIds(@RequestParam("userIds") String userIds); List<User> userListByIds(@RequestParam("userIds") String userIds);
@ -75,6 +77,11 @@ public interface IUserClient {
@GetMapping(SELECTUSER_LIST) @GetMapping(SELECTUSER_LIST)
List<User> userListByName(@RequestParam("name") String name); List<User> userListByName(@RequestParam("name") String name);
@GetMapping(SELECTUSER_LIST_NO_LIKE)
List<User> listByNameNolike(@RequestParam("name") String name);
/** /**
* 获取用户信息 * 获取用户信息

@ -263,6 +263,11 @@ public class CoatingThicknessController extends BladeController {
list.forEach(noticeExcel -> { list.forEach(noticeExcel -> {
CoatingThickness notice = BeanUtil.copy(noticeExcel, CoatingThickness.class); CoatingThickness notice = BeanUtil.copy(noticeExcel, CoatingThickness.class);
if("是".equals(noticeExcel.getStartF21e8Str())){
notice.setStartF21e8(1);
}else{
notice.setStartF21e8(0);
}
noticeList.add(notice); noticeList.add(notice);
}); });
return R.data(service.saveBatch(noticeList)); return R.data(service.saveBatch(noticeList));

@ -48,9 +48,13 @@ import org.springblade.desk.basic.constant.BAModuleConst;
import org.springblade.desk.basic.excel.CraftAbilityExcel; import org.springblade.desk.basic.excel.CraftAbilityExcel;
import org.springblade.desk.basic.pojo.vo.CraftAbilityVO; import org.springblade.desk.basic.pojo.vo.CraftAbilityVO;
import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.service.ICraftAbilityService;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.CraftAbilityWrapper; import org.springblade.desk.basic.wrapper.CraftAbilityWrapper;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springblade.system.cache.DictCache;
import org.springframework.core.io.Resource;
import org.springframework.http.ResponseEntity;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -115,6 +119,9 @@ public class CraftAbilityController extends BladeController {
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入CraftAbility") @Operation(summary = "分页", description = "传入CraftAbility")
public R<IPage<CraftAbilityVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> craftAbility, Query query) { public R<IPage<CraftAbilityVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> craftAbility, Query query) {
Date startTime = null; Date startTime = null;
Date endTime = null; Date endTime = null;
if(craftAbility.containsKey("startTime")){ if(craftAbility.containsKey("startTime")){
@ -252,6 +259,8 @@ public class CraftAbilityController extends BladeController {
list.forEach(noticeExcel -> { list.forEach(noticeExcel -> {
CraftAbilityEntity notice = BeanUtil.copy(noticeExcel, CraftAbilityEntity.class); CraftAbilityEntity notice = BeanUtil.copy(noticeExcel, CraftAbilityEntity.class);
String category = DictCache.getKey("ProcessCapabilityType", noticeExcel.getWtName());
notice.setWtId(Long.valueOf(category));
noticeList.add(notice); noticeList.add(notice);
}); });
return R.data(craftAbilityService.saveBatch(noticeList)); return R.data(craftAbilityService.saveBatch(noticeList));
@ -270,4 +279,13 @@ public class CraftAbilityController extends BladeController {
return R.data(list); return R.data(list);
} }
@GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/工艺能力.xls",
"导入模版-工艺能力.xls");
}
} }

@ -219,8 +219,8 @@ public class LocallyPlatedPartController extends BladeController {
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/局部镀零件.xls",
"导入模版-周期试验项目.xls"); "导入模版-局部镀零件.xls");
} }
/** /**

@ -33,9 +33,11 @@ import org.springblade.desk.basic.excel.MaterialQuotaExcel;
import org.springblade.desk.basic.pojo.entity.LocallyPlatedPart; import org.springblade.desk.basic.pojo.entity.LocallyPlatedPart;
import org.springblade.desk.basic.pojo.entity.MaterialQuota; import org.springblade.desk.basic.pojo.entity.MaterialQuota;
import org.springblade.desk.basic.pojo.vo.MaterialQuotaVO; import org.springblade.desk.basic.pojo.vo.MaterialQuotaVO;
import org.springblade.desk.basic.service.ICraftAbilityService;
import org.springblade.desk.basic.service.IMaterialQuotaService; import org.springblade.desk.basic.service.IMaterialQuotaService;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.MaterialQuotaWrapper; import org.springblade.desk.basic.wrapper.MaterialQuotaWrapper;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -63,7 +65,8 @@ public class MaterialQuotaController extends BladeController {
@Resource @Resource
private IMaterialQuotaService service; private IMaterialQuotaService service;
@Resource
private ICraftAbilityService craftAbilityService;
/** /**
* [物料定额] 详情 * [物料定额] 详情
*/ */
@ -226,8 +229,8 @@ public class MaterialQuotaController extends BladeController {
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/物料定额.xls",
"导入模版-周期试验项目.xls"); "导入模版-物料定额.xls");
} }
/** /**
@ -251,6 +254,15 @@ public class MaterialQuotaController extends BladeController {
list.forEach(noticeExcel -> { list.forEach(noticeExcel -> {
MaterialQuota notice = BeanUtil.copy(noticeExcel, MaterialQuota.class); MaterialQuota notice = BeanUtil.copy(noticeExcel, MaterialQuota.class);
//工艺能力
QueryWrapper<CraftAbilityEntity> queryWrapperCraft = new QueryWrapper<>();
queryWrapperCraft.eq("CA_NAME",noticeExcel.getProcessAbilityName());
List<CraftAbilityEntity> crafts = craftAbilityService.list(queryWrapperCraft);
if(null != crafts && crafts.size() > 0){
notice.setProcessAbilityId(crafts.get(0).getId());
}
noticeList.add(notice); noticeList.add(notice);
}); });
return R.data(service.saveBatch(noticeList)); return R.data(service.saveBatch(noticeList));

@ -28,16 +28,19 @@ import org.springblade.desk.basic.constant.BAModuleConst;
import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.constant.BaseCol;
import org.springblade.desk.basic.excel.OemExcel; import org.springblade.desk.basic.excel.OemExcel;
import org.springblade.desk.basic.pojo.entity.Oem; import org.springblade.desk.basic.pojo.entity.Oem;
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity;
import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.pojo.request.OemSearch; import org.springblade.desk.basic.pojo.request.OemSearch;
import org.springblade.desk.basic.pojo.vo.OemVO; import org.springblade.desk.basic.pojo.vo.OemVO;
import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.service.ICraftAbilityService;
import org.springblade.desk.basic.service.IOemCraftAbilityService;
import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.service.IOemService;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.OemWrapper; import org.springblade.desk.basic.wrapper.OemWrapper;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -71,6 +74,8 @@ public class OemController extends BladeController {
private ICraftAbilityService craftAbilityService; private ICraftAbilityService craftAbilityService;
@Resource @Resource
private IUserClient iUserClient; private IUserClient iUserClient;
@Resource
private IOemCraftAbilityService oemCraftAbilityService;
/** /**
* [外协厂家] 详情 * [外协厂家] 详情
*/ */
@ -98,10 +103,28 @@ public class OemController extends BladeController {
String result = null; String result = null;
String craftAbility = null; String craftAbility = null;
List<String> names = new ArrayList<>(); List<String> names = new ArrayList<>();
//删除关联表数据
QueryWrapper<OemCraftAbilityEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("OTHER_ID",detail.getId());
oemCraftAbilityService.remove(queryWrapper);
if(null != crafs && crafs.size()>0){ if(null != crafs && crafs.size()>0){
for(CraftAbilityEntity craft:crafs){ for(CraftAbilityEntity craft:crafs){
craftAbilityService.updateById(craft); //生成关联表数据
OemCraftAbilityEntity oemCraftAbilityEntity = new OemCraftAbilityEntity();
oemCraftAbilityEntity.setOtherId(detail.getId());
oemCraftAbilityEntity.setCraftAbilityId(craft.getId());
oemCraftAbilityEntity.setArea(craft.getArea());
oemCraftAbilityEntity.setQuality(craft.getQuality());
oemCraftAbilityEntity.setBatch(craft.getBatch());
oemCraftAbilityEntity.setSaturation(craft.getSaturation());
oemCraftAbilityEntity.setPlanner(craft.getPlanner());
oemCraftAbilityEntity.setDispatcher(craft.getDispatcher());
oemCraftAbilityEntity.setIsBatch(craft.getIsBatch());
oemCraftAbilityService.save(oemCraftAbilityEntity);
// craftAbilityService.updateById(craft);
CraftAbilityEntity craf = craftAbilityService.getById(craft.getId()); CraftAbilityEntity craf = craftAbilityService.getById(craft.getId());
names.add(craf.getCaName()); names.add(craf.getCaName());
} }
@ -146,11 +169,20 @@ public class OemController extends BladeController {
queryWrapper.in("id",ids); queryWrapper.in("id",ids);
teams = craftAbilityService.list(queryWrapper); teams = craftAbilityService.list(queryWrapper);
for(CraftAbilityEntity team:teams){ for(CraftAbilityEntity team:teams){
R<User> user= iUserClient.userInfoById(team.getDispatcher());
Long id = team.getId();
QueryWrapper<OemCraftAbilityEntity> queryWrapperOemCraft = new QueryWrapper<>();
queryWrapperOemCraft.eq("OTHER_ID",detail.getId());
queryWrapperOemCraft.eq("CRAFT_ABILITY_ID",team.getId());
OemCraftAbilityEntity craft = oemCraftAbilityService.getOne(queryWrapperOemCraft);
BeanUtils.copyProperties(craft,team);
team.setId(id);
R<User> user= iUserClient.userInfoById(craft.getDispatcher());
if(null != user && null != user.getData()){ if(null != user && null != user.getData()){
team.setDispatcherName(user.getData().getRealName()); team.setDispatcherName(user.getData().getRealName());
} }
R<User> userplan= iUserClient.userInfoById(team.getPlanner()); R<User> userplan= iUserClient.userInfoById(craft.getPlanner());
if(null != userplan && null != userplan.getData()){ if(null != userplan && null != userplan.getData()){
team.setPlannerName(userplan.getData().getRealName()); team.setPlannerName(userplan.getData().getRealName());
} }

@ -28,12 +28,17 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.constant.BAModuleConst; import org.springblade.desk.basic.constant.BAModuleConst;
import org.springblade.desk.basic.excel.MaterialQuotaExcel; import org.springblade.desk.basic.excel.MaterialQuotaExcel;
import org.springblade.desk.basic.excel.PlanAssignSteerExcel; import org.springblade.desk.basic.excel.PlanAssignSteerExcel;
import org.springblade.desk.basic.pojo.entity.MaterialQuota; import org.springblade.desk.basic.pojo.entity.*;
import org.springblade.desk.basic.pojo.entity.PlanAssignSteer;
import org.springblade.desk.basic.pojo.vo.PlanAssignSteerVO; import org.springblade.desk.basic.pojo.vo.PlanAssignSteerVO;
import org.springblade.desk.basic.service.ICraftAbilityService;
import org.springblade.desk.basic.service.ILocallyPlatedPartService;
import org.springblade.desk.basic.service.IOemService;
import org.springblade.desk.basic.service.IPlanAssignSteerService; import org.springblade.desk.basic.service.IPlanAssignSteerService;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.PlanAssignSteerWrapper; import org.springblade.desk.basic.wrapper.PlanAssignSteerWrapper;
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.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -60,7 +65,15 @@ public class PlanAssignSteerController extends BladeController {
@Resource @Resource
private IPlanAssignSteerService service; private IPlanAssignSteerService service;
@Resource
private IUserClient iUserClient;
@Resource
private IOemService oemService;
@Resource
private ICraftAbilityService craftAbilityService;
@Resource
private ILocallyPlatedPartService partService;
/** /**
* [外协分派] 详情 * [外协分派] 详情
*/ */
@ -221,8 +234,8 @@ public class PlanAssignSteerController extends BladeController {
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/外协分派.xls",
"导入模版-周期试验项目.xls"); "导入模版-外协分派.xls");
} }
/** /**
@ -247,6 +260,36 @@ public class PlanAssignSteerController extends BladeController {
list.forEach(noticeExcel -> { list.forEach(noticeExcel -> {
PlanAssignSteer notice = BeanUtil.copy(noticeExcel, PlanAssignSteer.class); PlanAssignSteer notice = BeanUtil.copy(noticeExcel, PlanAssignSteer.class);
//维护人
List<User> userPlanners = iUserClient.listByNameNolike(noticeExcel.getMaintainManName());
if(null != userPlanners && userPlanners.size() > 0){
notice.setMaintainMan(userPlanners.get(0).getId());
}
//供应商
QueryWrapper<Oem> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("OC_NAME",noticeExcel.getOemName());
List<Oem> oems = oemService.list(queryWrapper);
if(null != oems && oems.size() > 0){
notice.setOemId(oems.get(0).getId());
}
//工艺能力
QueryWrapper<CraftAbilityEntity> queryWrapperCraft = new QueryWrapper<>();
queryWrapperCraft.eq("CA_NAME",noticeExcel.getPlatingName());
List<CraftAbilityEntity> crafts = craftAbilityService.list(queryWrapperCraft);
if(null != crafts && crafts.size() > 0){
notice.setPlatingId(crafts.get(0).getId());
}
//零件
QueryWrapper<LocallyPlatedPart> queryWrapperPart = new QueryWrapper<>();
queryWrapperPart.eq("NAME",noticeExcel.getDsPartName());
List<LocallyPlatedPart> parts = partService.list(queryWrapperPart);
if(null != parts && parts.size() > 0){
notice.setDsPart(parts.get(0).getId());
}
noticeList.add(notice); noticeList.add(notice);
}); });
return R.data(service.saveBatch(noticeList)); return R.data(service.saveBatch(noticeList));

@ -33,10 +33,14 @@ import org.springblade.desk.basic.constant.BaseCol;
import org.springblade.desk.basic.constant.BaseValue; import org.springblade.desk.basic.constant.BaseValue;
import org.springblade.desk.basic.excel.PlatingExcel; import org.springblade.desk.basic.excel.PlatingExcel;
import org.springblade.desk.basic.excel.PlatingSmallExcel; 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.Plating;
import org.springblade.desk.basic.pojo.entity.PlatingSmall; import org.springblade.desk.basic.pojo.entity.PlatingSmall;
import org.springblade.desk.basic.pojo.entity.Shifts;
import org.springblade.desk.basic.pojo.vo.PlatingVO; import org.springblade.desk.basic.pojo.vo.PlatingVO;
import org.springblade.desk.basic.service.IBasicClazzService;
import org.springblade.desk.basic.service.IPlatingService; import org.springblade.desk.basic.service.IPlatingService;
import org.springblade.desk.basic.service.IPlatingSmallService;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.PlatingWrapper; import org.springblade.desk.basic.wrapper.PlatingWrapper;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@ -66,6 +70,12 @@ public class PlatingController extends BladeController {
@Resource @Resource
private IPlatingService service; private IPlatingService service;
@Resource
private IBasicClazzService basicClazzService;
@Resource
private IPlatingSmallService platingSmallservice;
/** /**
* [镀种] 详情 * [镀种] 详情
*/ */
@ -244,8 +254,8 @@ public class PlatingController extends BladeController {
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/镀种维护.xls",
"导入模版-周期试验项目.xls"); "导入模版-镀种维护.xls");
} }
/** /**
@ -269,6 +279,19 @@ public class PlatingController extends BladeController {
list.forEach(noticeExcel -> { list.forEach(noticeExcel -> {
Plating notice = BeanUtil.copy(noticeExcel, Plating.class); Plating notice = BeanUtil.copy(noticeExcel, Plating.class);
QueryWrapper<BasicClazz> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name",noticeExcel.getBcName());
List<BasicClazz> clazzes = basicClazzService.list(queryWrapper);
if(null != clazzes && clazzes.size() > 0){
notice.setBcId(clazzes.get(0).getId());
}
QueryWrapper<PlatingSmall> queryWrapperSmall = new QueryWrapper<>();
queryWrapperSmall.eq("BPS_NAME",noticeExcel.getSubClassName());
List<PlatingSmall> smalles = platingSmallservice.list(queryWrapperSmall);
if(null != smalles && smalles.size() > 0){
notice.setSubClass(smalles.get(0).getId());
}
noticeList.add(notice); noticeList.add(notice);
}); });
return R.data(service.saveBatch(noticeList)); return R.data(service.saveBatch(noticeList));

@ -28,10 +28,13 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.constant.BAModuleConst; import org.springblade.desk.basic.constant.BAModuleConst;
import org.springblade.desk.basic.excel.PlanAssignSteerExcel; import org.springblade.desk.basic.excel.PlanAssignSteerExcel;
import org.springblade.desk.basic.excel.PlatingSmallExcel; import org.springblade.desk.basic.excel.PlatingSmallExcel;
import org.springblade.desk.basic.pojo.entity.BasicClazz;
import org.springblade.desk.basic.pojo.entity.PlanAssignSteer; import org.springblade.desk.basic.pojo.entity.PlanAssignSteer;
import org.springblade.desk.basic.pojo.entity.PlatingSmall; import org.springblade.desk.basic.pojo.entity.PlatingSmall;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.pojo.vo.PlatingSmallVO; import org.springblade.desk.basic.pojo.vo.PlatingSmallVO;
import org.springblade.desk.basic.service.IPlatingSmallService; import org.springblade.desk.basic.service.IPlatingSmallService;
import org.springblade.desk.basic.service.IWorkCenterService;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.PlatingSmallWrapper; import org.springblade.desk.basic.wrapper.PlatingSmallWrapper;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@ -62,6 +65,9 @@ public class PlatingSmallController extends BladeController {
@Resource @Resource
private IPlatingSmallService service; private IPlatingSmallService service;
@Resource
private IWorkCenterService workCenterService;
/** /**
* [镀种小类] 详情 * [镀种小类] 详情
*/ */
@ -225,8 +231,8 @@ public class PlatingSmallController extends BladeController {
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/镀种小类.xls",
"导入模版-周期试验项目.xls"); "导入模版-镀种小类.xls");
} }
/** /**
@ -250,6 +256,14 @@ public class PlatingSmallController extends BladeController {
list.forEach(noticeExcel -> { list.forEach(noticeExcel -> {
PlatingSmall notice = BeanUtil.copy(noticeExcel, PlatingSmall.class); PlatingSmall notice = BeanUtil.copy(noticeExcel, PlatingSmall.class);
QueryWrapper<WorkCenter> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("WC_NAME",noticeExcel.getWcName());
List<WorkCenter> centers = workCenterService.list(queryWrapper);
if(null != centers && centers.size() > 0){
notice.setWcId(centers.get(0).getId());
}
noticeList.add(notice); noticeList.add(notice);
}); });
return R.data(service.saveBatch(noticeList)); return R.data(service.saveBatch(noticeList));

@ -223,8 +223,8 @@ public class ProdMarkController extends BladeController {
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/生产标识.xls",
"导入模版-周期试验项目.xls"); "导入模版-生产标识.xls");
} }
/** /**

@ -27,11 +27,9 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.constant.BAModuleConst; import org.springblade.desk.basic.constant.BAModuleConst;
import org.springblade.desk.basic.excel.PlatingSmallExcel; import org.springblade.desk.basic.excel.PlatingSmallExcel;
import org.springblade.desk.basic.excel.TeamSetExcel; import org.springblade.desk.basic.excel.TeamSetExcel;
import org.springblade.desk.basic.pojo.entity.PlatingSmall; import org.springblade.desk.basic.pojo.entity.*;
import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.entity.TeamTime;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.pojo.vo.TeamSetVO; import org.springblade.desk.basic.pojo.vo.TeamSetVO;
import org.springblade.desk.basic.service.IShiftsService;
import org.springblade.desk.basic.service.ITeamSetService; import org.springblade.desk.basic.service.ITeamSetService;
import org.springblade.desk.basic.service.ITeamTimeService; import org.springblade.desk.basic.service.ITeamTimeService;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
@ -71,6 +69,9 @@ public class TeamSetController extends BladeController {
@Resource @Resource
private ITeamTimeService teamTimeService; private ITeamTimeService teamTimeService;
@Resource
private IShiftsService shiftService;
/** /**
* [班组] 详情 * [班组] 详情
*/ */
@ -484,6 +485,29 @@ public class TeamSetController extends BladeController {
list.forEach(noticeExcel -> { list.forEach(noticeExcel -> {
TeamSet notice = BeanUtil.copy(noticeExcel, TeamSet.class); TeamSet notice = BeanUtil.copy(noticeExcel, TeamSet.class);
List<User> userPlanners = iUserClient.listByNameNolike(noticeExcel.getPlannerName());
if(null != userPlanners && userPlanners.size() > 0){
notice.setPlanner(userPlanners.get(0).getId());
}
List<User> userDispatchers = iUserClient.listByNameNolike(noticeExcel.getDispatcherName());
if(null != userDispatchers && userDispatchers.size() > 0){
notice.setDispatcher(userDispatchers.get(0).getId());
}
List<User> userLeaders = iUserClient.listByNameNolike(noticeExcel.getTeamLeaderName());
if(null != userLeaders && userLeaders.size() > 0){
notice.setTeamLeader(userLeaders.get(0).getId());
}
QueryWrapper<Shifts> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name",noticeExcel.getCsName());
List<Shifts> shifts = shiftService.list(queryWrapper);
if(null != shifts && shifts.size() > 0){
notice.setCsId(shifts.get(0).getId());
}
noticeList.add(notice); noticeList.add(notice);
}); });
return R.data(service.saveBatch(noticeList)); return R.data(service.saveBatch(noticeList));

@ -25,17 +25,21 @@ import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.constant.BAModuleConst; import org.springblade.desk.basic.constant.BAModuleConst;
import org.springblade.desk.basic.excel.WorkCenterExcel; import org.springblade.desk.basic.excel.WorkCenterExcel;
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity;
import org.springblade.desk.basic.pojo.entity.PlatingSmall; import org.springblade.desk.basic.pojo.entity.PlatingSmall;
import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.pojo.vo.WorkCenterVO; import org.springblade.desk.basic.pojo.vo.WorkCenterVO;
import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.service.ICraftAbilityService;
import org.springblade.desk.basic.service.IOemCraftAbilityService;
import org.springblade.desk.basic.service.ITeamSetService; import org.springblade.desk.basic.service.ITeamSetService;
import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.basic.service.IWorkCenterService;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.WorkCenterWrapper; import org.springblade.desk.basic.wrapper.WorkCenterWrapper;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springblade.scheduling.pojo.entity.TeamSetEntity; import org.springblade.scheduling.pojo.entity.TeamSetEntity;
import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -66,7 +70,8 @@ public class WorkCenterController extends BladeController {
private ITeamSetService teamService; private ITeamSetService teamService;
@Resource @Resource
private ICraftAbilityService craftAbilityService; private ICraftAbilityService craftAbilityService;
@Resource
private IOemCraftAbilityService oemCraftAbilityService;
/** /**
* [作业中心] 详情 * [作业中心] 详情
@ -211,6 +216,18 @@ public class WorkCenterController extends BladeController {
QueryWrapper<CraftAbilityEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<CraftAbilityEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id",ids); queryWrapper.in("id",ids);
teams = craftAbilityService.list(queryWrapper); teams = craftAbilityService.list(queryWrapper);
for(CraftAbilityEntity team:teams){
Long id = team.getId();
QueryWrapper<OemCraftAbilityEntity> queryWrapperOemCraft = new QueryWrapper<>();
queryWrapperOemCraft.eq("OTHER_ID",detail.getId());
queryWrapperOemCraft.eq("CRAFT_ABILITY_ID",team.getId());
OemCraftAbilityEntity craft = oemCraftAbilityService.getOne(queryWrapperOemCraft);
BeanUtils.copyProperties(craft,team);
team.setId(id);
}
} }
} }
return R.data(teams); return R.data(teams);
@ -260,9 +277,25 @@ public class WorkCenterController extends BladeController {
String result = null; String result = null;
String craftAbility = null; String craftAbility = null;
List<String> names = new ArrayList<>(); List<String> names = new ArrayList<>();
//删除关联表数据
QueryWrapper<OemCraftAbilityEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("OTHER_ID",detail.getId());
oemCraftAbilityService.remove(queryWrapper);
if(null != crafs && crafs.size()>0){ if(null != crafs && crafs.size()>0){
for(CraftAbilityEntity craft:crafs){ for(CraftAbilityEntity craft:crafs){
craftAbilityService.updateById(craft); //生成关联表数据
OemCraftAbilityEntity oemCraftAbilityEntity = new OemCraftAbilityEntity();
oemCraftAbilityEntity.setOtherId(detail.getId());
oemCraftAbilityEntity.setCraftAbilityId(craft.getId());
oemCraftAbilityEntity.setArea(craft.getArea());
oemCraftAbilityEntity.setQuality(craft.getQuality());
oemCraftAbilityEntity.setBatch(craft.getBatch());
oemCraftAbilityEntity.setSaturation(craft.getSaturation());
oemCraftAbilityEntity.setPlanner(craft.getPlanner());
oemCraftAbilityEntity.setDispatcher(craft.getDispatcher());
oemCraftAbilityEntity.setIsBatch(craft.getIsBatch());
oemCraftAbilityService.save(oemCraftAbilityEntity);
// craftAbilityService.updateById(craft);
CraftAbilityEntity craf = craftAbilityService.getById(craft.getId()); CraftAbilityEntity craf = craftAbilityService.getById(craft.getId());
names.add(craf.getCaName()); names.add(craf.getCaName());
} }

@ -50,9 +50,13 @@ public class CoatingThicknessExcel implements Serializable {
/** /**
* 是否以21E8-210开头 * 是否以21E8-210开头
*/ */
// @ColumnWidth(20)
// @ExcelProperty("是否以21E8-210开头")
private Short startF21e8;
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("是否以21E8-210开头") @ExcelProperty("是否以21E8-210开头")
private Short startF21e8; private String startF21e8Str;
/** /**
* 厚度 * 厚度
*/ */

@ -75,7 +75,8 @@ public class CraftAbilityExcel implements Serializable {
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("能力类型") @ExcelProperty("能力类型")
private Long wtId; // private Long wtId;
private String wtName;
/** /**
* 设备名称 * 设备名称
*/ */

@ -46,8 +46,9 @@ public class MaterialQuotaExcel implements Serializable {
* [工艺能力]id * [工艺能力]id
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("[工艺能力]id") @ExcelProperty("工艺能力")
private BigDecimal processAbilityId; // private BigDecimal processAbilityId;
private String processAbilityName;
/** /**
* 镀层厚度 * 镀层厚度
*/ */

@ -32,23 +32,26 @@ public class PlanAssignSteerExcel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* [外协厂家]id * [供应商]id
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("[外协厂家]id") @ExcelProperty("供应商")
private Long oemId; // private Long oemId;
private String oemName;
/** /**
* [工艺能力]id * [工艺能力]id
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("[工艺能力]id") @ExcelProperty("工艺能力")
private Long platingId; // private Long platingId;
private String platingName;
/** /**
* 零件;外键(dsPart) * 零件;外键(dsPart)
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("零件;外键(dsPart)") @ExcelProperty("零件")
private Long dsPart; // private Long dsPart;
private String dsPartName;
/** /**
* 分派比例 * 分派比例
*/ */
@ -78,7 +81,8 @@ public class PlanAssignSteerExcel implements Serializable {
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("维护人") @ExcelProperty("维护人")
private Long maintainMan; // private Long maintainMan;
private String maintainManName;
/** /**
* 维护时间 * 维护时间
*/ */

@ -46,8 +46,9 @@ public class PlatingExcel implements Serializable {
* [镀种分类]id * [镀种分类]id
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("[镀种分类]id") @ExcelProperty("[镀种分类]")
private BigDecimal bcId; // private BigDecimal bcId;
private String bcName;
/** /**
* 镀种 * 镀种
*/ */
@ -83,7 +84,8 @@ public class PlatingExcel implements Serializable {
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("镀种小类") @ExcelProperty("镀种小类")
private Long subClass; // private Long subClass;
private String subClassName;
/** /**
* 其他要求 * 其他要求
*/ */

@ -46,8 +46,9 @@ public class PlatingSmallExcel implements Serializable {
* [作业中心]id * [作业中心]id
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("[作业中心]id") @ExcelProperty("[作业中心]")
private Long wcId; // private Long wcId;
private String wcName;
/** /**
* 排序 * 排序
*/ */

@ -33,7 +33,7 @@ public class ProdMarkExcel implements Serializable {
* 编码 * 编码
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("编码") @ExcelProperty("生产标识")
private String code; private String code;
/** /**
* 类型 * 类型
@ -51,13 +51,13 @@ public class ProdMarkExcel implements Serializable {
* 是否高级 * 是否高级
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("是否高级") @ExcelProperty("是否高级-[1]:是;[0]:否;")
private String senior; private String senior;
/** /**
* 镀金标识 * 镀金标识
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("镀金标识") @ExcelProperty("镀金标识-[1]:是;[0]:否;")
private String goldMark; private String goldMark;
/** /**
* 是否军品-[1]:;[0]:; * 是否军品-[1]:;[0]:;

@ -46,19 +46,22 @@ public class TeamSetExcel implements Serializable {
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("调度员") @ExcelProperty("调度员")
private Long dispatcher; // private Long dispatcher;
private String dispatcherName;
/** /**
* 班组长;外键人员 * 班组长;外键人员
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("班组长;外键(人员)") @ExcelProperty("班组长;外键(人员)")
private Long teamLeader; // private Long teamLeader;
private String teamLeaderName;
/** /**
* 班次;外键班次 * 班次;外键班次
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("班次;外键(班次)") @ExcelProperty("班次;外键(班次)")
private Long csId; // private Long csId;
private String csName;
/** /**
* 日分派时间 * 日分派时间
*/ */
@ -70,7 +73,8 @@ public class TeamSetExcel implements Serializable {
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("创建人;外键(人员)") @ExcelProperty("创建人;外键(人员)")
private Long createMan; // private Long createMan;
private String createManName;
/** /**
* 删除标记;1:删除0:正常 * 删除标记;1:删除0:正常
*/ */
@ -82,7 +86,8 @@ public class TeamSetExcel implements Serializable {
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("作业中心") @ExcelProperty("作业中心")
private Long wcId; // private Long wcId;
private String wcName;
/** /**
* *
*/ */
@ -93,8 +98,9 @@ public class TeamSetExcel implements Serializable {
* *
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("") @ExcelProperty("计划员")
private Long planner; // private Long planner;
private String plannerName;
/** /**
* *
*/ */

@ -0,0 +1,40 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity;
/**
* 工艺能力 Mapper 接口
*
* @author BladeX
* @since 2025-12-22
*/
public interface OemCraftAbilityMapper extends BaseMapper<OemCraftAbilityEntity> {
}

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.basic.mapper.OemCraftAbilityMapper">
<!-- 通用查询映射结果 -->
<resultMap id="craftAbilityResultMap" type="org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity">
<result column="ID" property="id"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="UPDATE_TIME" property="updateTime"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
</resultMap>
<select id="selectCraftAbilityPage" resultMap="craftAbilityResultMap">
select * from BS_OEM_CRAFT where is_deleted = 0
</select>
<select id="export" resultType="org.springblade.desk.basic.excel.CraftAbilityExcel">
SELECT * FROM BS_OEM_CRAFT ${ew.customSqlSegment}
</select>
</mapper>

@ -0,0 +1,47 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.basic.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.basic.excel.CraftAbilityExcel;
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity;
import org.springblade.desk.basic.pojo.vo.CraftAbilityVO;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import java.util.List;
/**
* 工艺能力 服务类
*
* @author BladeX
* @since 2025-12-22
*/
public interface IOemCraftAbilityService extends BaseService<OemCraftAbilityEntity> {
}

@ -0,0 +1,53 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.basic.excel.CraftAbilityExcel;
import org.springblade.desk.basic.mapper.CraftAbilityMapper;
import org.springblade.desk.basic.mapper.OemCraftAbilityMapper;
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity;
import org.springblade.desk.basic.pojo.vo.CraftAbilityVO;
import org.springblade.desk.basic.service.ICraftAbilityService;
import org.springblade.desk.basic.service.IOemCraftAbilityService;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 工艺能力 服务实现类
*
* @author BladeX
* @since 2025-12-22
*/
@Service
public class OemCraftAbilityServiceImpl extends BaseServiceImpl<OemCraftAbilityMapper, OemCraftAbilityEntity> implements IOemCraftAbilityService {
}

@ -48,6 +48,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.support.Kv; import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.feign.IWorkCenterClient;
import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.system.cache.DictCache; import org.springblade.system.cache.DictCache;
import org.springblade.system.cache.UserCache; import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.Dept; import org.springblade.system.pojo.entity.Dept;
@ -56,9 +58,12 @@ import org.springblade.system.pojo.enums.DictEnum;
import org.springblade.system.pojo.vo.DeptVO; import org.springblade.system.pojo.vo.DeptVO;
import org.springblade.system.pojo.vo.UserVO; import org.springblade.system.pojo.vo.UserVO;
import org.springblade.system.service.IDeptService; import org.springblade.system.service.IDeptService;
import org.springblade.system.service.IUserService;
import org.springblade.system.wrapper.DeptWrapper; import org.springblade.system.wrapper.DeptWrapper;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -77,7 +82,8 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
public class DeptController extends BladeController { public class DeptController extends BladeController {
private final IDeptService deptService; private final IDeptService deptService;
private final IWorkCenterClient workCenterClient;
private final IUserService userService;
/** /**
* 详情 * 详情
*/ */
@ -107,6 +113,24 @@ public class DeptController extends BladeController {
return R.data(DeptWrapper.build().listNodeVO(list)); return R.data(DeptWrapper.build().listNodeVO(list));
} }
@GetMapping("/listDeptTeamSet")
@Parameters({
@Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "fullName", description = "部门全称", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@ApiOperationSupport(order = 2)
@Operation(summary = "列表", description = "传入dept")
public R<List<DeptVO>> listDeptTeamSet(@Parameter(hidden = true) @RequestParam Map<String, Object> dept, BladeUser bladeUser) {
QueryWrapper<Dept> queryWrapper = Condition.getQueryWrapper(dept, Dept.class);
List<Dept> list = deptService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Dept::getTenantId, bladeUser.getTenantId()) : queryWrapper);
return R.data(DeptWrapper.build().listNodeVO(list));
}
/** /**
* 懒加载列表 * 懒加载列表
*/ */
@ -147,6 +171,18 @@ public class DeptController extends BladeController {
return R.data(tree); return R.data(tree);
} }
@GetMapping("/findUserByTeam")
@ApiOperationSupport(order = 5)
@Operation(summary = "懒加载树形结构", description = "树形结构")
public R findUserByTeam(Long teamSetId) {
Map<String, List> map = deptService.findUserByTeam(teamSetId);
return R.data(map);
}
/** /**
* 新增或修改 * 新增或修改
*/ */

@ -66,6 +66,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -101,10 +102,12 @@ public class UserController {
@PostMapping("/getUnSelectUser") @PostMapping("/getUnSelectUser")
@ApiOperationSupport(order = 31) @ApiOperationSupport(order = 31)
@Operation(summary = "获取未选择人员", description = "传入WorkCenter List") @Operation(summary = "获取未选择人员", description = "传入WorkCenter List")
public R<List<User>> getUnSelectUser(@Valid @RequestBody TeamSet teamSet) { public R getUnSelectUser(@Valid @RequestBody TeamSet teamSet) {
List<User> teams = new ArrayList<>();
// QueryWrapper<TeamSet> qw = Condition.getQueryWrapper(teamSet); Map<String, List> map = new HashMap<>();
// TeamSet detail = service.getOne(qw);
List<User> teamUnSelects = new ArrayList<>();
List<User> teamSelects = new ArrayList<>();
TeamSet detail = workCenterClient.getTeamSetById(teamSet.getId()).getData(); TeamSet detail = workCenterClient.getTeamSetById(teamSet.getId()).getData();
@ -115,13 +118,26 @@ public class UserController {
List<Long> ids = Func.toLongList(teamId); List<Long> ids = Func.toLongList(teamId);
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.notIn("id",ids); queryWrapper.notIn("id",ids);
teams = userService.list(queryWrapper); queryWrapper.eq("dept_id",teamSet.getDeptId());
teamUnSelects = userService.list(queryWrapper);
}else{ }else{
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); QueryWrapper<User> queryWrapper = new QueryWrapper<>();
teams = userService.list(queryWrapper); queryWrapper.eq("dept_id",teamSet.getDeptId());
teamUnSelects = userService.list(queryWrapper);
} }
map.put("teamUnSelects",teamUnSelects);
if(null != teamId && !"".equals(teamId)){
List<Long> ids = Func.toLongList(teamId);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id",ids);
queryWrapper.eq("dept_id",teamSet.getDeptId());
teamSelects = userService.list(queryWrapper);
}
map.put("teamSelects",teamSelects);
} }
return R.data(teams); return R.data(map);
} }
@ -137,6 +153,7 @@ public class UserController {
List<Long> ids = Func.toLongList(teamId); List<Long> ids = Func.toLongList(teamId);
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id",ids); queryWrapper.in("id",ids);
queryWrapper.eq("dept_id",teamSet.getDeptId());
teams = userService.list(queryWrapper); teams = userService.list(queryWrapper);
} }
} }

@ -86,6 +86,16 @@ public class UserClient implements IUserClient {
return users; return users;
} }
@Override
public List<User> listByNameNolike(String name) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("real_name",name);
List<User> users = service.list(queryWrapper);
return users;
}
@Override @Override
@GetMapping(USER_BY_ID) @GetMapping(USER_BY_ID)
public R<User> userInfoById(Long userId) { public R<User> userInfoById(Long userId) {

@ -26,6 +26,8 @@
package org.springblade.system.service; package org.springblade.system.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
import org.springblade.system.pojo.entity.Dept; import org.springblade.system.pojo.entity.Dept;
import org.springblade.system.pojo.vo.DeptVO; import org.springblade.system.pojo.vo.DeptVO;
import org.springblade.system.pojo.vo.UserVO; import org.springblade.system.pojo.vo.UserVO;
@ -66,7 +68,7 @@ public interface IDeptService extends IService<Dept> {
* @return * @return
*/ */
List<DeptVO> lazyTree(String tenantId, Long parentId); List<DeptVO> lazyTree(String tenantId, Long parentId);
Map<String, List> findUserByTeam(Long teamSetId);
/** /**
* 获取部门ID * 获取部门ID
* *

@ -25,7 +25,10 @@
*/ */
package org.springblade.system.service.impl; package org.springblade.system.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -36,6 +39,8 @@ import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringPool; import org.springblade.core.tool.utils.StringPool;
import org.springblade.core.tool.utils.StringUtil; import org.springblade.core.tool.utils.StringUtil;
import org.springblade.desk.basic.feign.IWorkCenterClient;
import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.system.cache.SysCache; import org.springblade.system.cache.SysCache;
import org.springblade.system.mapper.DeptMapper; import org.springblade.system.mapper.DeptMapper;
import org.springblade.system.pojo.entity.Dept; import org.springblade.system.pojo.entity.Dept;
@ -48,9 +53,7 @@ import org.springblade.system.wrapper.DeptWrapper;
import org.springblade.system.wrapper.UserWrapper; import org.springblade.system.wrapper.UserWrapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -66,7 +69,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
private static final String PARENT_ID = "parentId"; private static final String PARENT_ID = "parentId";
private final IUserService userService; private final IUserService userService;
private final IWorkCenterClient workCenterClient;
@Override @Override
public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) { public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
// 设置租户ID // 设置租户ID
@ -110,6 +113,150 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId)); return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
} }
@Override
public Map<String, List> findUserByTeam(Long teamSetId) {
Map<String, List> map = new HashMap<>();
List<User> teamUnSelects = new ArrayList<>();
List<User> teamSelects = new ArrayList<>();
Map<String, List<User>> noChooseMap = new HashMap<>();
Map<String, List<User>> chooseMap = new HashMap<>();
TeamSet detail = workCenterClient.getTeamSetById(teamSetId).getData();
if(detail != null){
String teamId = detail.getTeamMemberId();
if(null != teamId && !"".equals(teamId)){
List<Long> ids = Func.toLongList(teamId);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.notIn("id",ids);
// queryWrapper.eq("dept_id",parentId);
teamUnSelects = userService.list(queryWrapper);
}else{
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq("dept_id",parentId);
teamUnSelects = userService.list(queryWrapper);
}
if(null != teamId && !"".equals(teamId)){
List<Long> ids = Func.toLongList(teamId);
QueryWrapper<User> 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<Long, List<Dept>> deptMap = this.loadDeptMap();
// 获取所有父级部门并排序
List<Dept> dataList = deptMap.get(0L);
map.put("teamUnSelects",this.loadDeptUserTreeJSON(dataList, deptMap, noChooseMap));
map.put("teamSelects",this.loadDeptUserTreeJSON(dataList, deptMap, chooseMap));
return map;
}
private JSONArray loadDeptUserTreeJSON(List<Dept> deptList, Map<Long, List<Dept>> map,
Map<String, List<User>> userMap) {
JSONArray array = new JSONArray();
if (deptList == null || deptList.size() == 0 || userMap == null || userMap.size() == 0) {
return array;
}
for (Dept dept : deptList) {
Long deptId = dept.getId();
JSONArray rtnArray = null;
// 判定有无子级,迭代处理子级层级关系
List<Dept> tempList = map.get(deptId);
if (tempList != null && tempList.size() > 0) {
rtnArray = this.loadDeptUserTreeJSON(tempList, map, userMap);
}
// 判定该部门下有无员工,组装员工信息
List<User> userList = userMap.get(deptId.toString());
if (userList != null && userList.size() > 0) {
if (rtnArray == null) {
rtnArray = new JSONArray();
}
for (User u : userList) {
rtnArray.add(this.userToJSON(u, deptId));
}
}
// 该部门下没有子级部门,也没有下属员工跳过该部门
if (rtnArray == null || rtnArray.size() == 0) {
continue;
}
JSONObject deptObj = deptToJSON(dept, dept.getParentId());
deptObj.put("children", rtnArray);
array.add(deptObj);
}
return array;
}
private JSONObject deptToJSON(Dept dept, Long parentId) {
if (parentId == null) {
parentId = dept.getId();
}
JSONObject obj = new JSONObject();
obj.put("id", "dept-" + dept.getId());
obj.put("pid", "dept-"+ parentId);
obj.put("label", dept.getDeptName());
obj.put("type", "folder");
return obj;
}
private JSONObject userToJSON(User user, Long parentId) {
if (parentId == null) {
parentId = user.getId();
}
JSONObject obj = new JSONObject();
obj.put("id", "user-" + user.getId());
obj.put("pid", "dept-" + parentId);
obj.put("label", user.getName());
obj.put("type", "item");
return obj;
}
private Map<Long, List<Dept>> loadDeptMap() {
List<Dept> deptList = this.list();
Map<Long, List<Dept>> map = new LinkedHashMap<Long, List<Dept>>();
List<Dept> tempList;
Long parentDeptId;
for (Dept dept : deptList) {
parentDeptId = dept.getParentId();
if (parentDeptId == null) {
parentDeptId = 0L;
}
tempList = map.get(parentDeptId);
if (tempList == null) {
tempList = new LinkedList<>();
map.put(parentDeptId, tempList);
}
tempList.add(dept);
}
return map;
}
@Override @Override
public String getDeptIds(String tenantId, String deptNames) { public String getDeptIds(String tenantId, String deptNames) {
List<Dept> deptList = baseMapper.selectList(Wrappers.<Dept>query().lambda().eq(Dept::getTenantId, tenantId).in(Dept::getDeptName, Func.toStrList(deptNames))); List<Dept> deptList = baseMapper.selectList(Wrappers.<Dept>query().lambda().eq(Dept::getTenantId, tenantId).in(Dept::getDeptName, Func.toStrList(deptNames)));

Loading…
Cancel
Save