diff --git a/blade-service/blade-desk/blade-desk.iml b/blade-service/blade-desk/blade-desk.iml deleted file mode 100644 index b212ee7..0000000 --- a/blade-service/blade-desk/blade-desk.iml +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/TaskingConstant.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/TaskingConstant.java index 8fb7571..c89c8c6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/TaskingConstant.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/TaskingConstant.java @@ -6,6 +6,7 @@ package org.springblade.desk.dashboard.constant; */ public interface TaskingConstant { + /** 工艺任务状态*/ /** * 待分派 */ @@ -52,6 +53,7 @@ public interface TaskingConstant { */ String IS_SINTERING = "1"; + /** 零件状态*/ /** * 正常 */ @@ -68,4 +70,50 @@ public interface TaskingConstant { * 作废 */ String STATUS_MORAL = "5"; + + /** 工艺任务类型*/ + /** + * 新图任务 + */ + String NEW_MAP_TASKS = "3"; + /** + * 设计变更任务 + */ + String DESIGN_CHANGE_TASKS = "2"; + + /** + * 审理单超时 + */ + String TRIAL_ORDER_TIMEOUT = "4"; + /** + * 检验超时 + */ + String INSPECTION_TIMEOUT = "5"; + /** + * 返工计划工艺编制 + */ + String REWORK_PLAN_EDIT = "6"; + + + /** 零件工艺状态*/ + /** + * 已过期 + */ + String HAVE_EXPIRED = "1"; + + /** + * 使用中 + */ + String IN_USE = "2"; + + /** + * 维护中 + */ + String UNDER_MAINTENANCE = "3"; + + + /** + * 是否是检验工序 + */ + Integer IS_CHECKOUT = 1; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessSetController.java index 140409b..ac56ce0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessSetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessSetController.java @@ -41,6 +41,7 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.dashboard.pojo.dto.BsTeamSetDTO; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; import org.springblade.desk.dashboard.pojo.vo.BsProcessSetVO; @@ -207,10 +208,9 @@ public class BsProcessSetController extends BladeController { @ApiOperationSupport(order = 11) @Operation(summary = "增加删除班组", description = "班组ids") public R addOrUpdateTeam(@Parameter(description = "主键集合", required = true) - @RequestParam List tsIdList, - @RequestParam Long pId - ) { - + @RequestBody BsTeamSetDTO bsTeamSetDTO) { + Long pId = bsTeamSetDTO.getPid(); + List tsIdList = bsTeamSetDTO.getTsIdList(); return R.status(bsProcessSetService.addOrUpdateTeam(pId,tsIdList)); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsWorkCenterController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsWorkCenterController.java index 8041ca4..b8cd46d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsWorkCenterController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsWorkCenterController.java @@ -158,4 +158,16 @@ public class BsWorkCenterController extends BladeController { ExcelUtil.export(response, "工作中心表数据" + DateUtil.time(), "工作中心表数据表", list, BsWorkCenterExcel.class); } + + /** + * 工作中心表 查询 + */ + @GetMapping("/getList") + @ApiOperationSupport(order = 1) + @Operation(summary = "作业中心列表", description = "") + public R> getList() { + List detail = bsWorkCenterService.getList(); + return R.data(detail); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java index 7189380..aa74ebc 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java @@ -173,10 +173,20 @@ public class DsCraftController extends BladeController { @GetMapping("/getVersion") @ApiOperationSupport(order = 1) @Operation(summary = "获取版本号", description = "传入零件ID") - public R> getVersion(Long partId) { + public R> getVersion(Long partId) { return R.data(dsCraftService.getVersion(partId)); } + /** + * 根据零件ID查询工艺 + */ + @GetMapping("/listByPart") + @ApiOperationSupport(order = 1) + @Operation(summary = "获取版本号", description = "传入零件ID") + public R> listByPart(Long partId) { + return R.data(dsCraftService.selectDsCraftByPartId(partId)); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java index adf0619..f006f62 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java @@ -75,10 +75,13 @@ public class DsPartController extends BladeController { @GetMapping("/detail") @ApiOperationSupport(order = 1) @Operation(summary = "详情", description = "传入dsPart") - public R detail(DsPartEntity dsPart) { - DsPartEntity detail = dsPartService.getOne(Condition.getQueryWrapper(dsPart)); - return R.data(DsPartWrapper.build().entityVO(detail)); + public R detail(@RequestParam Long partId, + @RequestParam String partVersion) { + DsPartSynthesisVO detail = dsPartService.detail(partId,partVersion); + return R.data(detail); } + + // /** // * 零件信息表 分页 // */ @@ -240,7 +243,27 @@ public class DsPartController extends BladeController { } + /** + * 同步零件 + */ + @GetMapping("/syncPart") + @ApiOperationSupport(order = 1) + @Operation(summary = "同步零件") + public R syncPart(@RequestParam String partCode) { + + return R.data(dsPartService.syncPart(partCode)); + } + /** + * 获取零件 + */ + @GetMapping("/getPartList") + @ApiOperationSupport(order = 1) + @Operation(summary = "获取零件") + public R syncPart() { + + return R.data(dsPartService.selectAll()); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProDetailController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProDetailController.java index 5d04062..52a6293 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProDetailController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProDetailController.java @@ -38,6 +38,7 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.dashboard.pojo.vo.DsProModelVO; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -158,4 +159,15 @@ public class DsProDetailController extends BladeController { ExcelUtil.export(response, "工艺模版明细表数据" + DateUtil.time(), "工艺模版明细表数据表", list, DsProDetailExcel.class); } + /** + * 工艺模版明细表 分页 + */ + @GetMapping("/getModelDetailList") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入dsProDetail") + public R> getModelDetailList( @RequestParam Long modelId) { + List detailEntityList = dsProDetailService.selectDsProDetailByModelId(modelId); + return R.data(detailEntityList); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProModelController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProModelController.java index fd0dfc6..a407906 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProModelController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProModelController.java @@ -160,5 +160,15 @@ public class DsProModelController extends BladeController { } + /** + * 工艺模版 + */ + @GetMapping("/getModelList") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "") + public R> getModelList() { + List modelList = dsProModelService.getModelList(); + return R.data(modelList); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessController.java index 3ee6fa9..63f4d96 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessController.java @@ -170,4 +170,16 @@ public class DsProcessController extends BladeController { return R.data(dsProcessService.processDetail(processId)); } + + + /** + * 根据工艺ID查询工序 + */ + @GetMapping("/getProcessList") + @ApiOperationSupport(order = 1) + @Operation(summary = "根据工艺ID查询工序", description = "传入craftId") + public R> getProcessList(Long craftId) { + + return R.data(dsProcessService.selectDsProcessByCraftId(craftId)); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskingController.java index fa6e9bc..605ffc5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskingController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskingController.java @@ -114,7 +114,7 @@ public class DsTaskingController extends BladeController { } /** - * 任务处理新增 + * 任务处理 新增任务 */ @PostMapping("/save") @ApiOperationSupport(order = 4) @@ -192,10 +192,10 @@ public class DsTaskingController extends BladeController { /** * 任务完成 */ - @PostMapping("/taskComplete") + @GetMapping("/taskComplete") @ApiOperationSupport(order = 4) @Operation(summary = "任务完成") - public R taskComplete( @RequestBody List taskIds) { + public R taskComplete( @RequestParam List taskIds) { return R.status(dsTaskingService.taskComplete(taskIds)); } @@ -244,17 +244,17 @@ public class DsTaskingController extends BladeController { /** - * 编制 - 工艺编制 - 完成 + * 编制 - 工艺编制 - 保存 */ @PostMapping("/authorizedAccomplish") @ApiOperationSupport(order = 1) - @Operation(summary = "工艺编制-完成") + @Operation(summary = "工艺编制-保存") public R authorizedAccomplish( @RequestBody BsCompilationCompletedVO compilationCompleted ) { DsPartEntity dsPart = compilationCompleted.getDsPart(); - List zPartList = compilationCompleted.getZPartList(); + List zPartList = compilationCompleted.getPartList(); DsCraftEntity craft = compilationCompleted.getCraft(); List processList = compilationCompleted.getProcessList(); List deleteIds = compilationCompleted.getDeleteIds(); @@ -284,7 +284,7 @@ public class DsTaskingController extends BladeController { */ @PostMapping("/saveProcessMeasuringTool") @ApiOperationSupport(order = 1) - @Operation(summary = "项目 - 保存") + @Operation(summary = "尺寸量具 - 保存") public R saveProcessMeasuringTool( @RequestBody DsProcessSaveVO compilationCompleted @@ -313,8 +313,52 @@ public class DsTaskingController extends BladeController { } + /** + * 返工任务 同步 + */ + @GetMapping("/reworkTask") + @ApiOperationSupport(order = 1) + @Operation(summary = "返工任务同步", description = "") + public R reworkTask() { + + return R.status(dsTaskingService.reworkTask()); + } + + /** + * 编制 - 返工工艺编制 - 保存 + */ + @PostMapping("/reworkAuthorizedAccomplish") + @ApiOperationSupport(order = 1) + @Operation(summary = "返工工艺编制 - 保存") + public R reworkAuthorizedAccomplish( + @RequestBody PrReworkCompilationCompletedVO reworkCompilationCompletedVO + + ) { + DsCraftEntity craft = reworkCompilationCompletedVO.getCraft(); + List reworkProcessVOList = reworkCompilationCompletedVO.getReworkProcessVOList(); + List reworkProcessDeleteIds = reworkCompilationCompletedVO.getReworkProcessDeleteIds(); + List processProjectDeleteIds = reworkCompilationCompletedVO.getProcessProjectDeleteIds(); + List processMeasuringToolDeleteIds = reworkCompilationCompletedVO.getProcessMeasuringToolDeleteIds(); + List processMoldToolDeleteIds = reworkCompilationCompletedVO.getProcessMoldToolDeleteIds(); + + return R.status(dsTaskingService.reworkAuthorizedAccomplish(craft,reworkProcessVOList,reworkProcessDeleteIds, + processProjectDeleteIds,processMeasuringToolDeleteIds,processMoldToolDeleteIds)); + } + + /** + * 零件信息表 详情-工艺详情 + */ + @GetMapping("/craftDetail") + @ApiOperationSupport(order = 1) + @Operation(summary = "零件-工艺详情", description = "传入dsPart") + public R craftDetail(@RequestParam Long partId, + @RequestParam String partVersion, + @RequestParam String rank) { + DsPartAuthorizedVO detail = dsTaskingService.craftDetail(partId,partVersion,rank); + return R.data(detail); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/PrReworkProcessController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/PrReworkProcessController.java new file mode 100644 index 0000000..3db7624 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/PrReworkProcessController.java @@ -0,0 +1,161 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.IsAdmin; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; +import org.springblade.desk.dashboard.excel.PrReworkProcessExcel; +import org.springblade.desk.dashboard.wrapper.PrReworkProcessWrapper; +import org.springblade.desk.dashboard.service.IPrReworkProcessService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 返工任务表 控制器 + * + * @author BladeX + * @since 2025-12-03 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/prReworkProcess") +@Tag(name = "返工任务表", description = "返工任务表接口") +public class PrReworkProcessController extends BladeController { + + private final IPrReworkProcessService prReworkProcessService; + + /** + * 返工任务表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入prReworkProcess") + public R detail(PrReworkProcessEntity prReworkProcess) { + PrReworkProcessEntity detail = prReworkProcessService.getOne(Condition.getQueryWrapper(prReworkProcess)); + return R.data(PrReworkProcessWrapper.build().entityVO(detail)); + } + /** + * 返工任务表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入prReworkProcess") + public R> list(@Parameter(hidden = true) @RequestParam Map prReworkProcess, Query query) { + IPage pages = prReworkProcessService.page(Condition.getPage(query), Condition.getQueryWrapper(prReworkProcess, PrReworkProcessEntity.class)); + return R.data(PrReworkProcessWrapper.build().pageVO(pages)); + } + + /** + * 返工任务表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入prReworkProcess") + public R> page(PrReworkProcessVO prReworkProcess, Query query) { + IPage pages = prReworkProcessService.selectPrReworkProcessPage(Condition.getPage(query), prReworkProcess); + return R.data(pages); + } + + /** + * 返工任务表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入prReworkProcess") + public R save(@Valid @RequestBody PrReworkProcessEntity prReworkProcess) { + return R.status(prReworkProcessService.save(prReworkProcess)); + } + + /** + * 返工任务表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入prReworkProcess") + public R update(@Valid @RequestBody PrReworkProcessEntity prReworkProcess) { + return R.status(prReworkProcessService.updateById(prReworkProcess)); + } + + /** + * 返工任务表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入prReworkProcess") + public R submit(@Valid @RequestBody PrReworkProcessEntity prReworkProcess) { + return R.status(prReworkProcessService.saveOrUpdate(prReworkProcess)); + } + + /** + * 返工任务表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(prReworkProcessService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @IsAdmin + @GetMapping("/export-prReworkProcess") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入prReworkProcess") + public void exportPrReworkProcess(@Parameter(hidden = true) @RequestParam Map prReworkProcess, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(prReworkProcess, PrReworkProcessEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(PrReworkProcess::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(PrReworkProcessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = prReworkProcessService.exportPrReworkProcess(queryWrapper); + ExcelUtil.export(response, "返工任务表数据" + DateUtil.time(), "返工任务表数据表", list, PrReworkProcessExcel.class); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/excel/PrReworkProcessExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/excel/PrReworkProcessExcel.java new file mode 100644 index 0000000..bc246e7 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/excel/PrReworkProcessExcel.java @@ -0,0 +1,171 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.excel; + + +import lombok.Data; + +import java.util.Date; +import java.math.BigDecimal; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 返工任务表 Excel实体类 + * + * @author BladeX + * @since 2025-12-03 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PrReworkProcessExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 备注 + */ + @ColumnWidth(20) + @ExcelProperty("备注") + private String remarks; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private BigDecimal newColumn; + /** + * 主键ID + */ + @ColumnWidth(20) + @ExcelProperty("主键ID") + private BigDecimal id; + /** + * 返工单号 + */ + @ColumnWidth(20) + @ExcelProperty("返工单号") + private String reworkCode; + /** + * 返工顺序 + */ + @ColumnWidth(20) + @ExcelProperty("返工顺序") + private Long reworkNo; + /** + * C号(工艺号) + */ + @ColumnWidth(20) + @ExcelProperty("C号(工艺号)") + private String craftNo; + /** + * 序号 + */ + @ColumnWidth(20) + @ExcelProperty("序号") + private String processNo; + /** + * 工序ID + */ + @ColumnWidth(20) + @ExcelProperty("工序ID") + private BigDecimal ppsId; + /** + * 工艺能力ID + */ + @ColumnWidth(20) + @ExcelProperty("工艺能力ID") + private BigDecimal caId; + /** + * 工序描述 + */ + @ColumnWidth(20) + @ExcelProperty("工序描述") + private String makeMemo; + /** + * 工时定额 + */ + @ColumnWidth(20) + @ExcelProperty("工时定额") + private BigDecimal hourQuota; + /** + * 计划开始时间 + */ + @ColumnWidth(20) + @ExcelProperty("计划开始时间") + private Date startTime; + /** + * 计划结束时间 + */ + @ColumnWidth(20) + @ExcelProperty("计划结束时间") + private Date endTime; + /** + * 加工班组ID + */ + @ColumnWidth(20) + @ExcelProperty("加工班组ID") + private BigDecimal makeTeam; + /** + * 外协商ID + */ + @ColumnWidth(20) + @ExcelProperty("外协商ID") + private BigDecimal ocId; + /** + * 操作人ID + */ + @ColumnWidth(20) + @ExcelProperty("操作人ID") + private BigDecimal makeUser; + /** + * 关键工序:0-否,1-是 + */ + @ColumnWidth(20) + @ExcelProperty("关键工序:0-否,1-是") + private Short cruxProcess; + /** + * 零件号 + */ + @ColumnWidth(20) + @ExcelProperty("零件号") + private String partCode; + /** + * 批次号 + */ + @ColumnWidth(20) + @ExcelProperty("批次号") + private String batchNo; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsProcessSetMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsProcessSetMapper.java index 1910d2a..26d450e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsProcessSetMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsProcessSetMapper.java @@ -61,4 +61,5 @@ public interface BsProcessSetMapper extends BaseMapper { */ List exportBsProcessSet(@Param("ew") Wrapper queryWrapper); + BsProcessSetEntity selectBsProcessSetByProcessCode(@Param("processCode")String processCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsWorkCenterMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsWorkCenterMapper.java index 5c659d3..563af84 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsWorkCenterMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsWorkCenterMapper.java @@ -60,4 +60,5 @@ public interface BsWorkCenterMapper extends BaseMapper { */ List exportBsWorkCenter(@Param("ew") Wrapper queryWrapper); + List getList(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml index 2b6e4d3..17b274b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml @@ -21,6 +21,8 @@ + + @@ -41,7 +43,7 @@ - select * from DS_CRAFT where is_deleted = 0 and PART_ID = #{partId} + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java index 6a5bef1..5f7c391 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java @@ -63,9 +63,14 @@ public interface DsCraftMapper extends BaseMapper { List selectDsCraftByIds(@Param("craftIds")List craftIds); - List selectDsCraftByPartId(@Param("partId")Long partId); + List selectDsCraftByPartId(@Param("partId")Long partId); List selectCraftByPartId(@Param("partId")Long partId); List selectCraft(@Param("partId")Long partId, @Param("version")String version,@Param("rank")String rank); + + DsCraftEntity getPartCraft(@Param("partId")Long partId, @Param("rank")String rank, @Param("newestVersion")String newestVersion); + + DsCraftEntity getReworkCraft(@Param("partId")Long partId,@Param("changeNo") String changeNo); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsProModelMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsProModelMapper.java index 168c0f7..34e9977 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsProModelMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsProModelMapper.java @@ -60,4 +60,5 @@ public interface DsProModelMapper extends BaseMapper { */ List exportDsProModel(@Param("ew") Wrapper queryWrapper); + List selectDsProModelAll(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsTaskingMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsTaskingMapper.java index 841ddb5..162614e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsTaskingMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsTaskingMapper.java @@ -76,4 +76,15 @@ public interface DsTaskingMapper extends BaseMapper { * @return */ List selectDisposeList(IPage page, @Param("dsTasking")DsTaskingVO dsTasking); + + /** + * 根据零件号 版本号 任务状态查询 + * @param partCode + * @param version + * @param taskStatusList + * @return + */ + List selectDsTaskingByPartCodeAndVersion(@Param("partCode")String partCode, + @Param("version")String version, + @Param("taskStatusList")List taskStatusList); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml index f576d25..c2e1bf6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml @@ -73,36 +73,55 @@ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PrReworkProcessMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PrReworkProcessMapper.java new file mode 100644 index 0000000..75931ea --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PrReworkProcessMapper.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.mapper; + +import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; +import org.springblade.desk.dashboard.excel.PrReworkProcessExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 返工任务表 Mapper 接口 + * + * @author BladeX + * @since 2025-12-03 + */ +public interface PrReworkProcessMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param prReworkProcess 查询参数 + * @return List + */ + List selectPrReworkProcessPage(IPage page, PrReworkProcessVO prReworkProcess); + + + /** + * 获取导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportPrReworkProcess(@Param("ew") Wrapper queryWrapper); + + List selectPrReworkProcess(@Param("reworkOrder")String reworkOrder, + @Param("partCode")String partCode, + @Param("batchNo")String batchNo); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProModelMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProModelMapper.xml index 1deae81..682fc63 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProModelMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProModelMapper.xml @@ -47,5 +47,8 @@ + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMapper.xml index 371801b..c77830d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMapper.xml @@ -22,6 +22,7 @@ + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMeasuringToolMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMeasuringToolMapper.xml index abfba9d..892e038 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMeasuringToolMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMeasuringToolMapper.xml @@ -19,6 +19,7 @@ + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMoldToolMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMoldToolMapper.xml index 2b3ec1c..d763d06 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMoldToolMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMoldToolMapper.xml @@ -19,6 +19,7 @@ + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessProjectMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessProjectMapper.xml index e978777..9403912 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessProjectMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessProjectMapper.xml @@ -19,6 +19,7 @@ + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessSetMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessSetMapper.xml index 63ef941..85a6859 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessSetMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessSetMapper.xml @@ -26,6 +26,7 @@ + @@ -38,4 +39,10 @@ SELECT * FROM BS_PROCESS_SET ${ew.customSqlSegment} + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ReworkProcessMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ReworkProcessMapper.xml new file mode 100644 index 0000000..26930f1 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ReworkProcessMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/SpecialProMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/SpecialProMapper.xml index e229d02..b2dcce6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/SpecialProMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/SpecialProMapper.xml @@ -19,6 +19,8 @@ + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/TaskingMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/TaskingMapper.xml index f5055e1..8a90351 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/TaskingMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/TaskingMapper.xml @@ -32,6 +32,8 @@ + + @@ -78,4 +80,15 @@ + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/WorkCenterMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/WorkCenterMapper.xml index 9501af4..9d6f67c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/WorkCenterMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/WorkCenterMapper.xml @@ -43,4 +43,8 @@ SELECT * FROM BS_WORK_CENTER ${ew.customSqlSegment} + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/BsTeamSetDTO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/BsTeamSetDTO.java index 0f0251e..aaeca4d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/BsTeamSetDTO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/BsTeamSetDTO.java @@ -28,7 +28,10 @@ package org.springblade.desk.dashboard.pojo.dto; import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.web.bind.annotation.RequestParam; + import java.io.Serial; +import java.util.List; /** * 班组设置表 数据传输对象实体类 @@ -42,4 +45,6 @@ public class BsTeamSetDTO extends BsTeamSetEntity { @Serial private static final long serialVersionUID = 1L; + private List tsIdList; + private Long pid; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/PrReworkProcessDTO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/PrReworkProcessDTO.java new file mode 100644 index 0000000..1ad4334 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/PrReworkProcessDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.pojo.dto; + +import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 返工任务表 数据传输对象实体类 + * + * @author BladeX + * @since 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PrReworkProcessDTO extends PrReworkProcessEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/BsProcessSetEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/BsProcessSetEntity.java index 9ed764f..f71473d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/BsProcessSetEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/BsProcessSetEntity.java @@ -128,4 +128,10 @@ public class BsProcessSetEntity extends BaseEntity { @Schema(description = "班组") private String team; + /** + * 是否是检验工序 + */ + @Schema(description = "是否是检验工序") + private Integer isCheckout; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsCraftEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsCraftEntity.java index d99da1b..bc5443f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsCraftEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsCraftEntity.java @@ -95,4 +95,18 @@ public class DsCraftEntity extends BaseEntity { */ @Schema(description = "零件版本号") private String partVersions; + + /** + * 零件工艺状态 + */ + @Schema(description = "零件工艺状态") + private String craftStatus; + + /** + * 返工单号 + */ + @Schema(description = "返工单号") + private String reworkOrder; + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessEntity.java index e08bfe7..db6d357 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessEntity.java @@ -106,4 +106,10 @@ public class DsProcessEntity extends BaseEntity { @Schema(description = "准备工时(分钟)") private Long setoutHours; + /** + * 实验编号 + */ + @Schema(description = "实验编号") + private String trialNo; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMeasuringToolEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMeasuringToolEntity.java index ca88f24..44d75d5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMeasuringToolEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMeasuringToolEntity.java @@ -85,4 +85,10 @@ public class DsProcessMeasuringToolEntity extends BaseEntity { @Schema(description = "备注") private String remarks; + /** + * 实验编号 + */ + @Schema(description = "实验编号") + private String trialNo; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMoldToolEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMoldToolEntity.java index 744c383..4103bf0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMoldToolEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMoldToolEntity.java @@ -84,5 +84,10 @@ public class DsProcessMoldToolEntity extends BaseEntity { */ @Schema(description = "备注") private String remarks; + /** + * 实验编号 + */ + @Schema(description = "实验编号") + private String trialNo; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessProjectEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessProjectEntity.java index a40cf7a..b1a3c6a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessProjectEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessProjectEntity.java @@ -85,4 +85,11 @@ public class DsProcessProjectEntity extends BaseEntity { @Schema(description = "备注") private String remarks; + + /** + * 实验编号 + */ + @Schema(description = "实验编号") + private String trialNo; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsSpecialProEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsSpecialProEntity.java index bc99031..5eb30cd 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsSpecialProEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsSpecialProEntity.java @@ -90,4 +90,15 @@ public class DsSpecialProEntity extends TenantEntity { @Schema(description = "备注") private String remarks; + /** + * 外协Id + */ + @Schema(description = "外协Id") + private String ocId; + /** + * 外协名称 + */ + @Schema(description = "外协名称") + private String ocName; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsTaskingEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsTaskingEntity.java index 4ec68ac..8857181 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsTaskingEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsTaskingEntity.java @@ -159,4 +159,19 @@ public class DsTaskingEntity extends BaseEntity { @Schema(description = "工艺完成时间") private Date craftTime; + /** + * 工艺级别 + */ + @Schema(description = "工艺级别") + private String rank; + + + /** + * 返工单号 + */ + @Schema(description = "返工单号") + private String reworkOrder; + + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/PrReworkProcessEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/PrReworkProcessEntity.java new file mode 100644 index 0000000..4e3b62f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/PrReworkProcessEntity.java @@ -0,0 +1,150 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.pojo.entity; + +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; +import java.math.BigDecimal; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.tenant.mp.TenantEntity; +import java.io.Serial; + +/** + * 返工任务表 实体类 + * + * @author BladeX + * @since 2025-12-03 + */ +@Data +@TableName("PR_REWORK_PROCESS") +@Schema(description = "PrReworkProcess对象") +@EqualsAndHashCode(callSuper = true) +public class PrReworkProcessEntity extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 备注 + */ + @Schema(description = "备注") + private String remarks; + /** + * + */ + @Schema(description = "") + private BigDecimal newColumn; + /** + * 返工单号 + */ + @Schema(description = "返工单号") + private String reworkCode; + /** + * 返工顺序 + */ + @Schema(description = "返工顺序") + private Long reworkNo; + /** + * C号(工艺号) + */ + @Schema(description = "C号(工艺号)") + private String craftNo; + /** + * 序号 + */ + @Schema(description = "序号") + private String processNo; + /** + * 工序ID + */ + @Schema(description = "工序ID") + private BigDecimal ppsId; + /** + * 工艺能力ID + */ + @Schema(description = "工艺能力ID") + private BigDecimal caId; + /** + * 工序描述 + */ + @Schema(description = "工序描述") + private String makeMemo; + /** + * 工时定额 + */ + @Schema(description = "工时定额") + private BigDecimal hourQuota; + /** + * 计划开始时间 + */ + @Schema(description = "计划开始时间") + private Date startTime; + /** + * 计划结束时间 + */ + @Schema(description = "计划结束时间") + private Date endTime; + /** + * 加工班组ID + */ + @Schema(description = "加工班组ID") + private Long makeTeam; + /** + * 外协商ID + */ + @Schema(description = "外协商ID") + private Long ocId; + /** + * 操作人ID + */ + @Schema(description = "操作人ID") + private Long makeUser; + /** + * 关键工序:0-否,1-是 + */ + @Schema(description = "关键工序:0-否,1-是") + private Short cruxProcess; + /** + * 零件号 + */ + @Schema(description = "零件号") + private String partCode; + /** + * 批次号 + */ + @Schema(description = "批次号") + private String batchNo; + + /** + * 实验编号 + */ + @Schema(description = "实验编号") + private String trialNo; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsCompilationCompletedVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsCompilationCompletedVO.java index 86cbad0..847aff2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsCompilationCompletedVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsCompilationCompletedVO.java @@ -22,7 +22,7 @@ public class BsCompilationCompletedVO { /** * 子件集合 */ - private List zPartList; + private List partList; /** * 工艺信息 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsWorkCenterVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsWorkCenterVO.java index edb9679..3eaa4dd 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsWorkCenterVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsWorkCenterVO.java @@ -25,21 +25,39 @@ */ package org.springblade.desk.dashboard.pojo.vo; -import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity; +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; /** - * 工作中心表 视图实体类 + * 工作中心表 实体类 * * @author BladeX * @since 2025-11-22 */ @Data -@EqualsAndHashCode(callSuper = true) -public class BsWorkCenterVO extends BsWorkCenterEntity { - @Serial - private static final long serialVersionUID = 1L; +public class BsWorkCenterVO { + + /** + * id + */ + @Schema(description = "id") + private Long id; + + /** + * 编码 + */ + @Schema(description = "编码") + private String wcCode; + /** + * 名称 + */ + @Schema(description = "名称") + private String wcName; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsProcessVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsProcessVO.java index 06c58eb..c150313 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsProcessVO.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsProcessVO.java @@ -29,6 +29,7 @@ import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.util.List; /** * 零件工艺工序信息表 视图实体类 @@ -41,5 +42,4 @@ import java.io.Serial; public class DsProcessVO extends DsProcessEntity { @Serial private static final long serialVersionUID = 1L; - } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsReworkTaskVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsReworkTaskVO.java new file mode 100644 index 0000000..163dfcd --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsReworkTaskVO.java @@ -0,0 +1,92 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; + +import java.io.Serial; +import java.util.List; + +/** + * 零件信息表 视图实体类 + * + * @author BladeX + * @since 2025-11-12 + */ +@Data +public class DsReworkTaskVO { +// -- 数据源 erp +// -- select a.redono, a.prtno, a.splcode, a.deptcode, a.detail +// -- from dba_mgr.v_mes_rb_redo@erp_mes_link a +// -- where a.rbmesroutstat is null; +// +// 主要变量 +// v_redono - 返工单号 +// v_prtno - 零件号 +// v_batch_no - 批次号(splcode) +// v_dept_code - 部门代码 +// v_memo - 备注信息 + + /** + * 返工单号 + */ + @Schema(description = "返工单号") + private String redono; + + /** + * 零件号 + */ + @Schema(description = "零件号") + private String prtno; + + + /** + * 批次号 + */ + @Schema(description = "批次号") + private String splcode; + + + /** + * 部门代码 + */ + @Schema(description = "deptcode") + private String deptcode; + + /** + * 描述 + */ + @Schema(description = "detail") + private String detail; + + + + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/PrReworkCompilationCompletedVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/PrReworkCompilationCompletedVO.java new file mode 100644 index 0000000..a9434d0 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/PrReworkCompilationCompletedVO.java @@ -0,0 +1,46 @@ +package org.springblade.desk.dashboard.pojo.vo; + +import lombok.Data; +import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; +import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity; + +import java.util.List; + +/** + * @author: liweidong + * @create: 2025-11-26 + */ +@Data +public class PrReworkCompilationCompletedVO { + + /** + * 工艺信息 + */ + private DsCraftEntity craft; + /** + * 工序集合 + */ + private List reworkProcessVOList; + + /** + * 工序删除ID集合 + */ + private List reworkProcessDeleteIds; + + /** + * 项目删除ID集合 + */ + private List processProjectDeleteIds; + + /** + * 工序量具删除ID集合 + */ + private List processMeasuringToolDeleteIds; + + /** + * 工序工装模具删除ID集合 + */ + private List processMoldToolDeleteIds; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/PrReworkProcessVO.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/PrReworkProcessVO.java new file mode 100644 index 0000000..6deeb9f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/PrReworkProcessVO.java @@ -0,0 +1,53 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.pojo.vo; + +import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; +import java.util.List; + +/** + * 返工任务表 视图实体类 + * + * @author BladeX + * @since 2025-12-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PrReworkProcessVO extends PrReworkProcessEntity { + @Serial + private static final long serialVersionUID = 1L; + + + private List processProjectVOList; + + private List processMeasuringToolVOList; + + private List processMoldToolVOList; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/SyncResult.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/SyncResult.java new file mode 100644 index 0000000..be7d606 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/SyncResult.java @@ -0,0 +1,13 @@ +package org.springblade.desk.dashboard.pojo.vo; + +import lombok.Data; + +/** + * @author: liweidong + * @create: 2025-12-03 + */ +@Data +public class SyncResult { + private boolean success; + private String note; +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsProcessSetService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsProcessSetService.java index ce14643..745f8a1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsProcessSetService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsProcessSetService.java @@ -66,4 +66,11 @@ public interface IBsProcessSetService extends BaseService { * @return */ boolean addOrUpdateTeam(Long pid, List tsIdList); + + /** + * 根据工序编码查询 + * @param processCode + * @return + */ + BsProcessSetEntity selectBsProcessSetByProcessCode(String processCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsWorkCenterService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsWorkCenterService.java index c0d6fba..dc97186 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsWorkCenterService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsWorkCenterService.java @@ -58,4 +58,9 @@ public interface IBsWorkCenterService extends BaseService { */ List exportBsWorkCenter(Wrapper queryWrapper); + /** + * 作业中心 + * @return + */ + List getList(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java index 736d1bf..b547943 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java @@ -83,7 +83,7 @@ public interface IDsCraftService extends BaseService { * @param partId * @return */ - List getVersion(Long partId); + List getVersion(Long partId); /** * 根据零件号查询工艺信息 @@ -107,4 +107,29 @@ public interface IDsCraftService extends BaseService { * @return */ boolean addOrEdit(DsCraftEntity craft); + + /** + * 根据零件号 获取最新工艺版本号 + * @param partId + * @return + */ + String getNewestVersion(Long partId); + + /** + * 获取零件工艺 + * @param partId 零件号 + * @param rank 工艺等级 + * @param newestVersion 最新版本号 + * @return + */ + DsCraftEntity getPartCraft(Long partId, String rank, String newestVersion); + + /** + * 获取返工工艺 + * @param partId + * @param changeNo + * @return + */ + DsCraftEntity getReworkCraft(Long partId, String changeNo); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java index f8c150f..8bf431f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java @@ -165,7 +165,23 @@ public interface IDsPartService extends BaseService { */ boolean updateDsPart(DsPartEntity dsPart, List zPartList); - /** + /** + * 同步零件 + * @param partCode + * @return + */ + Object syncPart(String partCode); + + /** + * 零件详情 + * @param partId + * @param partVersion + * @return + */ + DsPartSynthesisVO detail(Long partId, String partVersion); + + + /** * 烧结树形结构 * @param partCode * @return diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProModelService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProModelService.java index de770eb..ddec14c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProModelService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProModelService.java @@ -87,4 +87,10 @@ public interface IDsProModelService extends BaseService { * @return */ boolean update(JSONObject data); + + /** + * 获取所有工艺模版 + * @return + */ + List getModelList(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMeasuringToolService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMeasuringToolService.java index 2f59fc9..6b4999e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMeasuringToolService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMeasuringToolService.java @@ -32,6 +32,9 @@ import org.springblade.desk.dashboard.pojo.vo.DsProcessMeasuringToolVO; import org.springblade.desk.dashboard.excel.DsProcessMeasuringToolExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.dashboard.pojo.vo.DsProcessProjectVO; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; + import java.util.List; /** @@ -80,4 +83,12 @@ public interface IDsProcessMeasuringToolService extends BaseService processMeasuringToolEntities); + + /** + * 返工新增修改 + * @param prReworkProcess + * @param processMeasuringToolVOList + * @return + */ + boolean saveReworkProcessMeasuringTool(PrReworkProcessVO prReworkProcess, List processMeasuringToolVOList); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMoldToolService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMoldToolService.java index 161ec55..fc7dce7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMoldToolService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMoldToolService.java @@ -32,6 +32,8 @@ import org.springblade.desk.dashboard.pojo.vo.DsProcessMoldToolVO; import org.springblade.desk.dashboard.excel.DsProcessMoldToolExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; + import java.util.List; /** @@ -80,4 +82,12 @@ public interface IDsProcessMoldToolService extends BaseService processMoldToolEntities); + + /** + * 返工新增修改 + * @param prReworkProcess + * @param processMoldToolVOList + * @return + */ + boolean saveReworkProcessMoldTool(PrReworkProcessVO prReworkProcess, List processMoldToolVOList); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessProjectService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessProjectService.java index b9aa92e..d0fdd96 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessProjectService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessProjectService.java @@ -32,6 +32,8 @@ import org.springblade.desk.dashboard.pojo.vo.DsProcessProjectVO; import org.springblade.desk.dashboard.excel.DsProcessProjectExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; + import java.util.List; /** @@ -87,4 +89,12 @@ public interface IDsProcessProjectService extends BaseService processProjectEntityList); + + /** + * 保存返工项目信息 + * @param prReworkProcess + * @param processProjectVOList + * @return + */ + boolean saveReworkProcessProjectSave(PrReworkProcessVO prReworkProcess, List processProjectVOList); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsTaskingService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsTaskingService.java index 4ce35fb..36325df 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsTaskingService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsTaskingService.java @@ -34,6 +34,8 @@ import org.springblade.desk.dashboard.pojo.vo.DsTaskingVO; import org.springblade.desk.dashboard.excel.DsTaskingExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; + import java.util.List; /** @@ -185,4 +187,31 @@ public interface IDsTaskingService extends BaseService { * @return */ boolean saveProcessMoldTool(DsProcessEntity processEntity, List processMoldToolEntities, List deleteIds); + + /** + * 返工任务同步 + * @return + */ + boolean reworkTask(); + + /** + * 返工任务保存 + * @param craft + * @param reworkProcessVOList + * @param reworkProcessDeleteIds + * @param processProjectDeleteIds + * @param processMeasuringToolDeleteIds + * @param processMoldToolDeleteIds + * @return + */ + boolean reworkAuthorizedAccomplish(DsCraftEntity craft, List reworkProcessVOList, List reworkProcessDeleteIds, List processProjectDeleteIds, List processMeasuringToolDeleteIds, List processMoldToolDeleteIds); + + /** + * 零件详情 工艺 + * @param partId + * @param partVersion + * @param rank + * @return + */ + DsPartAuthorizedVO craftDetail(Long partId, String partVersion, String rank); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IPrReworkProcessService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IPrReworkProcessService.java new file mode 100644 index 0000000..0f92fe0 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IPrReworkProcessService.java @@ -0,0 +1,69 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; +import org.springblade.desk.dashboard.excel.PrReworkProcessExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 返工任务表 服务类 + * + * @author BladeX + * @since 2025-12-03 + */ +public interface IPrReworkProcessService extends BaseService { + /** + * 自定义分页 + * + * @param page 分页参数 + * @param prReworkProcess 查询参数 + * @return IPage + */ + IPage selectPrReworkProcessPage(IPage page, PrReworkProcessVO prReworkProcess); + + + /** + * 导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportPrReworkProcess(Wrapper queryWrapper); + + /** + * 获取返工工序 + * @param reworkOrder + * @param partCode + * @param batchNo + * @return + */ + List selectPrReworkProcess(String reworkOrder, String partCode, String batchNo); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsProcessSetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsProcessSetServiceImpl.java index 861f68d..250dd7c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsProcessSetServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsProcessSetServiceImpl.java @@ -130,4 +130,9 @@ public class BsProcessSetServiceImpl extends BaseServiceImpl implements IBsWorkCenterService { + @Autowired + BsWorkCenterMapper workCenterMapper; + @Override public IPage selectBsWorkCenterPage(IPage page, BsWorkCenterVO bsWorkCenter) { return page.setRecords(baseMapper.selectBsWorkCenterPage(page, bsWorkCenter)); @@ -60,4 +64,9 @@ public class BsWorkCenterServiceImpl extends BaseServiceImpl getList() { + return workCenterMapper.getList(); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsCraftServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsCraftServiceImpl.java index 1304001..59d72aa 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsCraftServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsCraftServiceImpl.java @@ -53,9 +53,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -139,7 +137,7 @@ public class DsCraftServiceImpl extends BaseServiceImpl getVersion(Long partId) { + public List getVersion(Long partId) { return craftMapper.selectDsCraftByPartId(partId); } @@ -172,4 +170,29 @@ public class DsCraftServiceImpl extends BaseServiceImpl craftVOList = craftMapper.selectCraftByPartId(partId); + Optional latestVersion = craftVOList.stream() + .map(DsCraftVO::getPartVersions) + .max(Comparator.naturalOrder()); + if (latestVersion.isPresent()) { + // 输出: 最新版本号 + System.out.println("最新版本号: " + latestVersion.get()); + return latestVersion.get(); + } + return null; + } + + @Override + public DsCraftEntity getPartCraft(Long partId, String rank, String newestVersion) { + return craftMapper.getPartCraft(partId,rank,newestVersion); + } + + @Override + public DsCraftEntity getReworkCraft(Long partId, String changeNo) { + return craftMapper.getReworkCraft(partId,changeNo); + } + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java index 3013269..f26ddc9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java @@ -351,6 +351,38 @@ public class DsPartServiceImpl extends BaseServiceImpl partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId()); + List idList = partRelationEntityList.stream() + .map(DsPartRelationEntity::getChildPartId) + .collect(Collectors.toList()); + + List dsPartEntityList = dsPartMapper.selectDsPartByIds(idList); + dsPartSynthesisVO.setDsPartEntities(dsPartEntityList); + } + + dsPartSynthesisVO.setDsPartEntity(partEntity); + return dsPartSynthesisVO; + } + public Date addDaysToCurrentDate(int days) { LocalDateTime localDateTime = LocalDateTime.now().plusDays(days); return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java index ac64ee1..e77552e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java @@ -156,4 +156,9 @@ public class DsProModelServiceImpl extends BaseServiceImpl getModelList() { + return proModelMapper.selectDsProModelAll(); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMeasuringToolServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMeasuringToolServiceImpl.java index 144b84c..189e0e6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMeasuringToolServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMeasuringToolServiceImpl.java @@ -30,6 +30,8 @@ import org.springblade.desk.dashboard.pojo.entity.DsProcessMeasuringToolEntity; import org.springblade.desk.dashboard.pojo.vo.DsProcessMeasuringToolVO; import org.springblade.desk.dashboard.excel.DsProcessMeasuringToolExcel; import org.springblade.desk.dashboard.mapper.DsProcessMeasuringToolMapper; +import org.springblade.desk.dashboard.pojo.vo.DsProcessProjectVO; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; import org.springblade.desk.dashboard.service.IDsProcessMeasuringToolService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -93,4 +95,20 @@ public class DsProcessMeasuringToolServiceImpl extends BaseServiceImpl processMeasuringToolVOList) { + if(!CollectionUtils.isEmpty(processMeasuringToolVOList)){ + for (DsProcessMeasuringToolVO dsProcessMeasuringToolVO : processMeasuringToolVOList) { + if (null != dsProcessMeasuringToolVO.getId()){ + updateById(dsProcessMeasuringToolVO); + }else { + dsProcessMeasuringToolVO.setProcessId(prReworkProcess.getId()); + save(dsProcessMeasuringToolVO); + } + } + } + return true; + } + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMoldToolServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMoldToolServiceImpl.java index 7ad1441..1862537 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMoldToolServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMoldToolServiceImpl.java @@ -30,6 +30,7 @@ import org.springblade.desk.dashboard.pojo.entity.DsProcessMoldToolEntity; import org.springblade.desk.dashboard.pojo.vo.DsProcessMoldToolVO; import org.springblade.desk.dashboard.excel.DsProcessMoldToolExcel; import org.springblade.desk.dashboard.mapper.DsProcessMoldToolMapper; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; import org.springblade.desk.dashboard.service.IDsProcessMoldToolService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -92,4 +93,19 @@ public class DsProcessMoldToolServiceImpl extends BaseServiceImpl processMoldToolVOList) { + if(!CollectionUtils.isEmpty(processMoldToolVOList)){ + for (DsProcessMoldToolVO dsProcessMoldToolVO : processMoldToolVOList) { + if(null != dsProcessMoldToolVO.getId()){ + updateById(dsProcessMoldToolVO); + }else { + dsProcessMoldToolVO.setProcessId(prReworkProcess.getId()); + save(dsProcessMoldToolVO); + } + } + } + return true; + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessProjectServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessProjectServiceImpl.java index 9761946..ce0df61 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessProjectServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessProjectServiceImpl.java @@ -30,6 +30,7 @@ import org.springblade.desk.dashboard.pojo.entity.DsProcessProjectEntity; import org.springblade.desk.dashboard.pojo.vo.DsProcessProjectVO; import org.springblade.desk.dashboard.excel.DsProcessProjectExcel; import org.springblade.desk.dashboard.mapper.DsProcessProjectMapper; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; import org.springblade.desk.dashboard.service.IDsProcessProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -97,4 +98,19 @@ public class DsProcessProjectServiceImpl extends BaseServiceImpl processProjectVOList) { + if(!CollectionUtils.isEmpty(processProjectVOList)){ + for (DsProcessProjectVO dsProcessProjectVO : processProjectVOList) { + if(null != dsProcessProjectVO.getId()){ + updateById(dsProcessProjectVO); + }else { + dsProcessProjectVO.setProcessId(prReworkProcess.getId()); + save(dsProcessProjectVO); + } + } + } + return true; + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java index 54070e0..9de9218 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java @@ -26,6 +26,8 @@ package org.springblade.desk.dashboard.service.impl; import com.alibaba.fastjson2.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.math3.random.ValueServer; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; @@ -48,6 +50,10 @@ import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import javax.xml.crypto.Data; +import java.net.DatagramSocket; +import java.sql.Connection; +import java.sql.SQLException; import java.util.*; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -59,6 +65,7 @@ import java.util.stream.Collectors; * @author BladeX * @since 2025-11-12 */ +@Slf4j @Service public class DsTaskingServiceImpl extends BaseServiceImpl implements IDsTaskingService { @@ -90,6 +97,18 @@ public class DsTaskingServiceImpl extends BaseServiceImpl selectAssignList(IPage page, DsTaskingVO dsTasking) { List dsTaskingVOS = baseMapper.selectDsTaskingPage(page, dsTasking); @@ -169,14 +188,111 @@ public class DsTaskingServiceImpl extends BaseServiceImpl taskIds) { - if (Objects.isNull(taskIds)) { + if (CollectionUtils.isEmpty(taskIds)) { throw new ServiceException("任务ID为空"); } for (Long taskId : taskIds) { + DsTaskingEntity dsTaskingEntity = taskingMapper.selectById(taskId); + //返工任务 + if(dsTaskingEntity.getTaskType().equals(TaskingConstant.REWORK_PLAN_EDIT)){ + DsPartEntity partEntity = partService.selectDsPartByPatCode(dsTaskingEntity.getPartCode()); + //返工单号 返工工艺 + List reworkProcessEntityList = reworkProcessService.selectPrReworkProcess(dsTaskingEntity.getReworkOrder(), partEntity.getPartCode(), dsTaskingEntity.getVersion()); + if(CollectionUtils.isEmpty(reworkProcessEntityList)){ + throw new ServiceException("返工工序缺失"); + } + for (PrReworkProcessEntity prReworkProcessEntity : reworkProcessEntityList) { + if(null == prReworkProcessEntity.getMakeTeam() && null == prReworkProcessEntity.getOcId()){ + throw new ServiceException("外协厂商或加工班组为空"); + } + BsProcessSetEntity processSet = processSetService.selectBsProcessSetByProcessCode(prReworkProcessEntity.getProcessNo()); + if(TaskingConstant.IS_CHECKOUT.equals(processSet.getIsCheckout()) ){ + List processProjectEntities = processProjectService.selectDsProcessProjectByProcessId(prReworkProcessEntity.getId()); + if(CollectionUtils.isEmpty(processProjectEntities)){ + throw new ServiceException(":未编制检验项目"); + } + } + } + } + + //1.判断零件和子件二级工艺/指定工艺级别下是否有工序 + DsPartEntity partEntity = partService.selectDsPartByPatCode(dsTaskingEntity.getPartCode()); + String rank = dsTaskingEntity.getRank(); + + //获取最新工艺版本号 + String newestVersion = craftService.getNewestVersion(partEntity.getId()); + //查询零件和子件是否编制工序 + //零件工艺 + DsCraftEntity craft = craftService.getPartCraft(partEntity.getId(),rank,newestVersion); + if(null == craft){ + throw new ServiceException("零件工艺缺失"); + } + //零件工序 + List processEntities = processService.selectDsProcessByCraftId(craft.getId()); + if(CollectionUtils.isEmpty(processEntities)){ + throw new ServiceException("【零件号】工艺未编制工序"); + } + //判断工序下的检验项目 + for (DsProcessEntity processEntity : processEntities) { + BsProcessSetEntity processSet = processSetService.selectBsProcessSetByProcessCode(processEntity.getProcessCode()); + if(TaskingConstant.IS_CHECKOUT.equals(processSet.getIsCheckout()) ){ + List processProjectEntities = processProjectService.selectDsProcessProjectByProcessId(processEntity.getId()); + if(CollectionUtils.isEmpty(processProjectEntities)){ + throw new ServiceException(processEntity.getProcessName()+":未编制检验项目"); + } + } + } + + + //子件工艺 + List partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId()); + for (DsPartRelationEntity dsPartRelationEntity : partRelationEntityList) { + DsPartEntity zPartEntity = partService.getById(dsPartRelationEntity.getChildPartId()); + if(null != zPartEntity){ + //检验子件超期 + Date nextDue = zPartEntity.getNextDue(); + if (nextDue.before(new Date())) { + throw new ServiceException("【零件号】工艺超期"); + } + } + String zNewestVersion = craftService.getNewestVersion(zPartEntity.getId()); + DsCraftEntity zCraft = craftService.getPartCraft(zPartEntity.getId(),rank,zNewestVersion); + if(null == zCraft){ + throw new ServiceException("子件工艺缺失"); + } + List zProcessEntities = processService.selectDsProcessByCraftId(zCraft.getId()); + if(CollectionUtils.isEmpty(zProcessEntities)){ + throw new ServiceException("【子件号】工艺未编制工序"); + } + + //判断工序下的检验项目 + for (DsProcessEntity zProcessEntity : zProcessEntities) { + BsProcessSetEntity processSet = processSetService.selectBsProcessSetByProcessCode(zProcessEntity.getProcessCode()); + if(TaskingConstant.IS_CHECKOUT.equals(processSet.getIsCheckout()) ){ + List processProjectEntities = processProjectService.selectDsProcessProjectByProcessId(zProcessEntity.getId()); + if(CollectionUtils.isEmpty(processProjectEntities)){ + throw new ServiceException("子件"+zProcessEntity.getProcessName()+":未编制检验项目"); + } + } + } + + + zCraft.setCraftStatus(TaskingConstant.IN_USE); + craftService.updateById(zCraft); + } + + //3.工艺任务状态变更为已完成 dsTaskingEntity.setCraftTime(new Date()); dsTaskingEntity.setTaskStatus(TaskingConstant.TASK_STATUS_COMPLETED); taskingMapper.updateById(dsTaskingEntity); + + //4.更新零件、子件当前版本的工艺任务状态为【使用中】 + craft.setCraftStatus(TaskingConstant.IN_USE); + craftService.updateById(craft); + + //todo 5新图任务 - 磨具计划下发 对接坤哥 + } return true; @@ -272,8 +388,30 @@ public class DsTaskingServiceImpl extends BaseServiceImpl taskStatusList = new ArrayList<>(Arrays.asList( + TaskingConstant.TASK_STATUS_WAIT, + TaskingConstant.TASK_STATUS_ALREADY, + TaskingConstant.TASK_STATUS_UNDERWAY + )); + //查询 + List taskingEntityList = taskingMapper.selectDsTaskingByPartCodeAndVersion(partCode,version,taskStatusList); + if(!CollectionUtils.isEmpty(taskingEntityList)){ + throw new ServiceException("此版本任务已存在"); + }else { + dsTasking.setRank("2"); + save(dsTasking); + return true; + } } @Override @@ -314,14 +452,18 @@ public class DsTaskingServiceImpl extends BaseServiceImpl dsPartEntityList = partService.selectDsPartByParentID(partEntity.getId()); + if(TaskingConstant.IS_SINTERING.equals(partEntity.getIsSintering())){ + List partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId()); + List idList = partRelationEntityList.stream() + .map(DsPartRelationEntity::getChildPartId) + .collect(Collectors.toList()); + List dsPartEntityList = partService.selectDsPartByIds(idList); + dsPartSynthesisVO.setDsPartEntities(dsPartEntityList); + } - DsPartSynthesisVO dsPartSynthesisVO = new DsPartSynthesisVO(); dsPartSynthesisVO.setDsPartEntity(partEntity); - dsPartSynthesisVO.setDsPartEntities(dsPartEntityList); - return dsPartSynthesisVO; } @@ -335,6 +477,16 @@ public class DsTaskingServiceImpl extends BaseServiceImpl()); // 查询零件工艺信息 - List dsCraftVOList = craftService.selectDsCraftByPartId(partEntity.getId(), dsTaskingEntity.getVersion(), rank); + List dsCraftVOList = craftService.selectDsCraftByPartId(partEntity.getId(), version, rank); if (!CollectionUtils.isEmpty(dsCraftVOList)) { for (DsCraftVO craftVO : dsCraftVOList) { @@ -380,6 +532,58 @@ public class DsTaskingServiceImpl extends BaseServiceImpl()); + + //查询返工工艺信息 + DsCraftEntity craft = craftService.getReworkCraft(partEntity.getId(),dsTaskingEntity.getReworkOrder()); + + // 创建工艺节点 + CraftTreeVO craftTree = new CraftTreeVO(); + craftTree.setCraftInfo(JSONObject.from(craft)); + craftTree.setProcessList(new ArrayList<>()); + + if(null != craft){ + //查询返工工序 + List reworkProcessEntityList = reworkProcessService.selectPrReworkProcess(dsTaskingEntity.getReworkOrder(),dsTaskingEntity.getPartCode(),dsTaskingEntity.getVersion()); + if(!CollectionUtils.isEmpty(reworkProcessEntityList)){ + List reworkProcessId = reworkProcessEntityList.stream() + .map(PrReworkProcessEntity::getId) + .collect(Collectors.toList()); + + // 批量查询关联数据 + List processProjectEntityList = processProjectService.selectDsProcessProjectByProcessIds(reworkProcessId); + List processMeasuringToolEntityList = processMeasuringToolService.selectDsProcessMeasuringToolByProcessIds(reworkProcessId); + List processMoldToolEntityList = processMoldToolService.selectDsProcessMoldToolByProcessIds(reworkProcessId); + + // 构建工序树 + List processTree = reworkBuildProcessTree(reworkProcessEntityList, processProjectEntityList, + processMeasuringToolEntityList, processMoldToolEntityList); + craftTree.setProcessList(processTree); + } + + result.getCraftList().add(craftTree); + + }else{ + // 没有返工工艺信息的情况 + // 创建新的工艺实体并设置返工订单号 + craft = new DsCraftEntity(); + craft.setReworkOrder(dsTaskingEntity.getReworkOrder()); + craft.setPartId(partEntity.getId()); + craft.setPartVersions(dsTaskingEntity.getVersion()); + // 创建工艺节点并设置craftInfo + craftTree.setCraftInfo(JSONObject.from(craft)); + craftTree.setProcessList(new ArrayList<>()); + + result.getCraftList().add(craftTree); + } + + return result; + } + @Override public boolean authorizedAccomplish(DsPartEntity dsPart, List zPartList, DsCraftEntity craft, List processList, List deleteIds) { @@ -414,6 +618,282 @@ public class DsTaskingServiceImpl extends BaseServiceImpl reworkTasks = null; + + try { + // 1. 获取未处理的返工任务 + reworkTasks = fetchUnprocessedReworkTasks(); + + // 开始事务 + mesConn.setAutoCommit(false); + + // 遍历处理每个返工任务 + for (DsReworkTaskVO task : reworkTasks) { + processSingleTask(task); + } + + // 提交事务 + mesConn.commit(); + log.info("返工任务自动分派完成,共处理" + reworkTasks.size() + "个任务"); + + } catch (SQLException e) { + // 异常处理 - 对应exception when NO_DATA_FOUND + try { + mesConn.rollback(); + log.info("返工任务分派失败,事务已回滚: " + e.getMessage()); + System.out.println("找不到数据,执行失败!"); // 对应dbms_output.put_line + } catch (SQLException ex) { + log.info("回滚失败: " + ex.getMessage()); + } + } + + List reworkTaskVOList = new ArrayList<>(); + if(CollectionUtils.isEmpty(reworkTaskVOList)){ + throw new ServiceException("无返工任务"); + } + + return false; + } + + @Override + public boolean reworkAuthorizedAccomplish(DsCraftEntity craft, List reworkProcessVOList, List reworkProcessDeleteIds, + List processProjectDeleteIds, List processMeasuringToolDeleteIds, List processMoldToolDeleteIds) { + //保存工艺信息 + if(null == craft.getId()){ + craft.setPrority("3"); + craft.setRank("2"); + craftService.save(craft); + }else { + craftService.updateById(craft); + } + + //保存返工工序 + if(!CollectionUtils.isEmpty(reworkProcessVOList)){ + for (PrReworkProcessVO prReworkProcess : reworkProcessVOList) { + if(null == prReworkProcess.getId()){ + DsPartEntity partEntity = partService.getById(craft.getPartId()); + prReworkProcess.setReworkCode(craft.getReworkOrder()); + prReworkProcess.setPartCode(partEntity.getPartCode()); + prReworkProcess.setBatchNo(craft.getPartVersions()); + reworkProcessService.save(prReworkProcess); + }else { + reworkProcessService.updateById(prReworkProcess); + } + //项目 工装 量具 + if(!CollectionUtils.isEmpty(prReworkProcess.getProcessProjectVOList())){ + processProjectService.saveReworkProcessProjectSave(prReworkProcess,prReworkProcess.getProcessProjectVOList()); + } + if(!CollectionUtils.isEmpty(prReworkProcess.getProcessMeasuringToolVOList())){ + processMeasuringToolService.saveReworkProcessMeasuringTool(prReworkProcess,prReworkProcess.getProcessMeasuringToolVOList()); + } + if(!CollectionUtils.isEmpty(prReworkProcess.getProcessMoldToolVOList())){ + processMoldToolService.saveReworkProcessMoldTool(prReworkProcess,prReworkProcess.getProcessMoldToolVOList()); + } + } + } + + //删除返工工序 + if(!CollectionUtils.isEmpty(reworkProcessDeleteIds)){ + reworkProcessService.deleteLogic(reworkProcessDeleteIds); + } + //删除返工项目 + if(!CollectionUtils.isEmpty(processProjectDeleteIds)){ + reworkProcessService.deleteLogic(processProjectDeleteIds); + } + //删除返工量具 + if(!CollectionUtils.isEmpty(processMeasuringToolDeleteIds)){ + reworkProcessService.deleteLogic(processMeasuringToolDeleteIds); + } + //删除返工量具 + if(!CollectionUtils.isEmpty(processMoldToolDeleteIds)){ + reworkProcessService.deleteLogic(processMoldToolDeleteIds); + } + + return true; + } + + @Override + public DsPartAuthorizedVO craftDetail(Long partId, String partVersion, String rank) { + DsPartEntity partEntity = partService.getById(partId); + DsPartAuthorizedVO partAuthorizedVO = authorizedTask(rank, partEntity, partVersion); + return partAuthorizedVO; + } + + /** + * 处理单个返工任务 + * 对应: loop 循环内的处理逻辑 + */ + private void processSingleTask(DsReworkTaskVO task) throws SQLException { + // 2. 检查零件是否存在 + //先查询零件存不存在 + DsPartEntity partEntity = partService.selectDsPartByPatCode(task.getPrtno()); + if (null == partEntity) { + // 同步零件数据 + SyncResult syncResult = syncPartData(task.getPrtno()); + + if (!syncResult.isSuccess()) { + // 记录同步失败日志 + logDockingFailure(task.getPrtno(), syncResult.getNote()); + return; + } + } + + // 3. 获取零件工艺信息 + DsPartEntity partInfo = partService.selectDsPartByPatCode(task.getPrtno()); + if (partInfo == null) { + log.debug("零件 " + task.getPrtno() + " 信息获取失败,跳过处理"); + return; + } + + // 4. 分配工艺员 + String craftUserId = assignCraftUser(task, partInfo); + + // 5. 创建工艺任务 + createCraftTask(task, partInfo, craftUserId); + + // 6. 标记ERP状态 + markErpTaskProcessed(task.getRedono()); + + } + + private void markErpTaskProcessed(String redono) { + //todo 更新erp状态 + String sql = "{call pro_rbredoroutstat(?, ?, ?)}"; +// 标记erp的分配状态 +// dba_mgr.pro_rbredoroutstat@erp_mes_link(v_redono,v_excnote, v_excflag); + } + + private void createCraftTask(DsReworkTaskVO task, DsPartEntity partInfo, String craftUserId) { + + // 设置任务状态和时间 + Date assignTime = null; + int taskStatus = 1; + + if (craftUserId == null) { + taskStatus = 0; + } else { + assignTime = new Date(); + } + + DsTaskingEntity dsTaskingEntity = new DsTaskingEntity(); + dsTaskingEntity.setReworkOrder(task.getRedono()); + dsTaskingEntity.setPartId(partInfo.getId()); + dsTaskingEntity.setPartCode(task.getPrtno()); + dsTaskingEntity.setPartName(partInfo.getPartName()); + dsTaskingEntity.setVersion(task.getSplcode()); + dsTaskingEntity.setCreateTime(new Date()); + dsTaskingEntity.setPdmWay(partInfo.getCraftWay()); + dsTaskingEntity.setWayDetails(task.getDeptcode()); + dsTaskingEntity.setTaskType("6"); + dsTaskingEntity.setFinalPlating(partInfo.getPlate()); + dsTaskingEntity.setCraftMan(craftUserId); + dsTaskingEntity.setAssignTime(assignTime); + dsTaskingEntity.setTaskStatus(taskStatus); + dsTaskingEntity.setSyncTime(new Date()); + dsTaskingEntity.setOutFlag("1"); + dsTaskingEntity.setInProduction("0"); + dsTaskingEntity.setRemarks(task.getDetail()); + dsTaskingEntity.setPlate(partInfo.getPlate()); + + save(dsTaskingEntity); + log.info("创建工艺任务成功: " + task.getPrtno()); + } + + private String assignCraftUser(DsReworkTaskVO task, DsPartEntity partInfo) { + String craftWay = partInfo.getCraftWay(); + String craftUserId = "0"; + + // 检查是否是封接类零件 + if (craftWay != null && craftWay.contains("封接")) { + // 获取烧结工艺员(按任务最少原则) + craftUserId = getSealingCraftUser(); + } else { + // 其他零件类型 + craftUserId = getPlatingCraftUser(); + + } + + return "0".equals(craftUserId) ? null : craftUserId; + } + + private String getPlatingCraftUser() { + String sql = "SELECT u.user_id FROM (" + + "SELECT c.user_id, MAX(COALESCE(t.assign_time, '1999-01-01 23:00:01')) as assign_time " + + "FROM bs_plating a " + + "JOIN bs_basic_class b ON a.bc_id = b.bc_id " + + "JOIN bs_user_right c ON b.bc_id = c.the_id " + + "LEFT JOIN ds_tasking t ON c.user_id = t.craft_man " + + "WHERE b.type = 5 AND b.deleted = 0 AND a.config_no = ? " + + "GROUP BY c.user_id " + + "ORDER BY assign_time ASC " + + ") u LIMIT 1"; + + return null; + } + + + private String getSealingCraftUser() { + String sql = "SELECT u.user_id FROM (" + + "SELECT c.user_id, MAX(COALESCE(t.assign_time, '1999-01-01 23:00:01')) as assign_time " + + "FROM bs_basic_class b " + + "JOIN bs_user_right c ON b.bc_id = c.the_id " + + "LEFT JOIN ds_tasking t ON c.user_id = t.craft_man " + + "WHERE b.code = 'I类' AND b.type = 5 AND b.deleted = 0 " + + "GROUP BY c.user_id " + + "ORDER BY assign_time ASC " + + ") u LIMIT 1"; + + return null; + } + + private SyncResult syncPartData(String prtno) { + SyncResult result = new SyncResult(); + + try { + // 模拟同步过程 + boolean syncSuccess = callPartSyncService(prtno); + + if (syncSuccess) { + result.setSuccess(true); + result.setNote("同步成功"); + } else { + result.setSuccess(false); + result.setNote("同步失败"); + } + } catch (Exception e) { + result.setSuccess(false); + result.setNote("同步异常: " + e.getMessage()); + } + + return result; + } + + private boolean callPartSyncService(String prtno) { + //todo 同步零件信息 + return true; + } + + private List fetchUnprocessedReworkTasks() { + // -- 数据源 erp +// -- select a.redono, a.prtno, a.splcode, a.deptcode, a.detail +// -- from dba_mgr.v_mes_rb_redo@erp_mes_link a +// -- where a.rbmesroutstat is null; + return new ArrayList<>(); + } + + /** + * 记录同步失败日志 + */ + private void logDockingFailure(String partNo, String note) throws SQLException { + String sql = "INSERT INTO sy_docking_log(dl_id, read_type, read_result, create_time) " + + "VALUES(?, partNo, note, new Date())"; + } + /** * 构建工序树 @@ -468,4 +948,58 @@ public class DsTaskingServiceImpl extends BaseServiceImpl reworkBuildProcessTree(List processEntities, + List projectEntities, + List measuringToolEntities, + List moldToolEntities) { + + // 按工序ID分组 + Map> projectMap = projectEntities.stream() + .collect(Collectors.groupingBy(DsProcessProjectEntity::getProcessId)); + + Map> measuringToolMap = measuringToolEntities.stream() + .collect(Collectors.groupingBy(DsProcessMeasuringToolEntity::getProcessId)); + + Map> moldToolMap = moldToolEntities.stream() + .collect(Collectors.groupingBy(DsProcessMoldToolEntity::getProcessId)); + + List processTree = new ArrayList<>(); + + + for (PrReworkProcessEntity process : processEntities) { + ProcessTreeVO processNode = new ProcessTreeVO(); + + // 设置工序基本信息 + processNode.setProcessInfo(JSONObject.from(process)); + + Long processId = process.getId(); + + // 设置工装模具列表 + List molds = moldToolMap.get(processId); + processNode.setMoldToolList(molds != null ? + molds.stream().map(JSONObject::from).collect(Collectors.toList()) : + new ArrayList<>()); + + // 设置尺寸量具列表 + List tools = measuringToolMap.get(processId); + processNode.setMeasuringToolList(tools != null ? + tools.stream().map(JSONObject::from).collect(Collectors.toList()) : + new ArrayList<>()); + + // 设置工序项目列表 + List projects = projectMap.get(processId); + processNode.setProjectList(projects != null ? + projects.stream().map(JSONObject::from).collect(Collectors.toList()) : + new ArrayList<>()); + + processTree.add(processNode); + } + + return processTree; + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/PrReworkProcessServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/PrReworkProcessServiceImpl.java new file mode 100644 index 0000000..a98bcac --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/PrReworkProcessServiceImpl.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.service.impl; + +import org.checkerframework.checker.units.qual.A; +import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; +import org.springblade.desk.dashboard.excel.PrReworkProcessExcel; +import org.springblade.desk.dashboard.mapper.PrReworkProcessMapper; +import org.springblade.desk.dashboard.service.IPrReworkProcessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import java.util.List; + +/** + * 返工任务表 服务实现类 + * + * @author BladeX + * @since 2025-12-03 + */ +@Service +public class PrReworkProcessServiceImpl extends BaseServiceImpl implements IPrReworkProcessService { + + @Autowired + PrReworkProcessMapper reworkProcessMapper; + + @Override + public IPage selectPrReworkProcessPage(IPage page, PrReworkProcessVO prReworkProcess) { + return page.setRecords(baseMapper.selectPrReworkProcessPage(page, prReworkProcess)); + } + + + @Override + public List exportPrReworkProcess(Wrapper queryWrapper) { + List prReworkProcessList = baseMapper.exportPrReworkProcess(queryWrapper); + //prReworkProcessList.forEach(prReworkProcess -> { + // prReworkProcess.setTypeName(DictCache.getValue(DictEnum.YES_NO, PrReworkProcess.getType())); + //}); + return prReworkProcessList; + } + + @Override + public List selectPrReworkProcess(String reworkOrder, String partCode, String batchNo) { + return reworkProcessMapper.selectPrReworkProcess(reworkOrder,partCode,batchNo); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/wrapper/PrReworkProcessWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/wrapper/PrReworkProcessWrapper.java new file mode 100644 index 0000000..8828078 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/wrapper/PrReworkProcessWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.dashboard.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity; +import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO; +import java.util.Objects; + +/** + * 返工任务表 包装类,返回视图层所需的字段 + * + * @author BladeX + * @since 2025-12-03 + */ +public class PrReworkProcessWrapper extends BaseEntityWrapper { + + public static PrReworkProcessWrapper build() { + return new PrReworkProcessWrapper(); + } + + @Override + public PrReworkProcessVO entityVO(PrReworkProcessEntity prReworkProcess) { + PrReworkProcessVO prReworkProcessVO = Objects.requireNonNull(BeanUtil.copyProperties(prReworkProcess, PrReworkProcessVO.class)); + + //User createUser = UserCache.getUser(prReworkProcess.getCreateUser()); + //User updateUser = UserCache.getUser(prReworkProcess.getUpdateUser()); + //prReworkProcessVO.setCreateUserName(createUser.getName()); + //prReworkProcessVO.setUpdateUserName(updateUser.getName()); + + return prReworkProcessVO; + } + + +}