diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/logistics/OrderBoxRefinement.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/logistics/OrderBoxRefinement.java index 69c4975d..ef6cd710 100644 --- a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/logistics/OrderBoxRefinement.java +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/logistics/OrderBoxRefinement.java @@ -1,7 +1,10 @@ package org.springblade.job.processor.logistics; +import jakarta.annotation.Resource; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.dashboard.feign.IOrderBoxClient; +import org.springblade.desk.dashboard.feign.IPartClient; import org.springframework.stereotype.Component; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; @@ -14,10 +17,12 @@ import tech.powerjob.worker.core.processor.sdk.BasicProcessor; @Data @Slf4j public class OrderBoxRefinement implements BasicProcessor { + @Resource + private IOrderBoxClient client; + @Override - public ProcessResult process(TaskContext taskContext) throws Exception { - System.out.println("hello world"); - log.info("hello world"); + public ProcessResult process(TaskContext context) throws Exception { + client.monitoringStation(); return new ProcessResult(true); } } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/CenterTeam.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/CenterTeam.java new file mode 100644 index 00000000..fe482fae --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/CenterTeam.java @@ -0,0 +1,48 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.pojo.entity; + +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; + +/** + * [班组用户关联] 实体类 + * + * @author Tom Shuo + * @since 2026-01-13 + */ +@Data +@TableName("BS_CENTER_TEAM") +@Schema(description = "RelTeamSetUser Entity对象") +@EqualsAndHashCode(callSuper = true) +public class CenterTeam extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 作业中心id + */ + public static final String COL_TEAM_SET_ID = "WC_ID"; + /** + *班组 + */ + public static final String COL_USER_ID = "TS_ID"; + + /** + * [班组]id + */ + @Schema(description = "[班组]id") + private Long tsId; + /** + * 作业中心id + */ + @Schema(description = "作业中心id") + private Long wcId; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/TeamSet.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/TeamSet.java index f2b56904..42486725 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/TeamSet.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/TeamSet.java @@ -180,5 +180,7 @@ public class TeamSet extends BaseEntity { @TableField(exist = false) private Long deptId; + @TableField(exist = false) + private String teamId; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/CenterTeamVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/CenterTeamVO.java new file mode 100644 index 00000000..bdc6c4e0 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/CenterTeamVO.java @@ -0,0 +1,26 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.basic.pojo.entity.CenterTeam; +import org.springblade.desk.basic.pojo.entity.TeamSet; + +import java.io.Serial; + +/** + * [班组] 视图实体类 + * + * @author Tom Shuo + * @since 2025-12-16 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class CenterTeamVO extends CenterTeam { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/feign/IOrderBoxClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/feign/IOrderBoxClient.java new file mode 100644 index 00000000..27485cd1 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/feign/IOrderBoxClient.java @@ -0,0 +1,32 @@ +package org.springblade.desk.dashboard.feign; + +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; +import org.springblade.desk.dashboard.pojo.entity.DsPartRelationEntity; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * 零件服务Feign客户端 + * 修正点:所有GET请求参数添加@RequestParam注解,解决Feign多Body参数异常 + * @author liweidong + */ +@FeignClient( + value = AppConstant.APPLICATION_DESK_NAME +) +public interface IOrderBoxClient { + + String API_PREFIX = "/feign/client/order-box"; + + String MONITORING_STATION = API_PREFIX + "/monitoring-station"; + + + /** + * 零件同步 + */ + @GetMapping(MONITORING_STATION) + void monitoringStation(); +} \ No newline at end of file diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewDutyDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewDutyDTO.java index 07966acf..70b0d707 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewDutyDTO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewDutyDTO.java @@ -20,5 +20,48 @@ import java.io.Serial; public class ReviewDutyDTO extends ReviewDuty { @Serial private static final long serialVersionUID = 1L; + /** + * 审理单Id + */ + private String trialId; + /** + * 序号 + */ + private String trialSeq; + + /** + * 物料号 + */ + private String mdsItemCode; + + /** + * 批次号 + */ + private String batchNo; + + /** + * 相关物料号 + */ + private String corrMdsItemCode; + + /** + * 相关批次号 + */ + private String corrBatchNo; + + /** + * 备注 + */ + private String note; + + /** + * 数量 + */ + private Short reqQty; + + /** + * 单位 + */ + private String unit; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewFaultDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewFaultDTO.java index c321096d..4529ce19 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewFaultDTO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewFaultDTO.java @@ -20,5 +20,44 @@ import java.io.Serial; public class ReviewFaultDTO extends ReviewFault { @Serial private static final long serialVersionUID = 1L; + /** + * 审理单Id + */ + private String trialId; + + /** + * 序号 + */ + private String trialSeq; + + /** + * 故障类别 + */ + private String faultType; + + /** + * 问题大类 + */ + private String questClass; + + /** + * 问题小类 + */ + private String questSubclass; + + /** + * 比例 + */ + private Double proportion; + + /** + * 数量 + */ + private Long faultQty; + + /** + * 描述 + */ + private String describe; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewSheetDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewSheetDTO.java index 8524efe0..d5d1860a 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewSheetDTO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewSheetDTO.java @@ -21,4 +21,97 @@ public class ReviewSheetDTO extends ReviewSheet { @Serial private static final long serialVersionUID = 1L; + /** + * 批次号 + */ + private String batchNo; + + /** + * 车间订单号/外协交件号.业务号 + */ + private String businessNo; + + /** + * 检验员编码 + */ + private String checkUserCode; + + /** + * 物料编码 + */ + private String mdsItemCode; + + /** + * 物料名称 + */ + private String mdsItemName; + + /** + * 质量等级 + */ + private String levels; + + /** + * 发现部门 + */ + private String findWorkShop; + + /** + * 是否质量问题 + */ + private Boolean qualityquestion; + + /** + * 审理单状态 + */ + private String trialStatus = "21"; + + /** + * 总数量 + */ + private Double needQty; + + /** + * 上级编号 + */ + private String preCode; + + /** + * 比例 + */ + private Double proporTion; + + /** + * 不合格数量 + */ + private Double subQty; + + /** + * 简单原因 + */ + private String easyReason; + + /** + * 处置单类型(1-零件模式/2-装配模式/5-售后模式) + */ + private String trialType; + + /** + * 工序号 + */ + private String seqNo; + /** + * 工序名称 + */ + private String seqName; + + /** + * 发现人 + */ + private String findUserCode; + /** + * 处置单类型(1-提交质保/2-提交工艺/3-提交设计) + */ + private String hearDis; + } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java index 66ce4176..ec66f6d3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java @@ -423,4 +423,6 @@ public class ReviewSheet extends BaseEntity { //当前工序id private Long ppsId; + + private Integer submitType; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java index aafbfbc0..ff708f05 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java @@ -30,6 +30,7 @@ import org.springblade.desk.basic.excel.PlatingSmallExcel; import org.springblade.desk.basic.excel.TeamSetExcel; import org.springblade.desk.basic.pojo.entity.*; import org.springblade.desk.basic.pojo.vo.TeamSetVO; +import org.springblade.desk.basic.service.IRelTeamSetUserService; import org.springblade.desk.basic.service.IShiftsService; import org.springblade.desk.basic.service.ITeamSetService; import org.springblade.desk.basic.service.ITeamTimeService; @@ -73,6 +74,9 @@ public class TeamSetController extends BladeController { @Resource private IShiftsService shiftService; + @Resource + private IRelTeamSetUserService relTeamSetUserService; + /** * [班组] 详情 */ @@ -93,14 +97,25 @@ public class TeamSetController extends BladeController { List teams = new ArrayList<>(); QueryWrapper qw = Condition.getQueryWrapper(teamSet); TeamSet detail = service.getOne(qw); - if(detail != null){ - String teamId = detail.getTeamMemberId(); - if(null != teamId && !"".equals(teamId)){ - teams = iUserClient.userUNListByIds(teamId); - }else{ - teams = iUserClient.userUNListByIds(""); - } + + QueryWrapper qwuser = new QueryWrapper<>(); + qwuser.eq("TEAM_SET_ID", detail.getId()); + List users = relTeamSetUserService.list(qwuser); + if(null != users && users.size() > 0){ + List userIds = users.stream().map(RelTeamSetUser::getUserId).collect(Collectors.toList()); + String userId = Func.toStr(userIds); + teams = iUserClient.userUNListByIds(userId); + }else{ + teams = iUserClient.userUNListByIds(""); } +// if(detail != null){ +// String teamId = detail.getTeamMemberId(); +// if(null != teamId && !"".equals(teamId)){ +// teams = iUserClient.userUNListByIds(teamId); +// }else{ +// teams = iUserClient.userUNListByIds(""); +// } +// } return R.data(teams); } @@ -111,12 +126,22 @@ public class TeamSetController extends BladeController { List teams = new ArrayList<>(); QueryWrapper qw = Condition.getQueryWrapper(teamSet); TeamSet detail = service.getOne(qw); - if(detail != null){ - String teamId = detail.getTeamMemberId(); - if(null != teamId && !"".equals(teamId)){ - teams = iUserClient.userListByIds(teamId); - } + + QueryWrapper qwuser = new QueryWrapper<>(); + qwuser.eq("TEAM_SET_ID", detail.getId()); + List users = relTeamSetUserService.list(qwuser); + if(null != users && users.size() > 0){ + List userIds = users.stream().map(RelTeamSetUser::getUserId).collect(Collectors.toList()); + String userId = Func.toStr(userIds); + teams = iUserClient.userListByIds(userId); } + +// if(detail != null){ +// String teamId = detail.getTeamMemberId(); +// if(null != teamId && !"".equals(teamId)){ +// teams = iUserClient.userListByIds(teamId); +// } +// } return R.data(teams); } @@ -156,6 +181,7 @@ public class TeamSetController extends BladeController { } + @PostMapping("/updateUserId") @ApiOperationSupport(order = 31) @Operation(summary = "设置人员Id保存", description = "传入WorkCenter List") @@ -167,16 +193,22 @@ public class TeamSetController extends BladeController { 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(",")); + for(Long teamId:teamIds){ + RelTeamSetUser relTeamSetUser = new RelTeamSetUser(); + relTeamSetUser.setTeamSetId(detail.getId()); + relTeamSetUser.setUserId(teamId); + relTeamSetUserService.save(relTeamSetUser); + } +// 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); 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 7e18319e..17d52fb2 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 @@ -26,15 +26,9 @@ import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.constant.BAModuleConst; 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.TeamSet; -import org.springblade.desk.basic.pojo.entity.WorkCenter; +import org.springblade.desk.basic.pojo.entity.*; import org.springblade.desk.basic.pojo.vo.WorkCenterVO; -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.IWorkCenterService; +import org.springblade.desk.basic.service.*; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.wrapper.WorkCenterWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; @@ -76,6 +70,8 @@ public class WorkCenterController extends BladeController { private IOemCraftAbilityService oemCraftAbilityService; @Resource private IUserClient iUserClient; + @Resource + private ICenterTeamService teamCenterService; /** * [作业中心] 详情 */ @@ -183,19 +179,35 @@ public class WorkCenterController extends BladeController { List teams = new ArrayList<>(); QueryWrapper qw = Condition.getQueryWrapper(workCenter); WorkCenter detail = service.getOne(qw); - if(detail != null){ - String teamId = detail.getTeamId(); - if(null != teamId && !"".equals(teamId)){ - List ids = Func.toLongList(teamId); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.notIn("id",ids); - teams = teamService.list(queryWrapper); - }else{ - QueryWrapper queryWrapper = new QueryWrapper<>(); - teams = teamService.list(queryWrapper); - } + QueryWrapper qwteam = new QueryWrapper<>(); + qwteam.eq("WC_ID",detail.getId()); + List teamList = teamCenterService.list(qwteam); + List ids = new ArrayList<>(); + if(null != teamList && teamList.size() > 0){ + ids = teamList.stream().map(CenterTeam::getTsId).collect(Collectors.toList()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.notIn("id",ids); + teams = teamService.list(queryWrapper); + }else{ + QueryWrapper queryWrapper = new QueryWrapper<>(); + teams = teamService.list(queryWrapper); } + + +// if(detail != null){ +// String teamId = detail.getTeamId(); +// if(null != teamId && !"".equals(teamId)){ +// List ids = Func.toLongList(teamId); +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.notIn("id",ids); +// teams = teamService.list(queryWrapper); +// }else{ +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// teams = teamService.list(queryWrapper); +// } +// +// } return R.data(teams); } @@ -206,15 +218,27 @@ public class WorkCenterController extends BladeController { List teams = new ArrayList<>(); QueryWrapper qw = Condition.getQueryWrapper(workCenter); WorkCenter detail = service.getOne(qw); - if(detail != null){ - String teamId = detail.getTeamId(); - if(null != teamId && !"".equals(teamId)){ - List ids = Func.toLongList(teamId); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.in("id",ids); - teams = teamService.list(queryWrapper); - } + + QueryWrapper qwteam = new QueryWrapper<>(); + qwteam.eq("WC_ID",detail.getId()); + List teamList = teamCenterService.list(qwteam); + List ids = new ArrayList<>(); + if(null != teamList && teamList.size() > 0){ + ids = teamList.stream().map(CenterTeam::getTsId).collect(Collectors.toList()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id",ids); + teams = teamService.list(queryWrapper); } + +// if(detail != null){ +// String teamId = detail.getTeamId(); +// if(null != teamId && !"".equals(teamId)){ +// List ids = Func.toLongList(teamId); +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.in("id",ids); +// teams = teamService.list(queryWrapper); +// } +// } return R.data(teams); } @@ -251,7 +275,6 @@ public class WorkCenterController extends BladeController { return R.data(teams); } - @PostMapping("/updateTeamId") @ApiOperationSupport(order = 31) @Operation(summary = "设置班组Id保存", description = "传入WorkCenter List") @@ -263,17 +286,25 @@ public class WorkCenterController extends BladeController { String result = null; String team = null; if(null != teamIds){ - result = teamIds.stream() - .map(Object::toString) // 或者直接使用String::valueOf,效果相同 - .collect(Collectors.joining(",")); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.in("id",teamIds); - List teams = teamService.list(queryWrapper); + for(Long teamId:teamIds){ + CenterTeam centerteam = new CenterTeam(); + centerteam.setWcId(detail.getId()); + centerteam.setTsId(teamId); + teamCenterService.save(centerteam); + } - team= teams.stream() - .map(user -> String.valueOf(user.getTsName())) - .collect(Collectors.joining(",")); +// result = teamIds.stream() +// .map(Object::toString) // 或者直接使用String::valueOf,效果相同 +// .collect(Collectors.joining(",")); +// +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.in("id",teamIds); +// List teams = teamService.list(queryWrapper); +// +// team= teams.stream() +// .map(user -> String.valueOf(user.getTsName())) +// .collect(Collectors.joining(",")); } detail.setTeamId(result); 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 84a5ae73..a8e2e1ad 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 @@ -1,19 +1,25 @@ package org.springblade.desk.basic.feign; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.v3.oas.annotations.Hidden; 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.RelTeamSetUser; 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.IRelTeamSetUserService; import org.springblade.desk.basic.service.ITeamSetService; import org.springblade.desk.basic.service.IWorkCenterService; import org.springframework.web.bind.annotation.RestController; +import java.util.List; +import java.util.stream.Collectors; + /** * 作业中心 Feign接口类 * @@ -30,6 +36,8 @@ public class WorkCenterClient implements IWorkCenterClient { private ITeamSetService service; @Resource private IBasicClazzService clazzService; + @Resource + private IRelTeamSetUserService relTeamSetUserService; @Override public R getById(Long workCenterId) { WorkCenter workCenter = workCenterService.getById(workCenterId); @@ -38,7 +46,20 @@ public class WorkCenterClient implements IWorkCenterClient { @Override public R getTeamSetById(Long id) { - return R.data(service.getById(id)); + TeamSet teamSet =service.getById(id); + QueryWrapper qwuser = new QueryWrapper<>(); + qwuser.eq("TEAM_SET_ID", id); + List users = relTeamSetUserService.list(qwuser); + if(null != users && users.size() > 0){ + String userIds = users.stream() + .map(RelTeamSetUser::getUserId) + .map(Object::toString) // 或者直接使用String::valueOf,效果相同 + .collect(Collectors.joining(",")); + teamSet.setTeamId(userIds); + } + + + return R.data(teamSet); } @Override diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CenterTeamMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CenterTeamMapper.java new file mode 100644 index 00000000..b2d3dc25 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CenterTeamMapper.java @@ -0,0 +1,25 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.desk.basic.excel.TeamSetExcel; +import org.springblade.desk.basic.pojo.entity.CenterTeam; +import org.springblade.desk.basic.pojo.entity.TeamSet; +import org.springblade.desk.basic.pojo.vo.TeamSetVO; + +import java.util.List; + +/** + * + * + * @author Tom Shuo + * @since 2025-12-16 + */ +public interface CenterTeamMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CenterTeamMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CenterTeamMapper.xml new file mode 100644 index 00000000..b66c4a77 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/CenterTeamMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICenterTeamService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICenterTeamService.java new file mode 100644 index 00000000..b5181377 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ICenterTeamService.java @@ -0,0 +1,26 @@ +/** + * Author: Tom Shuo + */ +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.core.tool.api.R; +import org.springblade.desk.basic.excel.TeamSetExcel; +import org.springblade.desk.basic.pojo.entity.CenterTeam; +import org.springblade.desk.basic.pojo.entity.TeamSet; +import org.springblade.desk.basic.pojo.vo.TeamSetVO; +import org.springblade.system.pojo.entity.User; + +import java.util.List; + +/** + * + * + * @author Tom Shuo + * @since 2025-12-16 + */ +public interface ICenterTeamService extends BaseService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IUserRightService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IUserRightService.java index 046cf4b1..e404ecbf 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IUserRightService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IUserRightService.java @@ -41,4 +41,11 @@ public interface IUserRightService extends BaseService { * @param vo */ void setVOValue(UserRightVO vo); + + /** + * 获取团队id + * @param userId + * @return + */ + List getTeamId(Long userId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CenterTeamServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CenterTeamServiceImpl.java new file mode 100644 index 00000000..2614f4d2 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/CenterTeamServiceImpl.java @@ -0,0 +1,46 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.api.R; +import org.springblade.desk.basic.excel.TeamSetExcel; +import org.springblade.desk.basic.mapper.CenterTeamMapper; +import org.springblade.desk.basic.mapper.TeamSetMapper; +import org.springblade.desk.basic.pojo.entity.CenterTeam; +import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; +import org.springblade.desk.basic.pojo.entity.TeamSet; +import org.springblade.desk.basic.pojo.vo.TeamSetVO; +import org.springblade.desk.basic.service.ICenterTeamService; +import org.springblade.desk.basic.service.IRelTeamSetUserService; +import org.springblade.desk.basic.service.ITeamSetService; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * + * @author Tom Shuo + * @since 2025-12-16 + */ +@Service +@Data +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class CenterTeamServiceImpl extends BaseServiceImpl implements ICenterTeamService { + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/UserRightServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/UserRightServiceImpl.java index 527080ae..a909b929 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/UserRightServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/UserRightServiceImpl.java @@ -5,6 +5,8 @@ package org.springblade.desk.basic.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import jakarta.annotation.Resource; import lombok.AllArgsConstructor; import lombok.Data; @@ -12,6 +14,7 @@ import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.api.R; +import org.springblade.desk.basic.constant.UserRightConst; import org.springblade.desk.basic.excel.UserRightExcel; import org.springblade.desk.basic.mapper.UserRightMapper; import org.springblade.desk.basic.pojo.entity.UserRight; @@ -66,4 +69,13 @@ public class UserRightServiceImpl extends BaseServiceImpl getTeamId(Long userId) { + List bsTeamSet = this.list(Wrappers.lambdaQuery(UserRight.class).eq(UserRight::getUserId, userId).eq(UserRight::getUrType, UserRightConst.UR_TYPE_TEAM_SET)); + if (CollectionUtils.isEmpty(bsTeamSet)) { + return null; + } + return bsTeamSet.stream().map(UserRight::getTheId).toList(); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/wrapper/CenterTeamWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/wrapper/CenterTeamWrapper.java new file mode 100644 index 00000000..23879920 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/wrapper/CenterTeamWrapper.java @@ -0,0 +1,38 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.basic.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.basic.pojo.entity.CenterTeam; +import org.springblade.desk.basic.pojo.entity.TeamSet; +import org.springblade.desk.basic.pojo.vo.CenterTeamVO; +import org.springblade.desk.basic.pojo.vo.TeamSetVO; + +import java.util.Objects; + +/** + * [班组] 包装类,返回视图层所需的字段 + * + * @author Tom Shuo + * @since 2025-12-16 + */ +public class CenterTeamWrapper extends BaseEntityWrapper { + + public static CenterTeamWrapper build() { + return new CenterTeamWrapper(); + } + + @Override + public CenterTeamVO entityVO(CenterTeam teamSet) { + CenterTeamVO VO = Objects.requireNonNull(BeanUtil.copyProperties(teamSet, CenterTeamVO.class)); + + //User createUser = UserCache.getUser(teamSet.getCreateUser()); + //User updateUser = UserCache.getUser(teamSet.getUpdateUser()); + //teamSetVO.setCreateUserName(createUser.getName()); + //teamSetVO.setUpdateUserName(updateUser.getName()); + + return VO; + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/feign/OrderBoxClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/feign/OrderBoxClient.java new file mode 100644 index 00000000..32c87b00 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/feign/OrderBoxClient.java @@ -0,0 +1,28 @@ +package org.springblade.desk.dashboard.feign; + +import io.swagger.v3.oas.annotations.Hidden; +import jakarta.annotation.Resource; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; +import org.springblade.desk.dashboard.pojo.entity.DsPartRelationEntity; +import org.springblade.desk.dashboard.service.IDsPartRelationService; +import org.springblade.desk.dashboard.service.IDsPartService; +import org.springblade.desk.dashboard.service.IDsTaskingService; +import org.springblade.desk.logistics.service.IStorageMonitoringService; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@Hidden() +public class OrderBoxClient implements IOrderBoxClient { + + @Resource + private IStorageMonitoringService storageMonitoringService; + + + @Override + public void monitoringStation() { + storageMonitoringService.monitoringStation(); + } +} + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java index 2c2f7aef..a16851b4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRackSetService.java @@ -67,4 +67,12 @@ public interface IRackSetService extends BaseService { * @return */ Boolean bind(@NotEmpty List ids, Integer deviceId); + + /** + * 根据挂具编号查询挂具信息 + * + * @param rsCode + * @return + */ + RackSetEntity getBsRackSetByCode(String rsCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java index 6d197291..da245702 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RackSetServiceImpl.java @@ -26,6 +26,7 @@ package org.springblade.desk.device.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springblade.desk.device.mapper.RackSetMapper; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; @@ -91,4 +92,13 @@ public class RackSetServiceImpl extends BaseServiceImpl rackSets = this.list(Wrappers.lambdaQuery(RackSetEntity.class).eq(RackSetEntity::getRsCode, rsCode)); + if (CollectionUtils.isEmpty(rackSets)) { + return null; + } + return rackSets.get(0); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java index cf491320..dc54338a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBindController.java @@ -20,6 +20,7 @@ import org.springblade.desk.logistics.pojo.vo.OrderBindVO; import org.springblade.desk.logistics.pojo.vo.TaskVO; import org.springblade.desk.logistics.service.IOrderBindService; import org.springblade.desk.logistics.service.IOrderBoxService; +import org.springblade.desk.order.service.IYieldOrderService; import org.springframework.web.bind.annotation.*; /** @@ -35,6 +36,7 @@ import org.springframework.web.bind.annotation.*; public class OrderBindController { private final IOrderBindService iOrderBindService; private final IOrderBoxService iOrderBoxService; + private final IYieldOrderService iYieldOrderService; @PostMapping("/box-binding") @ApiOperationSupport(order = 1) @@ -82,6 +84,15 @@ public class OrderBindController { return iOrderBindService.getBoxcodelist(); } + @GetMapping("/card-no") + @ApiOperationSupport(order = 5) + @Operation( + summary = "根据流程卡号查询", + description = "根据流程卡号查询" + ) + public R getCardNo(String cardNo) throws BusinessException { + return iYieldOrderService.getCardNo(cardNo); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java index 19aa9e01..89c9edac 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StorageMonitoringServiceImpl.java @@ -90,7 +90,7 @@ public class StorageMonitoringServiceImpl implements IStorageMonitoringService { * - 库位ID/任务/库位信息空值校验,跳过异常数据 * - 状态未变化时跳过更新,减少数据库IO */ - @Scheduled(cron = "0 0/5 * * * ?") +// @Scheduled(cron = "0 0/5 * * * ?") @Override // 实现IStorageMonitoringService接口的抽象方法 public void monitoringStation() { // ========== 步骤1:查询所有空闲状态的站点 ========== diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java index ff8ac5a4..2461af9d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java @@ -104,15 +104,14 @@ public class OemOrderController extends BladeController { IPage pages = workOrderRunService.queryOemApproval(Condition.getPage(query), approvalQuery); return R.data(pages); } - /** - * 审批 + * 批量审批 */ - @PostMapping("/approval") + @PostMapping("/batchApproval") @ApiOperationSupport(order = 4) - @Operation(summary = "审批", description = "") - public R approval(@Valid @RequestBody OemApproval oemApproval) throws Exception { - return workOrderRunService.approval(oemApproval); + @Operation(summary = "批量审批", description = "") + public R batchApproval(@Valid @RequestBody List oemApprovals) throws Exception { + return workOrderRunService.batchApproval(oemApprovals); } /** @@ -121,13 +120,14 @@ public class OemOrderController extends BladeController { @GetMapping("/prepareOemBatches") @ApiOperationSupport(order = 5) @Operation(summary = "外协分批准备数据", description = "worId") - public R detail(@PathVariable Long worId) { + public R prepareOemBatches(@Parameter(description = "车间订单运行记录主键ID", required = true) @RequestParam Long worId) { WorkOrderRun oldWorkOrderRun = workOrderRunService.getById(worId); WorkOrder oldWorkOrder = workOrderService.getById(oldWorkOrderRun.getWoId()); YieldOrder yieldOrder = yieldOrderService.getById(oldWorkOrder.getYoId()); // 创建新的分批订单对象 WorkOrder newWorkOrder = new WorkOrder(); // 复制原订单基本信息 + newWorkOrder.setId(oldWorkOrder.getId()); newWorkOrder.setYoId(oldWorkOrder.getYoId()); newWorkOrder.setWoCode(workOrderService.nextCode(yieldOrder.getYpCode())); newWorkOrder.setCardNo(workOrderService.nextCardNo(yieldOrder.getYpCode(), oldWorkOrder.getCardNo())); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java index b102137c..64579f2f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java @@ -33,6 +33,7 @@ import org.springblade.core.mp.base.BaseServiceImpl; import java.math.BigDecimal; import java.time.LocalDate; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -73,7 +74,31 @@ public class OemStatementServiceImpl extends BaseServiceImpl Map> oemAndStatementMap = statementVOS.stream().collect(Collectors.groupingBy(StatementVO::getOcName)); + // 创建CompletableFuture列表 + List> futures = new ArrayList<>(); for (Map.Entry> listEntry : oemAndStatementMap.entrySet()) { + CompletableFuture future = CompletableFuture.runAsync(() -> { + try { + processOemStatements(listEntry.getKey(), listEntry.getValue(), price, putStoreDate, + countSuccess, countError); + } catch (Exception e) { + log.error(String.format("处理外协厂商{}的结算单时发生异常", listEntry.getKey()), e); + } + }); + futures.add(future); + } + // 等待所有任务完成 + try { + CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); + } catch (Exception e) { + log.error("异步处理结算单时发生异常", e); + } + + return R.data(Map.of( + "success", countSuccess.get(), + "error", countError.get() + )); + /*for (Map.Entry> listEntry : oemAndStatementMap.entrySet()) { //外协厂商下全部需要结算的结算单 List statementVOList = listEntry.getValue(); @@ -81,71 +106,6 @@ public class OemStatementServiceImpl extends BaseServiceImpl priceSheetAllList = getPriceSheets(oemName, putStoreDate); - //假数据测试用 -// List priceSheetAllList = new ArrayList<>(); -// PriceSheetVO priceSheet1 = new PriceSheetVO(); -// priceSheet1.setPrice("60"); -// priceSheet1.setSplyname(oemName); -// priceSheet1.setPrtum("件"); -// priceSheet1.setWono("WO-N2510424439-R002"); -// priceSheet1.setSeqid("GXJG-20250228018"); -// priceSheet1.setGxinfo("玻璃封接电化学抛光"); -// priceSheetAllList.add(priceSheet1); -// PriceSheetVO priceSheet2 = new PriceSheetVO(); -// priceSheet2.setPrice("26"); -// priceSheet2.setSplyname(oemName); -// priceSheet2.setPrtum("件"); -// priceSheet2.setSeqid("GXJG-20250228012"); -// priceSheet2.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet2.setPrtlotno("JI和JHT"); -// priceSheet2.setStairflag("单批阶梯价(按单件面积)"); -// priceSheet2.setLower("5"); -// priceSheet2.setUpper("0"); -// priceSheet2.setPrtno("21E6-575-10724-%螺母"); -// priceSheetAllList.add(priceSheet2); -// PriceSheetVO priceSheet3 = new PriceSheetVO(); -// priceSheet3.setPrice("34"); -// priceSheet3.setSplyname(oemName); -// priceSheet3.setPrtum("件"); -// priceSheet3.setSeqid("GXJG-20250228012"); -// priceSheet3.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet3.setPrtlotno("JI和JHT"); -// priceSheet3.setStairflag("单批阶梯价(按单件面积)"); -// priceSheet3.setLower("10"); -// priceSheet3.setUpper("5.00001"); -// priceSheet3.setPrtno("21E6-575-10724-%螺母"); -// priceSheetAllList.add(priceSheet3); -// PriceSheetVO priceSheet4 = new PriceSheetVO(); -// priceSheet4.setPrice("15"); -// priceSheet4.setSplyname(oemName); -// priceSheet4.setPrtum("件"); -// priceSheet4.setSeqid("GXJG-20250228012"); -// priceSheet4.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet4.setPrtlotno("JHT"); -// priceSheet4.setStairflag("非阶梯价"); -// priceSheet4.setPrtno("21E6-575-10724-%螺母"); -// priceSheetAllList.add(priceSheet4); -// PriceSheetVO priceSheet5 = new PriceSheetVO(); -// priceSheet5.setPrice("99"); -// priceSheet5.setSplyname(oemName); -// priceSheet5.setPrtum("件"); -// priceSheet5.setSeqid("GXJG-20250228012"); -// priceSheet5.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet5.setStairflag("非阶梯价"); -// priceSheet5.setPrtno("21E6-575-10724-%螺母"); -// priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)"); -// priceSheetAllList.add(priceSheet5); -// PriceSheetVO priceSheet6 = new PriceSheetVO(); -// priceSheet6.setPrice("200"); -// priceSheet6.setSplyname(oemName); -// priceSheet6.setPrtum("件"); -// priceSheet6.setSeqid("GXJG-20250228012"); -// priceSheet6.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet6.setStairflag("非阶梯价"); -// priceSheet6.setPrtno("21E6-575-10724-%螺母"); -// priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)"); -// priceSheetAllList.add(priceSheet6); - if (priceSheetAllList.isEmpty()) { //【结算异常】 statementVOList.forEach(statementVO -> { @@ -155,43 +115,43 @@ public class OemStatementServiceImpl extends BaseServiceImpl Map> priceSheetMap = priceSheetAllList.stream().collect(Collectors.groupingBy(PriceSheetVO::getGxinfo)); - /*statementVOList.forEach(statementVO -> { - List matchedPriceSheets = MatchTheQuotations(statementVO, priceSheetMap); - if (matchedPriceSheets.isEmpty()) { - return; - } - statementVO.setPriceSheetList(matchedPriceSheets); - });*/ //3.为每个结算单匹配报价集合 statementVOList.forEach(statementVO -> { - List matchedPriceSheets = MatchTheQuotations(statementVO, priceSheetMap); - if (null == matchedPriceSheets || matchedPriceSheets.isEmpty()) { - return; - } - statementVO.setPriceSheetList(matchedPriceSheets); - //4.匹配规则,过滤出唯一报价 - //①.匹配车间订单号 - if (ruleWoNo(statementVO, true)) { - return; - } - //②.匹配物料名称和质量等级 - if (rulePartNameAndProdIdent(statementVO)) { - return; - } - //③.匹配金价银价 - if (ruleGoldAndSilverPrices(statementVO, price)) { - return; - } - //④.涂色标、涂色带、涂箭头 - if (ruleColor(statementVO, true)) { - return; - } - //⑤.物料号匹配 - if (ruleGoods(statementVO)) { - return; - } - //⑥.阶梯价匹配 - if (ruleTieredPricing(statementVO, true)) { + try { + List matchedPriceSheets = MatchTheQuotations(statementVO, priceSheetMap); + if (null == matchedPriceSheets || matchedPriceSheets.isEmpty()) { + return; + } + statementVO.setPriceSheetList(matchedPriceSheets); + //4.匹配规则,过滤出唯一报价 + //①.匹配车间订单号 + if (ruleWoNo(statementVO, true)) { + return; + } + //②.匹配物料名称和质量等级 + if (rulePartNameAndProdIdent(statementVO)) { + return; + } + //③.匹配金价银价 + if (ruleGoldAndSilverPrices(statementVO, price)) { + return; + } + //④.涂色标、涂色带、涂箭头 + if (ruleColor(statementVO, true)) { + return; + } + //⑤.物料号匹配 + if (ruleGoods(statementVO)) { + return; + } + //⑥.阶梯价匹配 + if (ruleTieredPricing(statementVO, true)) { + return; + } + }catch (Exception e){ + log.error("结算单处理异常", e); + statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); + statementVO.setMemo("结算处理异常: " + e.getMessage()); return; } }); @@ -217,7 +177,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl priceSheetAllList = getPriceSheets(oemName); - //假数据测试用 -// List priceSheetAllList = new ArrayList<>(); -// PriceSheetVO priceSheet1 = new PriceSheetVO(); -// priceSheet1.setPrice("60"); -// priceSheet1.setSplyname(oemName); -// priceSheet1.setPrtum("件"); -// priceSheet1.setWono("WO-N2510424439-R002"); -// priceSheet1.setSeqid("GXJG-20250228018"); -// priceSheet1.setGxinfo("玻璃封接电化学抛光"); -// priceSheet1.setStartdat("2026-01-15"); -// priceSheetAllList.add(priceSheet1); -// PriceSheetVO priceSheet2 = new PriceSheetVO(); -// priceSheet2.setPrice("26"); -// priceSheet2.setSplyname(oemName); -// priceSheet2.setPrtum("件"); -// priceSheet2.setSeqid("GXJG-20250228012"); -// priceSheet2.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet2.setPrtlotno("JI和JHT"); -// priceSheet2.setStairflag("单批阶梯价(按单件面积)"); -// priceSheet2.setLower("5"); -// priceSheet2.setUpper("0"); -// priceSheet2.setPrtno("21E6-575-10724-%螺母"); -// priceSheet2.setStartdat("2026-01-15"); -// priceSheetAllList.add(priceSheet2); -// PriceSheetVO priceSheet3 = new PriceSheetVO(); -// priceSheet3.setPrice("34"); -// priceSheet3.setSplyname(oemName); -// priceSheet3.setPrtum("件"); -// priceSheet3.setSeqid("GXJG-20250228012"); -// priceSheet3.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet3.setPrtlotno("JI和JHT"); -// priceSheet3.setStairflag("单批阶梯价(按单件面积)"); -// priceSheet3.setLower("10"); -// priceSheet3.setUpper("5.00001"); -// priceSheet3.setPrtno("21E6-575-10724-%螺母"); -// priceSheet3.setStartdat("2026-01-15"); -// priceSheetAllList.add(priceSheet3); -// PriceSheetVO priceSheet4 = new PriceSheetVO(); -// priceSheet4.setPrice("15"); -// priceSheet4.setSplyname(oemName); -// priceSheet4.setPrtum("件"); -// priceSheet4.setSeqid("GXJG-20250228012"); -// priceSheet4.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet4.setPrtlotno("JHT"); -// priceSheet4.setStairflag("非阶梯价"); -// priceSheet4.setPrtno("21E6-575-10724-%螺母"); -// priceSheet4.setStartdat("2026-01-15"); -// priceSheetAllList.add(priceSheet4); -// PriceSheetVO priceSheet5 = new PriceSheetVO(); -// priceSheet5.setPrice("99"); -// priceSheet5.setSplyname(oemName); -// priceSheet5.setPrtum("件"); -// priceSheet5.setSeqid("GXJG-20250228012"); -// priceSheet5.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet5.setStairflag("非阶梯价"); -// priceSheet5.setPrtno("21E6-575-10724-%螺母"); -// priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)"); -// priceSheet5.setStartdat("2026-01-15"); -// priceSheetAllList.add(priceSheet5); -// PriceSheetVO priceSheet6 = new PriceSheetVO(); -// priceSheet6.setPrice("200"); -// priceSheet6.setSplyname(oemName); -// priceSheet6.setPrtum("件"); -// priceSheet6.setSeqid("GXJG-20250228012"); -// priceSheet6.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet6.setStairflag("非阶梯价"); -// priceSheet6.setPrtno("21E6-575-10724-%螺母"); -// priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)"); -// priceSheet6.setStartdat("2026-01-16"); -// priceSheetAllList.add(priceSheet6); if (priceSheetAllList.isEmpty()) { //【结算异常】 statementVOList.forEach(statementVO -> { @@ -345,40 +235,202 @@ public class OemStatementServiceImpl extends BaseServiceImpl { + try { + List matchedPriceSheets = MatchTheQuotations(statementVO, priceSheetMap); + if (null == matchedPriceSheets || matchedPriceSheets.isEmpty()) { + return; + } + statementVO.setPriceSheetList(matchedPriceSheets); + //4.匹配规则,过滤出唯一报价 + //①.匹配车间订单号 + if (ruleWoNo(statementVO, false)) { + return; + } + //②.匹配物料名称和质量等级 + if (rulePartNameAndProdIdent(statementVO)) { + return; + } + //③.匹配金价银价 + if (ruleGoldAndSilverPrices(statementVO, price)) { + return; + } + //④.涂色标、涂色带、涂箭头 + if (ruleColor(statementVO, false)) { + return; + } + //⑤.物料号匹配 + if (ruleGoods(statementVO)) { + return; + } + //⑥.阶梯价匹配 + if (ruleTieredPricing(statementVO, false)) { + return; + } + } catch (Exception e) { + log.error("结算单处理异常", e); + statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); + statementVO.setMemo("结算处理异常: " + e.getMessage()); + return; + } + }); + } + } + return statementVOS; + } + + /** + * 以外协厂商分组结算 + * + * @param oemName + * @param statementVOList + * @param price + * @param putStoreDate + * @param countSuccess + * @param countError + */ + private void processOemStatements(String oemName, List statementVOList, + BigDecimal price, LocalDate putStoreDate, + AtomicInteger countSuccess, AtomicInteger countError) { + // 1. 查询报价单 + List priceSheetAllList = getPriceSheets(oemName, putStoreDate); + //假数据测试用 +// List priceSheetAllList = new ArrayList<>(); +// PriceSheetVO priceSheet1 = new PriceSheetVO(); +// priceSheet1.setPrice("60"); +// priceSheet1.setSplyname(oemName); +// priceSheet1.setPrtum("件"); +// priceSheet1.setWono("WO-N2510424439-R002"); +// priceSheet1.setSeqid("GXJG-20250228018"); +// priceSheet1.setGxinfo("玻璃封接电化学抛光"); +// priceSheetAllList.add(priceSheet1); +// PriceSheetVO priceSheet2 = new PriceSheetVO(); +// priceSheet2.setPrice("26"); +// priceSheet2.setSplyname(oemName); +// priceSheet2.setPrtum("件"); +// priceSheet2.setSeqid("GXJG-20250228012"); +// priceSheet2.setGxinfo("玻璃封接电镀去氧化皮"); +// priceSheet2.setPrtlotno("JI和JHT"); +// priceSheet2.setStairflag("单批阶梯价(按单件面积)"); +// priceSheet2.setLower("5"); +// priceSheet2.setUpper("0"); +// priceSheet2.setPrtno("21E6-575-10724-%螺母"); +// priceSheetAllList.add(priceSheet2); +// PriceSheetVO priceSheet3 = new PriceSheetVO(); +// priceSheet3.setPrice("34"); +// priceSheet3.setSplyname(oemName); +// priceSheet3.setPrtum("件"); +// priceSheet3.setSeqid("GXJG-20250228012"); +// priceSheet3.setGxinfo("玻璃封接电镀去氧化皮"); +// priceSheet3.setPrtlotno("JI和JHT"); +// priceSheet3.setStairflag("单批阶梯价(按单件面积)"); +// priceSheet3.setLower("10"); +// priceSheet3.setUpper("5.00001"); +// priceSheet3.setPrtno("21E6-575-10724-%螺母"); +// priceSheetAllList.add(priceSheet3); +// PriceSheetVO priceSheet4 = new PriceSheetVO(); +// priceSheet4.setPrice("15"); +// priceSheet4.setSplyname(oemName); +// priceSheet4.setPrtum("件"); +// priceSheet4.setSeqid("GXJG-20250228012"); +// priceSheet4.setGxinfo("玻璃封接电镀去氧化皮"); +// priceSheet4.setPrtlotno("JHT"); +// priceSheet4.setStairflag("非阶梯价"); +// priceSheet4.setPrtno("21E6-575-10724-%螺母"); +// priceSheetAllList.add(priceSheet4); +// PriceSheetVO priceSheet5 = new PriceSheetVO(); +// priceSheet5.setPrice("99"); +// priceSheet5.setSplyname(oemName); +// priceSheet5.setPrtum("件"); +// priceSheet5.setSeqid("GXJG-20250228012"); +// priceSheet5.setGxinfo("玻璃封接电镀去氧化皮"); +// priceSheet5.setStairflag("非阶梯价"); +// priceSheet5.setPrtno("21E6-575-10724-%螺母"); +// priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)"); +// priceSheetAllList.add(priceSheet5); +// PriceSheetVO priceSheet6 = new PriceSheetVO(); +// priceSheet6.setPrice("200"); +// priceSheet6.setSplyname(oemName); +// priceSheet6.setPrtum("件"); +// priceSheet6.setSeqid("GXJG-20250228012"); +// priceSheet6.setGxinfo("玻璃封接电镀去氧化皮"); +// priceSheet6.setStairflag("非阶梯价"); +// priceSheet6.setPrtno("21E6-575-10724-%螺母"); +// priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)"); +// priceSheetAllList.add(priceSheet6); + if (priceSheetAllList.isEmpty()) { + // 【结算异常】 + statementVOList.forEach(statementVO -> { + statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); + statementVO.setMemo(String.format("外协厂商【%s】匹配无报价记录", oemName)); + }); + } else { + // 2. 工序分组Map<工序, 报价列表> + Map> priceSheetMap = priceSheetAllList.stream() + .collect(Collectors.groupingBy(PriceSheetVO::getGxinfo)); + + // 3. 为每个结算单匹配报价集合 + statementVOList.forEach(statementVO -> { + try { List matchedPriceSheets = MatchTheQuotations(statementVO, priceSheetMap); if (null == matchedPriceSheets || matchedPriceSheets.isEmpty()) { return; } statementVO.setPriceSheetList(matchedPriceSheets); - //4.匹配规则,过滤出唯一报价 - //①.匹配车间订单号 - if (ruleWoNo(statementVO, false)) { + + // 4. 匹配规则,过滤出唯一报价 + // ①. 匹配车间订单号 + if (ruleWoNo(statementVO, true)) { return; } - //②.匹配物料名称和质量等级 + // ②. 匹配物料名称和质量等级 if (rulePartNameAndProdIdent(statementVO)) { return; } - //③.匹配金价银价 + // ③. 匹配金价银价 if (ruleGoldAndSilverPrices(statementVO, price)) { return; } - //④.涂色标、涂色带、涂箭头 - if (ruleColor(statementVO, false)) { + // ④. 涂色标、涂色带、涂箭头 + if (ruleColor(statementVO, true)) { return; } - //⑤.物料号匹配 + // ⑤. 物料号匹配 if (ruleGoods(statementVO)) { return; } - //⑥.阶梯价匹配 - if (ruleTieredPricing(statementVO, false)) { + // ⑥. 阶梯价匹配 + if (ruleTieredPricing(statementVO, true)) { return; } - }); - } + } catch (Exception e) { + log.error("结算单处理异常", e); + statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); + statementVO.setMemo("结算处理异常: " + e.getMessage()); + } + }); + } + + // 5. 批量保存 + List saves = statementVOList.stream() + .map(statementVO -> { + // 统计数量 + if (Objects.equals(OemStatementEntity.IN_SETTLEMENT, statementVO.getRosStatus())) { + countSuccess.incrementAndGet(); + } else if (Objects.equals(OemStatementEntity.ERR_SETTLEMENT, statementVO.getRosStatus())) { + countError.incrementAndGet(); + } + OemStatementEntity entity = new OemStatementEntity(); + BeanUtils.copyProperties(statementVO, entity); + entity.setUpdateTime(new Date()); + entity.setIsDeleted(0); + return entity; + }) + .collect(Collectors.toList()); + + // 批量插入或更新 + if (!saves.isEmpty()) { + baseMapper.insertOrUpdate(saves); } - return statementVOS; } @Override @@ -468,17 +520,22 @@ public class OemStatementServiceImpl extends BaseServiceImpl getPriceSheets(String oemName, LocalDate putStoreDate) { - PriceSheetQuery query = new PriceSheetQuery(); - query.setOcName(oemName); - query.setInDateStart(putStoreDate); - query.setInDateEnd(putStoreDate); + try { + PriceSheetQuery query = new PriceSheetQuery(); + query.setOcName(oemName); + query.setInDateStart(putStoreDate); + query.setInDateEnd(putStoreDate); - R> pageR = erpDataOemClient.priceSheetData(query, new Query() {{ - setSize(99999); - }}); + R> pageR = erpDataOemClient.priceSheetData(query, new Query() {{ + setSize(99999); + }}); - if (pageR != null && pageR.getData() != null) { - return pageR.getData().getRecords(); + if (pageR != null && pageR.getData() != null) { + return pageR.getData().getRecords(); + } + } catch (Exception e) { + log.error("获取报价单失败,失败原因:{}", e); + return Collections.emptyList(); } return Collections.emptyList(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java index c0476702..bb0d1c29 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import jakarta.validation.constraints.NotEmpty; import org.springblade.common.exception.BusinessException; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.tool.api.R; import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.entity.YieldPlan; @@ -225,7 +226,10 @@ public interface IYieldOrderService extends BaseService { */ String getNewCardNo(String cardNo); - Long getWcId(Long orderId); + Long getWcId(Long orderId); + + R getCardNo(String cardNo); + /** * 下达玻璃饼生产订单 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index fb022ee3..1e9cef1c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -16,6 +16,7 @@ import org.springblade.common.utils.StringPrefixUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.ObjectUtil; @@ -753,6 +754,19 @@ public class YieldOrderServiceImpl extends BaseServiceImpl list = list(new LambdaQueryWrapper().eq(YieldOrder::getCardNo, cardNo)); + if (list==null||list.size()==0) { + return R.fail("路线卡号未查询到详情"); + } + + return R.data(list.get(0)); + } + /** * 验证零件子件信息 * diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java index a7b29947..3fb0671e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java @@ -11,6 +11,7 @@ import org.springblade.desk.device.pojo.entity.RackSetEntity; import org.springblade.desk.device.pojo.vo.RackSetVO; import org.springblade.desk.device.wrapper.RackSetWrapper; import org.springblade.desk.produce.pojo.dto.TurnTypeDTO; +import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO; import org.springblade.desk.produce.service.IPdaLoadService; import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springframework.web.bind.annotation.*; @@ -30,18 +31,21 @@ import org.springframework.web.bind.annotation.*; public class PdaLoadController { private final IPdaLoadService pdaLoadService; + @GetMapping(value = "/loadBindData/{cardNo}") @ApiOperationSupport(order = 1) @Operation(summary = "加载绑定需要的流程卡数据", description = "传入cardNo") public R loadBindData(@PathVariable String cardNo) { - return R.data(pdaLoadService.loadBindData(AuthUtil.getUser(), cardNo)); + return R.data(pdaLoadService.loadBindData(AuthUtil.getUserId(), cardNo)); } + @GetMapping(value = "getBsFeiBaSetByCode/{rsCode}") @ApiOperationSupport(order = 2) @Operation(summary = "根据挂具编码查询数据", description = "传入rsCode") public R getBsFeiBaSetByCode(@PathVariable String rsCode) { return R.data(pdaLoadService.getBsRackSetByCode(rsCode)); } + @GetMapping(value = "/getBsFeiBaSetByCodeUn/{fsCode}") @ApiOperationSupport(order = 3) @Operation(summary = "根据挂具编码查询数据(解绑)", description = "传入fsCode") @@ -55,16 +59,18 @@ public class PdaLoadController { public R getEcByDeviceCode(@PathVariable String deviceCode) { return R.data(pdaLoadService.getEcByCode(deviceCode)); } + @GetMapping(value = "/loadSubOrder/{cardNo}") @ApiOperationSupport(order = 5) @Operation(summary = "加载子件订单入库数据", description = "传入cardNo") public R loadSubOrder(@PathVariable String cardNo) { return R.data(pdaLoadService.loadSubOrder(cardNo)); } + @GetMapping(value = "/loadProTest/{cardNo}") @ApiOperationSupport(order = 6) @Operation(summary = "加载当前工序检验数据", description = "传入cardNo") - public R loadProTest(@PathVariable String cardNo) { + public R loadProTest(@PathVariable String cardNo) { return R.data(pdaLoadService.loadProTestWorkPlan(cardNo)); } @@ -74,6 +80,7 @@ public class PdaLoadController { public R loadPrMacToolUseByMtnCode(@PathVariable String mtnCode) { return R.data(pdaLoadService.loadPrMacToolUseByMtnCode(mtnCode)); } + @GetMapping(value = "/deletedProduceRun/{mtnCode}") @ApiOperationSupport(order = 8) @Operation(summary = "根据同槽号删除信息", description = "传入mtnCode") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java index 49b0d514..440d0fce 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaSaveController.java @@ -32,84 +32,94 @@ public class PdaSaveController { private final IPdaSaveService pdaSaveService; private final IBasicClazzService basicClazzService; + @Operation(summary = "流程卡与挂具绑定") @PostMapping("/gjBindingCrad") - public R gjBindingCrad(@RequestParam(value = "rsId") Long rsId,@RequestParam(value = "planListIds") String planListIds) { + public R gjBindingCrad(@RequestParam(value = "rsId") Long rsId, @RequestParam(value = "planListIds") String planListIds) { pdaSaveService.bindingCard(rsId, null, null, planListIds); - return R.success() ; + return R.success(); } + @Operation(summary = "挂具与飞靶绑定") @PostMapping("/gjBindingFb") - public R gjBindingFb(@RequestParam(value = "fsId") Long fsId,@RequestParam(value = "rsListIds") String rsListIds) { - pdaSaveService.binding(fsId, null, null,null, rsListIds); - return R.success() ; + public R gjBindingFb(@RequestParam(value = "fsId") Long fsId, @RequestParam(value = "rsListIds") String rsListIds) { + pdaSaveService.binding(fsId, null, null, null, rsListIds); + return R.success(); } + @Operation(summary = "飞靶与设备绑定") @PostMapping("/fbBindingEc") - public R fbBindingEc(@RequestParam(value = "fsId") Long fsId,@RequestParam(value = "ecId") Long ecId, - @RequestParam(value = "hangNum") Long hangNum,@RequestParam(value = "unFsBool") Boolean unFsBool) { + public R fbBindingEc(@RequestParam(value = "fsId") Long fsId, @RequestParam(value = "ecId") Long ecId, + @RequestParam(value = "hangNum") Long hangNum, @RequestParam(value = "unFsBool") Boolean unFsBool) { String hangNumName = ""; BasicClazz bsBasicClass = null; - if(hangNum != null&&hangNum != -1){ + if (hangNum != null && hangNum != -1) { bsBasicClass = basicClazzService.getById(hangNum); - if(bsBasicClass != null){ + if (bsBasicClass != null) { hangNumName = bsBasicClass.getName(); } - }else if(hangNum == -1){ + } else if (hangNum == -1) { hangNumName = "-1"; } - pdaSaveService.binding(fsId, ecId, unFsBool, hangNumName,null); + pdaSaveService.binding(fsId, ecId, unFsBool, hangNumName, null); // 删除产线设备对应的挂次号之前的数据 - if(bsBasicClass!= null){ + if (bsBasicClass != null) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.eq(BasicClazz::getCode,bsBasicClass.getCode()); - wrapper.eq(BasicClazz::getBizType,"6"); - wrapper.lt(BasicClazz::getUpdateTime,bsBasicClass.getUpdateTime()); - wrapper.set(BasicClazz::getIsDeleted,1); + wrapper.eq(BasicClazz::getCode, bsBasicClass.getCode()); + wrapper.eq(BasicClazz::getBizType, "6"); + wrapper.lt(BasicClazz::getUpdateTime, bsBasicClass.getUpdateTime()); + wrapper.set(BasicClazz::getIsDeleted, 1); basicClazzService.update(null, wrapper); } - return R.success() ; + return R.success(); } + @Operation(summary = "流程卡与飞靶绑定") @PostMapping("/fbBindingCrad") - public R fbBindingCrad(@RequestParam(value = "fsId") Long fsId,@RequestParam(value = "planListIds") String planListIds) { + public R fbBindingCrad(@RequestParam(value = "fsId") Long fsId, @RequestParam(value = "planListIds") String planListIds) { pdaSaveService.bindingCard(null, fsId, null, planListIds); - return R.success() ; + return R.success(); } + @Operation(summary = "流程卡与设备绑定") @PostMapping("/ecBindingCrad") - public R ecBindingCrad(@RequestParam(value = "ecId") Long ecId,@RequestParam(value = "planListIds") String planListIds) { + public R ecBindingCrad(@RequestParam(value = "ecId") Long ecId, @RequestParam(value = "planListIds") String planListIds) { pdaSaveService.bindingCard(null, null, ecId, planListIds); - return R.success() ; + return R.success(); } + @Operation(summary = "挂具与设备绑定") @PostMapping("/gjBindingEc") - public R gjBindingEc(@RequestParam(value = "ecId") Long ecId,@RequestParam(value = "rsListIds") String rsListIds) { - pdaSaveService.binding(null, ecId, null,null, rsListIds); - return R.success() ; + public R gjBindingEc(@RequestParam(value = "ecId") Long ecId, @RequestParam(value = "rsListIds") String rsListIds) { + pdaSaveService.binding(null, ecId, null, null, rsListIds); + return R.success(); } + @Operation(summary = "烧结流程卡与设备绑定") @PostMapping("/sjEcBindingCard") public R sjEcBindingCard(@RequestBody SjEcBingCardVo sjEcBingCardVo) { pdaSaveService.sjBindingCard(sjEcBingCardVo); - return R.success() ; + return R.success(); } + @Operation(summary = "解绑") @PostMapping("/unBind") public R unBind(@RequestBody UnBingVo unBingVo) { pdaSaveService.unBind(unBingVo); - return R.success() ; + return R.success(); } + @Operation(summary = "获取烧结未解绑的绑定记录") @PostMapping("/getUnbindByCard") public R getUnbindByCard(@RequestParam(value = "cardNo") String cardNo) { - return R.data(pdaSaveService.getUnbindByCard(cardNo)) ; + return R.data(pdaSaveService.getUnbindByCard(cardNo)); } + @Operation(summary = "烧结设备解绑解绑") @PostMapping("/sjDeviceUnBind") public R sjDeviceUnBind(@RequestBody UnBingDeviceVo unBingDeviceVo) { pdaSaveService.sjDeviceUnBind(unBingDeviceVo); - return R.success() ; + return R.success(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml index 44bf291a..a5f7c4d7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MakeRecMapper.xml @@ -58,7 +58,7 @@ LEFT JOIN MES_WORK_ORDER wo ON wp.WO_ID = wo.ID LEFT JOIN MES_YIELD_ORDER yo ON wo.YO_ID = yo.ID - mr.IS_DELETED = 0 and a.worker = #{mesMakeRec.worker} + mr.IS_DELETED = 0 and mr.worker = #{mesMakeRec.worker} AND wo.WO_CODE LIKE concat(concat('%', #{mesMakeRec.worker}),'%') diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java index 9bad4fab..4835b9c3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java @@ -43,5 +43,6 @@ public interface WorkPlanMapper extends BaseMapper { List listSlotInfoGr (Long wpId, Boolean aTrue); List listSlotInfo (Long wpId,Boolean aTrue); + List listMacToolUse(Long wpId,Boolean aTrue); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java index 9ede8993..67de301c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java @@ -24,11 +24,11 @@ public interface IPdaLoadService extends BaseService { *

方法名: loadBindData

*

方法描述: 加载绑定数据

* - * @param user 用户 + * @param userId 用户id * @param cardNo 卡号 * @return org.springblade.desk.produce.pojo.entity.WorkPlan */ - WorkPlan loadBindData(BladeUser user, String cardNo); + WorkPlan loadBindData(Long userId, String cardNo); /** *

方法名: getBsRackSetByCode

*

方法描述: 根据挂具编码查询数据

@@ -62,7 +62,7 @@ public interface IPdaLoadService extends BaseService { void deletedProduceRun(String mtnCode); - public WorkOrder checkPrWorkOrder(String cardNo); + WorkOrder checkPrWorkOrder(String cardNo); void handleBaoZhuangWorkPlan(List wpList, YieldOrder yo); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java index 9d577406..9b89641d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaSaveService.java @@ -34,7 +34,6 @@ public interface IPdaSaveService extends BaseService { * @param ecId 设备id * @param unFsBool 是否解绑 * @param rsListIds 绑定数据 - * @param listIds */ void binding(Long rsId, Long ecId, Boolean unFsBool,String hangNum,String rsListIds); /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java index be38760c..d476e8ec 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java @@ -10,6 +10,7 @@ import org.springblade.desk.oem.pojo.vo.OemApprovalVO; import org.springblade.desk.oem.pojo.vo.OemOrderVO; import org.springblade.desk.produce.pojo.entity.WorkOrderRun; +import java.util.List; import java.util.Map; /** @@ -48,10 +49,10 @@ public interface IWorkOrderRunService extends BaseService { /** * 外协审批 * - * @param oemApproval + * @param oemApprovals * @return */ - R approval(OemApproval oemApproval) throws Exception; + R batchApproval(List oemApprovals) throws Exception; /** * 转外协厂家 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java index 8b7bb5e8..038c85eb 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java @@ -128,14 +128,6 @@ public class MakeRecServiceImpl extends BaseServiceImpl } } - private List getTeamId(Long userId) { - List bsTeamSet = userRightService.list(Wrappers.lambdaQuery(UserRight.class).eq(UserRight::getUserId, userId).eq(UserRight::getUrType, "bs_team_set")); - if (CollectionUtils.isEmpty(bsTeamSet)) { - return null; - } - return bsTeamSet.stream().map(UserRight::getTheId).toList(); - } - @Override @Transactional(rollbackFor = Exception.class) public boolean saveMakeRec(MakeRecDTO makeRecDTO) { @@ -432,8 +424,11 @@ public class MakeRecServiceImpl extends BaseServiceImpl @Override public IPage selectMesMakeRecPage(IPage page, MesMakeRecVO mesMakeRec) { - IPage mesMakeRecVOIPage = page.setRecords(baseMapper.selectMesMakeRecPage(page, mesMakeRec)); - List records = mesMakeRecVOIPage.getRecords(); + if (mesMakeRec.getWorker() == null) { + mesMakeRec.setWorker(AuthUtil.getUserId()); + } + IPage mesMakeRecVoiPage = page.setRecords(baseMapper.selectMesMakeRecPage(page, mesMakeRec)); + List records = mesMakeRecVoiPage.getRecords(); if (CollectionUtils.isNotEmpty(records)) { List ppsIds = new ArrayList<>(); List makeTeams = new ArrayList<>(); @@ -470,9 +465,9 @@ public class MakeRecServiceImpl extends BaseServiceImpl record.setNextPpsName(processSetMap.get(record.getNextPpsId())); record.setNextMakeTeamName(teamMap.get(record.getNextMakeTeam())); } - mesMakeRecVOIPage.setRecords(records); + mesMakeRecVoiPage.setRecords(records); } - return mesMakeRecVOIPage; + return mesMakeRecVoiPage; } @Override diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java index 227c0c28..77812e92 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java @@ -15,7 +15,11 @@ import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.desk.basic.mapper.CraftAbilityMapper; import org.springblade.desk.basic.pojo.entity.RelTeamSetUser; +import org.springblade.desk.basic.pojo.entity.TeamSet; +import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.service.IRelTeamSetUserService; +import org.springblade.desk.basic.service.ITeamSetService; +import org.springblade.desk.basic.service.IUserRightService; import org.springblade.desk.dashboard.pojo.entity.*; import org.springblade.desk.dashboard.service.*; import org.springblade.desk.device.pojo.entity.FeiBaSetEntity; @@ -101,16 +105,23 @@ public class PdaLoadServiceImpl extends BaseServiceImpl tsIds = relTeamSetUserService. - list(Wrappers.lambdaQuery(RelTeamSetUser.class) - .eq(RelTeamSetUser::getUserId, user.getUserId())) - .stream().map(RelTeamSetUser::getUserId).collect(Collectors.toList()); + List tsIds = userRightService.getTeamId(userId); //获取作业计划 - WorkPlan prWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) - .eq(WorkPlan::getId, prWorkOrder.getWpId())); + WorkPlan workPlan = workPlanService.getById(prWorkOrder.getWpId()); //获取当前工序的下序 - WorkPlan nextPrWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) - .eq(WorkPlan::getId, prWorkPlan.getNextWpId())); + WorkPlan nextPrWorkPlan = workPlanService.getById(workPlan.getNextWpId()); //获取当前工序的上序 - WorkPlan frontPrWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class) - .eq(WorkPlan::getId, prWorkPlan.getFrontWpId())); + WorkPlan frontPrWorkPlan = workPlanService.getById(workPlan.getFrontWpId()); //如果是最后一道工序(当前序下序为空或者下序的下序为空) if (nextPrWorkPlan == null || nextPrWorkPlan.getNextWpId() == null) { //如果是镀后入库则不验证 if (checkAfterPlating) { - throw new ServiceException("pda.nextWorkPlan.noNext"); + throw new ServiceException("工序已是最后一道!"); } } //验证作业中心 - //this.checkWorkCenter(checkCurrentProcess, frontPrWorkPlan, prWorkPlan, nextPrWorkPlan, tsIds, checkAfterPlating); + this.checkWorkCenter(checkCurrentProcess, frontPrWorkPlan, workPlan, nextPrWorkPlan, tsIds, checkAfterPlating); //状态是false或者上序为空,并且当前序(首道)状态未未开工时,获取当前序; - if (!checkCurrentProcess || (frontPrWorkPlan == null && prWorkPlan.getStatus().equals(WorkPlan.STATUS_NO_START))) { - return prWorkPlan; + if (!checkCurrentProcess || (frontPrWorkPlan == null && workPlan.getStatus().equals(WorkPlan.STATUS_NO_START))) { + return workPlan; } //如果是镀后入库则不验证 if (checkAfterPlating) { - if (prWorkPlan != null) { + if (workPlan != null) { //验证上道工序是否报工完成 - if (!WorkPlan.STATUS_WORK_OK.equals(prWorkPlan.getStatus())) { - throw new ServiceException("product.frontWpNotWork"); + if (!WorkPlan.STATUS_WORK_OK.equals(workPlan.getStatus())) { + throw new ServiceException("上序未报工完成,请联系相关人员处理!"); } } } @@ -249,9 +254,47 @@ public class PdaLoadServiceImpl extends BaseServiceImpl tsIds, boolean checkAfterPlating) { - + // todo 等待关联表开发完成 +// WorkCenter bsWorkCenter = null; +// BsTeamSetEntity teamSet; +// if (!checkCurrentProcess || (frontPrWorkPlan == null && prWorkPlan.getStatus().equals(WorkPlan.STATUS_NO_START)) || nextPrWorkPlan == null) { +// if (prWorkPlan.getMakeTeam() == null) { +// throw new ServiceException("当前工序无加工班组"); +// } +// +// // 根据当前工序班组查询作业中心 +// teamSet = bsTeamSetService.getById(prWorkPlan.getMakeTeam()); +// if (teamSet != null) { +// bsWorkCenter = centerTeam.getBsWorkCenter(); +// } +// // 验证当前登录人和当前工序的班组是否一致 +// this.checkMakeTeamOne(prWorkPlan, tsIds); +// if (checkAfterPlating) { +// prWorkPlanService.verifyMakeUnit(prWorkPlan); +// } +// } else { +// +// if (nextPrWorkPlan.getMakeTeam() == null) { +// throw new ServiceException("当前工序无加工班组"); +// } +// +// // 根据当前工序班组查询作业中心 +// centerTeam = bsCenterTeamService.getByTsId(nextPrWorkPlan.getMakeTeam().getTsId()); +// if (centerTeam != null) { +// bsWorkCenter = centerTeam.getBsWorkCenter(); +// } +// //验证当前登录人和当前工序的班组是否一致 +// this.checkMakeTeamOne(nextPrWorkPlan, tsIds); +// if (checkAfterPlating) { +// prWorkPlanService.verifyMakeUnit(nextPrWorkPlan); +// } +// } +// if (bsWorkCenter == null) { +// throw new ServiceException("当前工序无作业中心!"); +// } } + @Override public WorkOrder checkPrWorkOrder(String cardNo) { WorkOrder prWorkOrder = this.checkWo(cardNo); //车间订单状态小于已下达并且大于加工中的情况下,不允许下序接收 @@ -307,10 +350,10 @@ public class PdaLoadServiceImpl extends BaseServiceImpl macToolUseList = macToolUseService.list(Wrappers.query().lambda() .eq(MacToolUse::getBsRackSet, rsId) .eq(MacToolUse::getFinished, false) .eq(MacToolUse::getIsDeleted, 0).orderByDesc(MacToolUse::getMtnCode) ); - if(macToolUseList.size()>0){ + if (macToolUseList.size() > 0) { code = macToolUseList.get(0).getMtnCode(); } //如果未找到满足条件的同槽号 @@ -128,7 +128,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl0){ + if (macToolUseList.size() > 0) { code = macToolUseList.get(0).getMtnCode(); } //修改飞靶状态 @@ -174,15 +174,15 @@ public class PdaSaveServiceImpl extends BaseServiceImpl macToolUseList = macToolUseService.list(Wrappers.query().lambda() .eq(MacToolUse::getBsFeiBaSet, frackSet.getId()) .eq(MacToolUse::getIsDeleted, 0) ); //未标记解绑飞靶,则代表正常绑定 - if (unFsBool == null){ + if (unFsBool == null) { //获取以设备为基准的同槽号 code = macToolUseService.nextCode(2); //开始绑定 @@ -252,7 +252,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl qcProduceRuns = mesQcProduceRunService.list(Wrappers.lambdaQuery(). - eq(MesQcProduceRunEntity::getMtnCode,prMacToolUse.getMtnCode())); + eq(MesQcProduceRunEntity::getMtnCode, prMacToolUse.getMtnCode())); if (qcProduceRuns == null || qcProduceRuns.size() == 0) { continue; @@ -398,7 +398,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpllambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode())); + // WorkOrder wo = prWorkOrderService.getWorkOrderUniqueRec(rr.getPrtno(), rr.getSplcode(), rr.getSono()); + WorkOrder wo = workOrderService.getOne(Wrappers.lambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode())); //syDockingLogService.sendDockingLog("查询原单", rr.getRedono(), rr.getPrtno()+","+rr.getSplcode()+","+rr.getSono()); if (wo == null) { wo = workOrderService.getOne(Wrappers.lambdaQuery().eq(WorkOrder::getBatchNo, rr.getSplcode())); @@ -449,7 +449,7 @@ public class PdaSaveServiceImpl extends BaseServiceImpl approvals) { + + for (int i = 0; i < approvals.size(); i++) { + OemApproval approval = approvals.get(i); + + try { + R r = singleApprovalInNewTransaction(approval); + } catch (Exception e) { + log.error(String.format("审批失败,单据ID: {}", approval.getWorkOrderRunId()), e); + } + } + + return R.success("操作完成"); + } + + @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) + public R singleApprovalInNewTransaction(OemApproval oemApproval) throws Exception { + return approval(oemApproval); + } + + /** + * 审批 + * + * @param oemApproval + * @return + * @throws Exception + */ + private R approval(OemApproval oemApproval) throws Exception { WorkOrderRun workOrderRun = workOrderRunMapper.selectById(oemApproval.getWorkOrderRunId()); WorkOrder wo = workOrderMapper.selectById(workOrderRun.getWoId()); YieldOrder yo = yieldOrderMapper.selectById(wo.getYoId()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index bc8feb94..eb6bdd6e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -1733,6 +1733,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl qwpart = new QueryWrapper<>(); qwpart.eq("PART_CODE", pjYieldOrder.getPartCode()); @@ -446,7 +451,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl wpList, JSONObject jsonObj, List modelFlag) { @@ -498,7 +503,19 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl mtuList = workPlanMapper.listMacToolUse(workPlan.getWpId(), Boolean.FALSE); +// if (mtuList.size() > 0) { +// // 设备编号 +// String gj = StringUtils.join(mtuList.stream().filter(i -> i.getBsRackSet() != null).map(i -> i.getBsRackSet().getRsCode()).collect(Collectors.toList()), "'、'"); +// String fb = StringUtils.join(mtuList.stream().filter(i -> i.getBsFeiBaSet() != null).map(i -> i.getBsFeiBaSet().getFsCode()).collect(Collectors.toList()), "、"); +// String eq = StringUtils.join(mtuList.stream().filter(i -> i.getEquipmentCard() != null).map(i -> i.getEquipmentCard().getDeviceCode()).collect(Collectors.toList()), "、"); +// workPlan.setGjCode(gj); +// workPlan.setFbCode(fb); +// //zxh 20250107 电子档案工序设备编号不再拼接烘箱,eq中已存在烘箱 +//// workPlan.setDeviceCode(box != null && box.getDeviceId() != null ? eq + "、" + box.getDeviceId() : eq); +// workPlan.setDeviceCode(eq); +// } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java index 446d78ae..11ff02c1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java @@ -33,6 +33,9 @@ import org.springblade.desk.quality.constant.InspectionTaskConst; import org.springblade.desk.quality.constant.ReviewSheetConst; import org.springblade.desk.quality.excel.ReviewSheetExcel; import org.springblade.desk.quality.mapper.ReviewSheetMapper; +import org.springblade.desk.quality.pojo.dto.ReviewDutyDTO; +import org.springblade.desk.quality.pojo.dto.ReviewFaultDTO; +import org.springblade.desk.quality.pojo.dto.ReviewSheetDTO; import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.desk.quality.pojo.entity.ReviewDuty; import org.springblade.desk.quality.pojo.entity.ReviewFault; @@ -378,29 +381,65 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl entity = new HttpEntity<>(obj, headers); -// ResponseEntity responseEntity; -// JSONObject responseBody; -// try { -// responseEntity = httpClientTemplate.postForEntity("http://192.168.119.68:10113" + -// "/api/mms/qms/qmsrepairapply/qmsRepairApplyRest/saveQmsRepairApply/v1", entity, JSONObject.class); -// JSONObject result = responseEntity.getBody(); -// -// responseBody = result.getJSONObject("responseBody"); -// if (responseBody == null) { -// throw new BusinessException("审理单,接口返回值null"); -// } -// } catch (Exception e) { -// throw new RuntimeException("审理单,接口返回值null"); -// } -// } + if (ReviewSheetConst.BizType.T_ERP.equals(rs.getBizType())) { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + + ReviewSheetDTO dto = new ReviewSheetDTO(); + dto.setBusinessNo(rs.getWoCode()); + dto.setMdsItemCode(dto.getPreCode()); + dto.setTrialStatus(rs.getReviewStatus().toString()); + dto.setHearDis(rs.getSubmitType().toString()); + dto.setTrialType(rs.getReviewOrderMode()+""); + dto.setPreCode(rs.getUpCode()); + dto.setProporTion(rs.getScale()); + dto.setSubQty(rs.getUnqualifiedQty()); + + List vods = new ArrayList<>(); + + for(ReviewDuty vod : listD){ + ReviewDutyDTO vodDTO = new ReviewDutyDTO(); + vodDTO.setTrialId(vod.getReviewSheetId()+""); + vodDTO.setReqQty(vod.getQty()); + vodDTO.setUnit(vod.getUnit()); + vodDTO.setCorrBatchNo(vod.getRelevantBatch()); + vods.add(vodDTO); + } + + + List vofs = new ArrayList<>(); + for(ReviewFault vof : listF){ + ReviewFaultDTO vofDTO = new ReviewFaultDTO(); + vofDTO.setTrialId(vof.getReviewSheetId()+""); + vofDTO.setFaultType(vof.getNgType2Id()+""); + vofDTO.setQuestClass(vof.getNgType3Id()+""); + vofDTO.setQuestSubclass(vof.getNgType4Id()+""); + vofDTO.setProportion(vof.getScale()); + vofDTO.setFaultQty(vof.getQty()); + vofDTO.setDescribe(vof.getMemo()); + vofs.add(vofDTO); + } + + JSONObject obj = new JSONObject(); + obj.put("qmsRepairApplyDTO", dto); + obj.put("qmsRepairPartList", vods); + obj.put("qmsRepairMalfList", vofs); + HttpEntity entity = new HttpEntity<>(obj, headers); + ResponseEntity responseEntity; + JSONObject responseBody; + try { + responseEntity = httpClientTemplate.postForEntity("http://192.168.119.68:10113" + + "/api/mms/qms/qmsrepairapply/qmsRepairApplyRest/saveQmsRepairApply/v1", entity, JSONObject.class); + JSONObject result = responseEntity.getBody(); + + responseBody = result.getJSONObject("responseBody"); + if (responseBody == null) { + throw new BusinessException("审理单,接口返回值null"); + } + } catch (Exception e) { + throw new RuntimeException("审理单,接口返回值null"); + } + } return R.success("成功"); } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java index cdaeb5d1..4540b217 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java @@ -112,7 +112,8 @@ public class UserController { TeamSet detail = workCenterClient.getTeamSetById(teamSet.getId()).getData(); if(detail != null){ - String teamId = detail.getTeamMemberId(); +// String teamId = detail.getTeamMemberId(); + String teamId = detail.getTeamId(); if(null != teamId && !"".equals(teamId)){ List ids = Func.toLongList(teamId); @@ -148,7 +149,8 @@ public class UserController { List teams = new ArrayList<>(); TeamSet detail = workCenterClient.getTeamSetById(teamSet.getId()).getData(); if(detail != null){ - String teamId = detail.getTeamMemberId(); +// String teamId = detail.getTeamMemberId(); + String teamId = detail.getTeamId(); if(null != teamId && !"".equals(teamId)){ List ids = Func.toLongList(teamId); QueryWrapper queryWrapper = new QueryWrapper<>(); 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 c9707d11..464f3f9f 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 @@ -126,7 +126,8 @@ public class DeptServiceImpl extends ServiceImpl implements ID TeamSet detail = workCenterClient.getTeamSetById(teamSetId).getData(); if(detail != null){ - String teamId = detail.getTeamMemberId(); +// String teamId = detail.getTeamMemberId(); + String teamId = detail.getTeamId(); if(null != teamId && !"".equals(teamId)){ List ids = Func.toLongList(teamId); QueryWrapper queryWrapper = new QueryWrapper<>();