From 1d24328e6eb002526bb3903cf0372714442d6065 Mon Sep 17 00:00:00 2001 From: Ledo Date: Fri, 16 May 2025 00:28:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E9=85=8D=E6=B4=BE=E5=B7=A5=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E6=94=B9=E4=B8=BA=E5=A4=9A=E9=80=89=20=E4=B8=8D?= =?UTF-8?q?=E7=AE=A1=E6=8E=A7=E8=A3=85=E9=85=8D=E6=B4=BE=E5=B7=A5=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E5=8F=8A=E9=A1=BA=E5=BA=8F=20=E8=A3=85=E9=85=8D?= =?UTF-8?q?=E6=B4=BE=E5=B7=A5=E4=B8=AD=E6=9C=89=E4=B8=80=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E4=BA=86=EF=BC=8C=E4=B8=8D=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=20=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=8F=90=E4=BA=A4=E9=85=8D=E5=A5=97=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/heli/enums/ErrorCodeConstants.java | 2 +- .../taskdispatch/TaskDispatchController.java | 21 +- .../vo/TaskDispatchSaveReqVO.java | 4 +- .../TaskDispatchDetailOwnerController.java | 95 +++++++ .../vo/TaskDispatchDetailOwnerPageReqVO.java | 74 +++++ .../vo/TaskDispatchDetailOwnerRespVO.java | 89 ++++++ .../vo/TaskDispatchDetailOwnerSaveReqVO.java | 75 +++++ .../taskdispatch/TaskDispatchDetailDO.java | 10 + .../TaskDispatchDetailOwnerDO.java | 111 ++++++++ .../TaskDispatchDetailMapper.java | 46 +++ .../TaskDispatchDetailOwnerMapper.java | 57 ++++ .../mysql/taskreport/TaskReportMapper.java | 3 +- .../taskdispatch/TaskDispatchService.java | 4 +- .../taskdispatch/TaskDispatchServiceImpl.java | 268 ++++++++++++++++-- .../TaskDispatchDetailOwnerService.java | 55 ++++ .../TaskDispatchDetailOwnerServiceImpl.java | 74 +++++ .../mapper/taskreport/TaskReportMapper.xml | 6 + .../src/api/heli/taskdispatch/index.ts | 7 +- .../src/views/heli/taskdispatch/detail.vue | 58 ++-- 19 files changed, 1001 insertions(+), 58 deletions(-) create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/TaskDispatchDetailOwnerController.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerPageReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerRespVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerSaveReqVO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatchdetailowner/TaskDispatchDetailOwnerDO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatchdetailowner/TaskDispatchDetailOwnerMapper.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatchdetailowner/TaskDispatchDetailOwnerService.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatchdetailowner/TaskDispatchDetailOwnerServiceImpl.java diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index 36f2b68..0c23fdd 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -104,7 +104,7 @@ public interface ErrorCodeConstants { ErrorCode TASK_REPORT_PARAMS_ERRORBG = new ErrorCode(1_009_009, "开始报工和结束报工操作人员不同,无法报工"); ErrorCode TASK_REPORT_PARAMS_ERRORJD = new ErrorCode(1_009_010, "报工进度不能超过100%"); ErrorCode TASK_REPORT_PARAMS_ERRORSJBG = new ErrorCode(1_009_011, "报工进度不能小于上次报工进度"); - + ErrorCode TASK_DISPATCH_DETAIL_OWNER_NOT_EXISTS = new ErrorCode(1_009_006,"派工明细不存在"); ErrorCode TASK_DISPATCH_TASK_NOT_EXISTS = new ErrorCode(1_009_004, "任务不存在或已完成"); ErrorCode TASK_DISPATCH_TASK_NO_PERMISSION_FOR_OPERATE = new ErrorCode(1_009_005, "任务不满足操作条件"); ErrorCode TASK_DISPATCH_TASK_IS_OVER = new ErrorCode(1_009_007, "报工数量已完成"); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/TaskDispatchController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/TaskDispatchController.java index 35bdf66..611d7cf 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/TaskDispatchController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/TaskDispatchController.java @@ -138,18 +138,29 @@ public class TaskDispatchController { @GetMapping("/task-dispatch-detail/list-by-dispatch-id") @Operation(summary = "获得派工明细列表") - @Parameter(name = "dispatchId", description = "派工单id") + @Parameter(name = "dispatchId", description = "派工单id",required = true) + @Parameter(name = "dispatchType", description = "派工单类型",required = false) @PreAuthorize("@ss.hasPermission('heli:task-dispatch:query')") - public CommonResult> getTaskDispatchDetailListByDispatchId(@RequestParam("dispatchId") Long dispatchId) { - return success(taskDispatchService.getTaskDispatchDetailListByDispatchId(dispatchId)); + public CommonResult> getTaskDispatchDetailListByDispatchId(@RequestParam("dispatchId") Long dispatchId,@RequestParam("dispatchType") String dispatchType) { + if (dispatchType != null){ + return success(taskDispatchService.getTaskDispatchDetailListByDispatchNew(dispatchId)); + }else { + return success(taskDispatchService.getTaskDispatchDetailListByDispatchId(dispatchId)); + + } } @DeleteMapping("/task-dispatch-detail/delete") @Operation(summary = "删除派工单") @Parameter(name = "id", description = "编号", required = true) + @Parameter(name = "dispatchType", description = "派工单类型",required = false) @PreAuthorize("@ss.hasPermission('heli:task-dispatch:delete')") - public CommonResult deleteTaskDispatchDetail(@RequestParam("id") Long id) { - taskDispatchService.deleteTaskDispatchDetail(id); + public CommonResult deleteTaskDispatchDetail(@RequestParam("id") Long id,@RequestParam("dispatchType") String dispatchType) { + if (dispatchType != null){ + taskDispatchService.deleteTaskDispatchDetailOwner(id); + }else { + taskDispatchService.deleteTaskDispatchDetail(id); + } return success(true); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java index 4777309..d04f1b7 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -52,7 +53,8 @@ public class TaskDispatchSaveReqVO { @Schema(description = "派工明细列表") private List taskDispatchDetails; - + @Schema(description = "装配派工明细列表") + private List taskDispatchDetailOwnerDOList; @Schema(description = "操作类型") @NotBlank(message = "操作类型不能为空") private String active; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/TaskDispatchDetailOwnerController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/TaskDispatchDetailOwnerController.java new file mode 100644 index 0000000..9963c08 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/TaskDispatchDetailOwnerController.java @@ -0,0 +1,95 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatchdetailowner; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatchdetailowner.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; +import com.chanko.yunxi.mes.module.heli.service.taskdispatchdetailowner.TaskDispatchDetailOwnerService; + +@Tag(name = "管理后台 - 派工明细负责人") +@RestController +@RequestMapping("/heli/task-dispatch-detail-owner") +@Validated +public class TaskDispatchDetailOwnerController { + + @Resource + private TaskDispatchDetailOwnerService taskDispatchDetailOwnerService; + + @PostMapping("/create") + @Operation(summary = "创建派工明细负责人") + @PreAuthorize("@ss.hasPermission('heli:task-dispatch-detail-owner:create')") + public CommonResult createTaskDispatchDetailOwner(@Valid @RequestBody TaskDispatchDetailOwnerSaveReqVO createReqVO) { + return success(taskDispatchDetailOwnerService.createTaskDispatchDetailOwner(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新派工明细负责人") + @PreAuthorize("@ss.hasPermission('heli:task-dispatch-detail-owner:update')") + public CommonResult updateTaskDispatchDetailOwner(@Valid @RequestBody TaskDispatchDetailOwnerSaveReqVO updateReqVO) { + taskDispatchDetailOwnerService.updateTaskDispatchDetailOwner(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除派工明细负责人") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:task-dispatch-detail-owner:delete')") + public CommonResult deleteTaskDispatchDetailOwner(@RequestParam("id") Long id) { + taskDispatchDetailOwnerService.deleteTaskDispatchDetailOwner(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得派工明细负责人") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:task-dispatch-detail-owner:query')") + public CommonResult getTaskDispatchDetailOwner(@RequestParam("id") Long id) { + TaskDispatchDetailOwnerDO taskDispatchDetailOwner = taskDispatchDetailOwnerService.getTaskDispatchDetailOwner(id); + return success(BeanUtils.toBean(taskDispatchDetailOwner, TaskDispatchDetailOwnerRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得派工明细负责人分页") + @PreAuthorize("@ss.hasPermission('heli:task-dispatch-detail-owner:query')") + public CommonResult> getTaskDispatchDetailOwnerPage(@Valid TaskDispatchDetailOwnerPageReqVO pageReqVO) { + PageResult pageResult = taskDispatchDetailOwnerService.getTaskDispatchDetailOwnerPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, TaskDispatchDetailOwnerRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出派工明细负责人 Excel") + @PreAuthorize("@ss.hasPermission('heli:task-dispatch-detail-owner:export')") + @OperateLog(type = EXPORT) + public void exportTaskDispatchDetailOwnerExcel(@Valid TaskDispatchDetailOwnerPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = taskDispatchDetailOwnerService.getTaskDispatchDetailOwnerPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "派工明细负责人.xls", "数据", TaskDispatchDetailOwnerRespVO.class, + BeanUtils.toBean(list, TaskDispatchDetailOwnerRespVO.class)); + } + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerPageReqVO.java new file mode 100644 index 0000000..5e585d3 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerPageReqVO.java @@ -0,0 +1,74 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatchdetailowner.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 派工明细负责人分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class TaskDispatchDetailOwnerPageReqVO extends PageParam { + + @Schema(description = "派工单id", example = "29399") + private Long dispatchId; + + @Schema(description = "工序id", example = "18588") + private Long procedureId; + + @Schema(description = "顺序号") + private Integer sort; + + @Schema(description = "负责人") + private Long owner; + + @Schema(description = "多个负责人") + private String ownerIds; + + @Schema(description = "设备型号") + private Long deviceModel; + + @Schema(description = "预计开始日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] startTime; + + @Schema(description = "预计结束日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] endTime; + + @Schema(description = "预计工时") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private BigDecimal[] workTime; + + @Schema(description = "派工数量") + private BigDecimal amount; + + @Schema(description = "工序要点") + private String summary; + + @Schema(description = "工序状态 默认|已提交|已完成 0|1|2", example = "2") + private Boolean procedureStatus; + + @Schema(description = "状态,1表示正常,2表示禁用", example = "1") + private Boolean status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "报工数量") + private BigDecimal workAmountTotal; + + @Schema(description = "报工工时") + private BigDecimal workTimeTotal; + + @Schema(description = "产品明细id", example = "30922") + private Long projectSubId; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerRespVO.java new file mode 100644 index 0000000..a67ddca --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerRespVO.java @@ -0,0 +1,89 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatchdetailowner.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 派工明细负责人 Response VO") +@Data +@ExcelIgnoreUnannotated +public class TaskDispatchDetailOwnerRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "27251") + @ExcelProperty("自增字段,唯一") + private Long id; + + @Schema(description = "派工单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29399") + @ExcelProperty("派工单id") + private Long dispatchId; + + @Schema(description = "工序id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18588") + @ExcelProperty("工序id") + private Long procedureId; + + @Schema(description = "顺序号") + @ExcelProperty("顺序号") + private Integer sort; + + @Schema(description = "负责人") + @ExcelProperty("负责人") + private Long owner; + + @Schema(description = "多个负责人") + @ExcelProperty("多个负责人") + private String ownerIds; + + @Schema(description = "设备型号") + @ExcelProperty("设备型号") + private Long deviceModel; + + @Schema(description = "预计开始日期", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("预计开始日期") + private LocalDateTime startTime; + + @Schema(description = "预计结束日期", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("预计结束日期") + private LocalDateTime endTime; + + @Schema(description = "预计工时", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("预计工时") + private BigDecimal workTime; + + @Schema(description = "派工数量", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("派工数量") + private BigDecimal amount; + + @Schema(description = "工序要点") + @ExcelProperty("工序要点") + private String summary; + + @Schema(description = "工序状态 默认|已提交|已完成 0|1|2", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("工序状态 默认|已提交|已完成 0|1|2") + private Boolean procedureStatus; + + @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("状态,1表示正常,2表示禁用") + private Boolean status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "报工数量") + @ExcelProperty("报工数量") + private BigDecimal workAmountTotal; + + @Schema(description = "报工工时") + @ExcelProperty("报工工时") + private BigDecimal workTimeTotal; + + @Schema(description = "产品明细id", example = "30922") + @ExcelProperty("产品明细id") + private Long projectSubId; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerSaveReqVO.java new file mode 100644 index 0000000..b9e1527 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatchdetailowner/vo/TaskDispatchDetailOwnerSaveReqVO.java @@ -0,0 +1,75 @@ +package com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatchdetailowner.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 派工明细负责人新增/修改 Request VO") +@Data +public class TaskDispatchDetailOwnerSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "27251") + private Long id; + + @Schema(description = "派工单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29399") + @NotNull(message = "派工单id不能为空") + private Long dispatchId; + + @Schema(description = "工序id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18588") + @NotNull(message = "工序id不能为空") + private Long procedureId; + + @Schema(description = "顺序号") + private Integer sort; + + @Schema(description = "负责人") + private Long owner; + + @Schema(description = "多个负责人") + private String ownerIds; + + @Schema(description = "设备型号") + private Long deviceModel; + + @Schema(description = "预计开始日期", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "预计开始日期不能为空") + private LocalDateTime startTime; + + @Schema(description = "预计结束日期", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "预计结束日期不能为空") + private LocalDateTime endTime; + + @Schema(description = "预计工时", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "预计工时不能为空") + private BigDecimal workTime; + + @Schema(description = "派工数量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "派工数量不能为空") + private BigDecimal amount; + + @Schema(description = "工序要点") + private String summary; + + @Schema(description = "工序状态 默认|已提交|已完成 0|1|2", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "工序状态 默认|已提交|已完成 0|1|2不能为空") + private Boolean procedureStatus; + + @Schema(description = "状态,1表示正常,2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态,1表示正常,2表示禁用不能为空") + private Boolean status; + + @Schema(description = "报工数量") + private BigDecimal workAmountTotal; + + @Schema(description = "报工工时") + private BigDecimal workTimeTotal; + + @Schema(description = "产品明细id", example = "30922") + private Long projectSubId; + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java index a9e2d4d..cdda922 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java @@ -7,6 +7,7 @@ import lombok.*; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; /** * 派工明细 DO @@ -44,6 +45,10 @@ public class TaskDispatchDetailDO extends BaseDO { * 预计工时 */ private BigDecimal workTime; + @TableField(exist = false) + private List owners; + @TableField(exist = false) + private List ownerNames; /** * 派工数量 */ @@ -69,12 +74,17 @@ public class TaskDispatchDetailDO extends BaseDO { */ @TableField(fill = FieldFill.UPDATE) private Long deviceModel; + /** + * + */ @TableField(exist = false) private Long bomDetailId; /** * 预计开始日期 */ private LocalDateTime startTime; + + private Long detailOwnerId; /** * 预计结束日期 */ diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatchdetailowner/TaskDispatchDetailOwnerDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatchdetailowner/TaskDispatchDetailOwnerDO.java new file mode 100644 index 0000000..4d83f1d --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatchdetailowner/TaskDispatchDetailOwnerDO.java @@ -0,0 +1,111 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.math.BigDecimal; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 派工明细负责人 DO + * + * @author lyw + */ +@TableName("pro_task_dispatch_detail_owner") +@KeySequence("pro_task_dispatch_detail_owner_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TaskDispatchDetailOwnerDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 派工单id + */ + private Long dispatchId; + /** + * 工序id + */ + private Long procedureId; + /** + * 派工数量 + */ + private Integer beforeAmount; + /** + * 顺序号 + */ + private Integer sort; + /** + * 负责人 + */ + private Long owner; + @TableField(exist = false) + private List owners; + @TableField(exist = false) + private List ownerNames; + /** + * 多个负责人 + */ + private String ownerIds; + @TableField(exist = false) + private Long beginProduce; + /** + * 设备型号 + */ + private Long deviceModel; + /** + * 预计开始日期 + */ + private LocalDateTime startTime; + /** + * 预计结束日期 + */ + private LocalDateTime endTime; + /** + * 预计工时 + */ + private BigDecimal workTime; + /** + * 派工数量 + */ + private Integer amount; + /** + * 工序要点 + */ + private String summary; + /** + * 工序状态 默认|已提交|已完成 0|1|2 + */ + private Integer procedureStatus; + /** + * 状态,1表示正常,2表示禁用 + */ + private Boolean status; + /** + * 报工数量 + */ + private BigDecimal workAmountTotal; + /** + * 报工工时 + */ + private BigDecimal workTimeTotal; + /** + * 产品明细id + */ + private Long projectSubId; + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java index 9199b32..1ab4b77 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatch/TaskDispatchDetailMapper.java @@ -1,6 +1,7 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -15,6 +16,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrder import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; @@ -121,6 +123,49 @@ public interface TaskDispatchDetailMapper extends BaseMapperX owner){ + UpdateWrapper wrapper = new UpdateWrapper(); + if (CollUtil.isNotEmpty(owner)){ + wrapper.in("owner",owner); + } + wrapper.eq("detail_owner_id",ownerId).set("deleted",1); + return update(wrapper); + } + default int updateByOwner(TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO, Set owner){ + UpdateWrapper wrapper = new UpdateWrapper(); + wrapper.eq("detail_owner_id",taskDispatchDetailOwnerDO.getId()).in("owner",owner); + if (taskDispatchDetailOwnerDO.getProcedureId() != null) { + wrapper.set("procedure_id", taskDispatchDetailOwnerDO.getProcedureId()); + } + if (taskDispatchDetailOwnerDO.getSort() != null){ + wrapper.set("sort",taskDispatchDetailOwnerDO.getSort()); + } + if (taskDispatchDetailOwnerDO.getDeviceModel() != null) { + wrapper.set("device_model", taskDispatchDetailOwnerDO.getDeviceModel()); + } + if (taskDispatchDetailOwnerDO.getStartTime() != null) { + wrapper.set("start_time",taskDispatchDetailOwnerDO.getStartTime()); + } + if (taskDispatchDetailOwnerDO.getEndTime() != null) { + wrapper.set("end_time",taskDispatchDetailOwnerDO.getEndTime()); + } + if (taskDispatchDetailOwnerDO.getWorkTime() != null) { + wrapper.set("work_time",taskDispatchDetailOwnerDO.getWorkTime()); + } + if (taskDispatchDetailOwnerDO.getAmount() != null) { + wrapper.set("amount",taskDispatchDetailOwnerDO.getAmount()); + } + if (taskDispatchDetailOwnerDO.getSummary() != null) { + wrapper.set("summary",taskDispatchDetailOwnerDO.getSummary()); + } + if (taskDispatchDetailOwnerDO.getProcedureStatus() != null) { + wrapper.set("procedure_status",taskDispatchDetailOwnerDO.getProcedureStatus()); + } + if (taskDispatchDetailOwnerDO.getBeforeAmount() != null) { + wrapper.set("before_amount",taskDispatchDetailOwnerDO.getBeforeAmount()); + } + return update(wrapper); + } List planBbPage(@Param("reqVO")TaskPlanJDBaoBiaoPageReqVO reqVO); List planBb(@Param("reqVO")TaskPlanJDBaoBiaoPageReqVO reqVO); // default PageResult planBbPage(TaskPlanJDBaoBiaoPageReqVO reqVO) { @@ -291,6 +336,7 @@ public interface TaskDispatchDetailMapper extends BaseMapperX selectListByDispatchIdNew(Long dispatchId) { MPJLambdaWrapper query = new MPJLambdaWrapper<>(); query.selectAll(TaskDispatchDetailDO.class) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatchdetailowner/TaskDispatchDetailOwnerMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatchdetailowner/TaskDispatchDetailOwnerMapper.java new file mode 100644 index 0000000..bbcc069 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskdispatchdetailowner/TaskDispatchDetailOwnerMapper.java @@ -0,0 +1,57 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatchdetailowner; + +import java.util.*; + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; +import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatchdetailowner.vo.*; + +/** + * 派工明细负责人 Mapper + * + * @author lyw + */ +@Mapper +public interface TaskDispatchDetailOwnerMapper extends BaseMapperX { + + default PageResult selectPage(TaskDispatchDetailOwnerPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(TaskDispatchDetailOwnerDO::getDispatchId, reqVO.getDispatchId()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getProcedureId, reqVO.getProcedureId()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getSort, reqVO.getSort()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getOwner, reqVO.getOwner()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getOwnerIds, reqVO.getOwnerIds()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getDeviceModel, reqVO.getDeviceModel()) + .betweenIfPresent(TaskDispatchDetailOwnerDO::getStartTime, reqVO.getStartTime()) + .betweenIfPresent(TaskDispatchDetailOwnerDO::getEndTime, reqVO.getEndTime()) + .betweenIfPresent(TaskDispatchDetailOwnerDO::getWorkTime, reqVO.getWorkTime()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getAmount, reqVO.getAmount()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getSummary, reqVO.getSummary()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getProcedureStatus, reqVO.getProcedureStatus()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(TaskDispatchDetailOwnerDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getWorkAmountTotal, reqVO.getWorkAmountTotal()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getWorkTimeTotal, reqVO.getWorkTimeTotal()) + .eqIfPresent(TaskDispatchDetailOwnerDO::getProjectSubId, reqVO.getProjectSubId()) + .orderByDesc(TaskDispatchDetailOwnerDO::getId)); + } + default List selectListById(Long dispatchId) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(TaskDispatchDetailOwnerDO.class) + .select("a.is_report as is_report,a.code as procedure_code") + // .select("count(b.amount) as numAmount") + .leftJoin(ProcedureDO.class,"a",ProcedureDO::getId,TaskDispatchDetailOwnerDO::getProcedureId) + // .leftJoin(TaskReportDO.class,"b",TaskReportDO::getDispatchDetailId,TaskDispatchDetailOwnerDO::getId) + .disableSubLogicDel() + .groupBy(TaskDispatchDetailOwnerDO::getId) + .eq(TaskDispatchDetailOwnerDO::getDispatchId, dispatchId); + return selectList(query); + } +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskreport/TaskReportMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskreport/TaskReportMapper.java index 39b131a..aad3963 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskreport/TaskReportMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/taskreport/TaskReportMapper.java @@ -15,6 +15,7 @@ import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.UserPostDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.springframework.util.StringUtils; import java.math.BigDecimal; @@ -71,6 +72,6 @@ public interface TaskReportMapper extends BaseMapperX { query1.eq(TaskReportDO::getDispatchDetailId,dispatchDetailId); return selectCount(query1); } - + public Long hasReportNew(@Param("ownerId") Long dispatchOwnerId); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java index 2cba3ca..e25d7a8 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchService.java @@ -6,6 +6,7 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.ygjx.vo.YgjxPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuserdetail.FpUserDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO; import javax.validation.Valid; @@ -74,11 +75,12 @@ public interface TaskDispatchService { * @return 派工明细列表 */ List getTaskDispatchDetailListByDispatchId(Long dispatchId); - + List getTaskDispatchDetailListByDispatchNew(Long dispatchId); void operate(TaskDispatchSaveReqVO operateReqVO); void deleteTaskDispatchDetail(Long id); + void deleteTaskDispatchDetailOwner(Long id); PageResult getGroupTaskDispatchDetailPage(YgjxPageReqVO pageReqVO); PageResult getTaskDispatchDetailPage(TaskDispatchDetailPageReqVO pageReqVO); PageResult getTaskDispatchDetailPageWx(TaskDispatchDetailPageReqVO pageReqVO); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java index 8b569e2..8b23a4c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.generator.IFill; import com.chanko.yunxi.mes.framework.common.exception.ErrorCode; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; @@ -20,6 +21,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrder import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskreport.TaskReportDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.equipmanufacture.EquipManufactureMapper; @@ -29,6 +31,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.procedure.ProcedureMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.projectorder.ProjectOrderSubMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatchdetailowner.TaskDispatchDetailOwnerMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.taskreport.TaskReportMapper; import com.chanko.yunxi.mes.module.heli.enums.*; import com.chanko.yunxi.mes.module.heli.manager.CrossOrderManager; @@ -36,6 +39,7 @@ import com.chanko.yunxi.mes.module.heli.service.pgmaster.PgMasterService; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import com.chanko.yunxi.mes.module.heli.service.zjpgmaster.ZjPgMasterService; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; +import com.chanko.yunxi.mes.module.system.dal.mysql.user.AdminUserMapper; import com.chanko.yunxi.mes.module.system.service.user.AdminUserService; import io.minio.messages.Item; import org.checkerframework.checker.units.qual.N; @@ -83,8 +87,12 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { @Resource private FpUserDetailMapper fpUserDetailMapper; @Resource + private TaskDispatchDetailOwnerMapper taskDispatchDetailOwnerMapper; + @Resource private PlanMapper planMapper; @Resource + private AdminUserMapper adminUserMapper; + @Resource private ZjPgMasterService zjPgMasterService; @Resource private PgMasterService pgMasterService; @@ -134,31 +142,52 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { } // 明细工序状态更新 if(operateTypeEnum == OperateTypeEnum.SUBMIT){ - updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> { - if(taskDispatchDetailDO.getProcedureStatus().intValue() == 0||taskDispatchDetailDO.getBeforeAmount()!=taskDispatchDetailDO.getAmount() - ){ - taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount()); - taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode()); - } - }); + if (updateReqVO.getDispatchType() != null && updateReqVO.getDispatchType().equals("ASSEMBLE")){ + updateReqVO.getTaskDispatchDetailOwnerDOList().forEach(taskDispatchDetailDO -> { + if(taskDispatchDetailDO.getProcedureStatus().intValue() == 0 || taskDispatchDetailDO.getBeforeAmount()!=taskDispatchDetailDO.getAmount() + ){ + taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount()); + taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode()); + } + }); + }else { + updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> { + if(taskDispatchDetailDO.getProcedureStatus().intValue() == 0 || taskDispatchDetailDO.getBeforeAmount()!=taskDispatchDetailDO.getAmount() + ){ + taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount()); + taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode()); + } + }); + } + + }else if (operateTypeEnum == OperateTypeEnum.CANCEL_SUBMIT){ PlanDO planDO = planMapper.selectById(updateReqVO.getPlanId()); if (planDO.getStatus() == 3){ throw exception(new ErrorCode(1_000_099,"计划已完成,不允许取消提交")); } - updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> { - //2025-01-17 取消提交 - 如果已报工完成的工序,报工状态还是已完成 - if (taskDispatchDetailDO.getProcedureStatus() != 2){ - taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.DEFAULT.getCode()); + if (updateReqVO.getDispatchType() != null && updateReqVO.getDispatchType().equals("ASSEMBLE")){ + }else { + updateReqVO.getTaskDispatchDetails().forEach(taskDispatchDetailDO -> { + //2025-01-17 取消提交 - 如果已报工完成的工序,报工状态还是已完成 + if (taskDispatchDetailDO.getProcedureStatus() != 2){ + taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.DEFAULT.getCode()); - } - }); + } + }); + } } updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode()); taskDispatchMapper.updateById(updateObj); // 更新子表 if(operateTypeEnum != OperateTypeEnum.CANCEL_SUBMIT){ - updateTaskDispatchDetailList(updateReqVO.getId(), updateReqVO.getTaskDispatchDetails()); + if (updateReqVO.getDispatchType() != null && updateReqVO.getDispatchType().equals("ASSEMBLE")){ + //20250515装配派工改为多人,增加owner子表 + updateAssembleDetail(operateTypeEnum,updateReqVO.getId(),updateReqVO.getTaskDispatchDetailOwnerDOList()); + }else { + updateTaskDispatchDetailList(updateReqVO.getId(), updateReqVO.getTaskDispatchDetails()); + } + } } @@ -326,6 +355,75 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { return taskDispatchDetailDOS; } + @Override + public List getTaskDispatchDetailListByDispatchNew(Long dispatchId) { + List taskDispatchDetailDOS = taskDispatchDetailOwnerMapper.selectListById(dispatchId); + + List ownerDetailIds = new ArrayList<>(); + HashMap nameHashMap = new HashMap<>(); + taskDispatchDetailDOS.forEach(map ->{ + //查一下底下有没有报工完成的数据或者已经开始报工的数据 + map.setBeginProduce(taskReportMapper.hasReportNew(map.getId())) ; + + ownerDetailIds.add(map.getId()); + List ids = new ArrayList<>(); + List names = new ArrayList<>(); + if(map.getOwnerIds() != null){ + Arrays.stream(map.getOwnerIds().split(",")).forEach(item ->{ + if(!StringUtils.isEmpty(item.trim())) { + long ownerId = Long.parseLong(item.trim()); + ids.add(ownerId); + if (nameHashMap.get(ownerId) == null) { + String nickname = adminUserMapper.selectById(ownerId).getNickname(); + names.add(nickname); + nameHashMap.put(ownerId,nickname); + }else { + names.add(nameHashMap.get(ownerId)); + } + } + }); + } + + map.setOwners(ids); + map.setOwnerNames(names); + + }); + return copyDispatchDetailOwner(taskDispatchDetailDOS); + // taskDispatchDetailDOS; + } + + List copyDispatchDetailOwner(List list){ + List taskDispatchDetailDOList = new ArrayList<>(); + for (TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO : list) { + TaskDispatchDetailDO taskDispatchDetailDO = new TaskDispatchDetailDO(); + taskDispatchDetailDO.setId(taskDispatchDetailOwnerDO.getId()); + taskDispatchDetailDO.setDispatchId(taskDispatchDetailOwnerDO.getDispatchId()); + taskDispatchDetailDO.setProcedureId(taskDispatchDetailOwnerDO.getProcedureId()); + if (taskDispatchDetailOwnerDO.getSort() != null){ + taskDispatchDetailDO.setSort(taskDispatchDetailOwnerDO.getSort()); + } + if (taskDispatchDetailOwnerDO.getDeviceModel() != null){ + taskDispatchDetailDO.setDeviceModel(taskDispatchDetailOwnerDO.getDeviceModel()); + } + taskDispatchDetailDO.setStartTime(taskDispatchDetailOwnerDO.getStartTime()); + taskDispatchDetailDO.setEndTime(taskDispatchDetailOwnerDO.getEndTime()); + taskDispatchDetailDO.setWorkTime(taskDispatchDetailOwnerDO.getWorkTime()); + taskDispatchDetailDO.setAmount(taskDispatchDetailOwnerDO.getAmount()); + if (taskDispatchDetailOwnerDO.getSummary() != null){ + taskDispatchDetailDO.setSummary(taskDispatchDetailOwnerDO.getSummary()); + } + taskDispatchDetailDO.setProcedureStatus(taskDispatchDetailOwnerDO.getProcedureStatus()); + taskDispatchDetailDO.setStatus(false); + taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailOwnerDO.getBeforeAmount()); + taskDispatchDetailDO.setBeginProduce(taskDispatchDetailOwnerDO.getBeginProduce()); + taskDispatchDetailDO.setOwners(taskDispatchDetailOwnerDO.getOwners()); + taskDispatchDetailDO.setOwnerNames(taskDispatchDetailOwnerDO.getOwnerNames()); + taskDispatchDetailDO.setBeginProduce(taskDispatchDetailOwnerDO.getBeginProduce()); + taskDispatchDetailDOList.add(taskDispatchDetailDO); + } + return taskDispatchDetailDOList; + } + @Override @Transactional(rollbackFor = Exception.class) public void operate(TaskDispatchSaveReqVO operateReqVO) { @@ -340,6 +438,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { public void deleteTaskDispatchDetail(Long id) { taskDispatchDetailMapper.deleteByDispatchId(id); } + @Override + public void deleteTaskDispatchDetailOwner(Long id) { + taskDispatchDetailMapper.deleteByOwnerId(id,null); + taskDispatchDetailOwnerMapper.deleteById(id); + } @Override public PageResult getGroupTaskDispatchDetailPage(YgjxPageReqVO pageReqVO) { @@ -366,8 +469,9 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { PageResult taskDispatchDetailDOPageResult = taskDispatchDetailMapper.selectPageWx(pageReqVO, postIds); List list = taskDispatchDetailDOPageResult.getList(); HashMap hashMap = new HashMap<>(); - if (CollUtil.isNotEmpty(list)){ + if (CollUtil.isNotEmpty(list) && !pageReqVO.getDispatchType().equals("ASSEMBLE")){ for (TaskDispatchDetailDO taskDispatchDetailDO : list) { + //2025装配的没有顺序号 List taskDispatchDetailDOS = taskDispatchDetailMapper.selectList(new LambdaQueryWrapperX() .eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId()) .eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort() + 1)); @@ -448,6 +552,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .orderByDesc(TaskReportDO::getId) .last("LIMIT 1 "); }}); + TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(taskDispatchDetailDO.getDispatchId()); // 校验 if(lastReportDO == null){ @@ -462,7 +567,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .ne(TaskReportDO::getAmount, 0); }}); int historyReportAmount = historyReportList.stream().mapToInt(TaskReportDO::getAmount).sum(); - if (taskDispatchDetailDO.getAmount() <= historyReportAmount){ + if (!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() <= historyReportAmount){ throw exception(TASK_DISPATCH_TASK_IS_OVER); } } @@ -481,15 +586,14 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .ne(TaskReportDO::getAmount, 0); }}); int historyReportAmount = historyReportList.stream().mapToInt(TaskReportDO::getAmount).sum(); - if (taskDispatchDetailDO.getAmount() <= historyReportAmount){ + if (!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() <= historyReportAmount){ throw exception(TASK_DISPATCH_TASK_IS_OVER); } - if(taskDispatchDetailDO.getAmount() < (historyReportAmount + operateReqVO.getAmount())){ + if(!taskDispatchDO.getDispatchType().equals("ASSEMBLE") && taskDispatchDetailDO.getAmount() < (historyReportAmount + operateReqVO.getAmount())){ throw exception(TASK_DISPATCH_TASK_REPORT_AMOUNT_EXCESS); } } } - TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(taskDispatchDetailDO.getDispatchId()); PlanDO planDO = planMapper.selectById(taskDispatchDO.getPlanId()); // 执行 switch (operate){ @@ -537,6 +641,21 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { case FINISH: taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); + //装配看看是不是多人,如果是多人,判断一下 + if (taskDispatchDO.getDispatchType().equals("ASSEMBLE")){ + List taskDispatchDetailDOS = taskDispatchDetailMapper.selectList(new LambdaQueryWrapperX().eq(TaskDispatchDetailDO::getDetailOwnerId, taskDispatchDetailDO.getDetailOwnerId())); + boolean allOver = true; + for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailDOS) { + if (!dispatchDetailDO.getId().equals(taskDispatchDetailDO.getId()) && !(dispatchDetailDO.getProcedureStatus() == TaskDispatchProcedureStatusEnum.COMPLETED.getCode())){ + allOver = false; + } + } + if (allOver){ + TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO = taskDispatchDetailOwnerMapper.selectById(taskDispatchDetailDO.getDetailOwnerId()); + taskDispatchDetailOwnerDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); + taskDispatchDetailOwnerMapper.updateById(taskDispatchDetailOwnerDO); + } + } //子项目装配是否完成 List taskDispatchAssembleOverList = taskDispatchMapper.selectList( new LambdaQueryWrapper() @@ -544,7 +663,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { .eq(TaskDispatchDO::getDispatchType,"ASSEMBLE")); //零件是否生产完成 List taskDispatchDetailDOS = taskDispatchDetailMapper.selectListByDispatchIdNew(taskDispatchDO.getId()); - List productionList = taskDispatchDetailDOS.stream().filter(e -> !e.getId().equals(taskDispatchDetailDO.getId())).collect(Collectors.toList()); + List productionList = taskDispatchDetailDOS.stream().filter(e -> !e.getId().equals(taskDispatchDetailDO.getId())).collect(Collectors.toList()); + //过程检 零件所有生产派工完成生成 boolean isBomDetailProductionOver = true; //终检 子项目装配派工都完成 @@ -695,7 +815,115 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { public List getListJg(Long id, Long projectSubId) { return taskDispatchMapper.getListJg(id,projectSubId); } + private void updateAssembleDetail(OperateTypeEnum operateTypeEnum,Long dispatchId, List list) { + list.forEach(o -> o.setDispatchId(dispatchId)); + // 分组更新与插入 + List updateList = list.stream().filter(o -> o.getId() != null).collect(Collectors.toList()); + List insertList = list.stream().filter(o -> o.getId() == null).collect(Collectors.toList()); + + if(!updateList.isEmpty()){ + //更新逻辑,主要是人员更新 + List ids = new ArrayList<>(); + for (TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO : list) { + taskDispatchDetailOwnerDO.setOwnerIds(taskDispatchDetailOwnerDO.getOwners().toString().replace("[","").replace("]","")); + ids.add(taskDispatchDetailOwnerDO.getId()); + } + List taskDispatchDetailOwnerDOS = taskDispatchDetailOwnerMapper.selectList(new LambdaQueryWrapperX() + .in(TaskDispatchDetailOwnerDO::getId, ids)); + //明细表操作 + List detailAddList = new ArrayList<>(); + HashMap> removeMap = new HashMap<>(); + HashMap> updateMap = new HashMap<>(); + for (TaskDispatchDetailOwnerDO now : updateList) { + for (TaskDispatchDetailOwnerDO before : taskDispatchDetailOwnerDOS) { + if (now.getId().equals(before.getId())) { + //判断人员是否发生了变动,如果少了人,要删除明细表哪个人的数据,如果加了人,要增加,没变化不管 + if (!now.getOwnerIds().equals(before.getOwnerIds())) { + String[] beforeOwnerIds = before.getOwnerIds().trim().split(","); + String[] nowOwnerIds = now.getOwnerIds().trim().split(","); + + Set beforeSet = new HashSet<>(Arrays.asList(beforeOwnerIds)); + Set nowSet = new HashSet<>(Arrays.asList(nowOwnerIds)); + //新增的 + Set added = new HashSet<>(nowSet); + added.removeAll(beforeSet); + //要删除的 + Set removed = new HashSet<>(beforeSet); + removed.removeAll(nowSet); + //要更新的 + Set updated = new HashSet<>(beforeSet); + updated.retainAll(nowSet); + + if (CollUtil.isNotEmpty(added)){ + for (String ownerStr : added) { + TaskDispatchDetailDO tdo = copyDetailDOFromOwnerDO(dispatchId, Long.valueOf(ownerStr.trim()), now); + detailAddList.add(tdo); + } + } + if (CollUtil.isNotEmpty(removed)){ + removeMap.put(now.getId(), removed); + } + if (CollUtil.isNotEmpty(updated)){ + updateMap.put(now, updated); + } + } + } + } + } + if (CollUtil.isNotEmpty(removeMap)){ + for (Long l : removeMap.keySet()) { + taskDispatchDetailMapper.deleteByOwnerId(l,removeMap.get(l)); + } + } + if (CollUtil.isNotEmpty(updateMap)){ + for (TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO : updateMap.keySet()) { + taskDispatchDetailMapper.updateByOwner(taskDispatchDetailOwnerDO,updateMap.get(taskDispatchDetailOwnerDO)); + } + } + if (CollUtil.isNotEmpty(detailAddList)){ + taskDispatchDetailMapper.insertBatch(detailAddList); + } + taskDispatchDetailOwnerMapper.updateBatch(updateList); + } + if(!insertList.isEmpty()) { + List detailInsertList = new ArrayList<>(); + for (TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO : insertList) { + taskDispatchDetailOwnerDO.setOwnerIds(taskDispatchDetailOwnerDO.getOwners().toString().replace("[","").replace("]","")); + taskDispatchDetailOwnerDO.setBeforeAmount(taskDispatchDetailOwnerDO.getAmount()); + } + taskDispatchDetailOwnerMapper.insertBatch(insertList); + for (TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO : insertList) { + for (Long owner : taskDispatchDetailOwnerDO.getOwners()) { + TaskDispatchDetailDO tdo = copyDetailDOFromOwnerDO(dispatchId, owner, taskDispatchDetailOwnerDO); + detailInsertList.add(tdo); + } + } + taskDispatchDetailMapper.insertBatch(detailInsertList); + } + } + TaskDispatchDetailDO copyDetailDOFromOwnerDO(Long dispatchId,Long owner,TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO){ + TaskDispatchDetailDO tdo = new TaskDispatchDetailDO(); + tdo.setDispatchId(dispatchId); + tdo.setDetailOwnerId(taskDispatchDetailOwnerDO.getId()); + tdo.setProcedureId(taskDispatchDetailOwnerDO.getProcedureId()); + if (taskDispatchDetailOwnerDO.getSort() != null){ + tdo.setSort(taskDispatchDetailOwnerDO.getSort()); + } + tdo.setOwner(owner); + if (taskDispatchDetailOwnerDO.getDeviceModel() != null){ + tdo.setDeviceModel(taskDispatchDetailOwnerDO.getDeviceModel()); + } + tdo.setStartTime(taskDispatchDetailOwnerDO.getStartTime()); + tdo.setEndTime(taskDispatchDetailOwnerDO.getEndTime()); + tdo.setAmount(taskDispatchDetailOwnerDO.getAmount().intValue()); + tdo.setWorkTime(taskDispatchDetailOwnerDO.getWorkTime()); + if (taskDispatchDetailOwnerDO.getSummary() != null){ + tdo.setSummary(taskDispatchDetailOwnerDO.getSummary()); + } + tdo.setBeforeAmount(taskDispatchDetailOwnerDO.getAmount().intValue()); + return tdo; + } private void createTaskDispatchDetailList(Long dispatchId, List list) { // list.forEach(o -> o.setDispatchId(dispatchId)); list = list.stream() diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatchdetailowner/TaskDispatchDetailOwnerService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatchdetailowner/TaskDispatchDetailOwnerService.java new file mode 100644 index 0000000..f94e408 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatchdetailowner/TaskDispatchDetailOwnerService.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.heli.service.taskdispatchdetailowner; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatchdetailowner.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 派工明细负责人 Service 接口 + * + * @author lyw + */ +public interface TaskDispatchDetailOwnerService { + + /** + * 创建派工明细负责人 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTaskDispatchDetailOwner(@Valid TaskDispatchDetailOwnerSaveReqVO createReqVO); + + /** + * 更新派工明细负责人 + * + * @param updateReqVO 更新信息 + */ + void updateTaskDispatchDetailOwner(@Valid TaskDispatchDetailOwnerSaveReqVO updateReqVO); + + /** + * 删除派工明细负责人 + * + * @param id 编号 + */ + void deleteTaskDispatchDetailOwner(Long id); + + /** + * 获得派工明细负责人 + * + * @param id 编号 + * @return 派工明细负责人 + */ + TaskDispatchDetailOwnerDO getTaskDispatchDetailOwner(Long id); + + /** + * 获得派工明细负责人分页 + * + * @param pageReqVO 分页查询 + * @return 派工明细负责人分页 + */ + PageResult getTaskDispatchDetailOwnerPage(TaskDispatchDetailOwnerPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatchdetailowner/TaskDispatchDetailOwnerServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatchdetailowner/TaskDispatchDetailOwnerServiceImpl.java new file mode 100644 index 0000000..bc5812e --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatchdetailowner/TaskDispatchDetailOwnerServiceImpl.java @@ -0,0 +1,74 @@ +package com.chanko.yunxi.mes.module.heli.service.taskdispatchdetailowner; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatchdetailowner.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatchdetailowner.TaskDispatchDetailOwnerDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatchdetailowner.TaskDispatchDetailOwnerMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 派工明细负责人 Service 实现类 + * + * @author lyw + */ +@Service +@Validated +public class TaskDispatchDetailOwnerServiceImpl implements TaskDispatchDetailOwnerService { + + @Resource + private TaskDispatchDetailOwnerMapper taskDispatchDetailOwnerMapper; + + @Override + public Long createTaskDispatchDetailOwner(TaskDispatchDetailOwnerSaveReqVO createReqVO) { + // 插入 + TaskDispatchDetailOwnerDO taskDispatchDetailOwner = BeanUtils.toBean(createReqVO, TaskDispatchDetailOwnerDO.class); + taskDispatchDetailOwnerMapper.insert(taskDispatchDetailOwner); + // 返回 + return taskDispatchDetailOwner.getId(); + } + + @Override + public void updateTaskDispatchDetailOwner(TaskDispatchDetailOwnerSaveReqVO updateReqVO) { + // 校验存在 + validateTaskDispatchDetailOwnerExists(updateReqVO.getId()); + // 更新 + TaskDispatchDetailOwnerDO updateObj = BeanUtils.toBean(updateReqVO, TaskDispatchDetailOwnerDO.class); + taskDispatchDetailOwnerMapper.updateById(updateObj); + } + + @Override + public void deleteTaskDispatchDetailOwner(Long id) { + // 校验存在 + validateTaskDispatchDetailOwnerExists(id); + // 删除 + taskDispatchDetailOwnerMapper.deleteById(id); + } + + private void validateTaskDispatchDetailOwnerExists(Long id) { + if (taskDispatchDetailOwnerMapper.selectById(id) == null) { + throw exception(TASK_DISPATCH_DETAIL_OWNER_NOT_EXISTS); + } + } + + @Override + public TaskDispatchDetailOwnerDO getTaskDispatchDetailOwner(Long id) { + return taskDispatchDetailOwnerMapper.selectById(id); + } + + @Override + public PageResult getTaskDispatchDetailOwnerPage(TaskDispatchDetailOwnerPageReqVO pageReqVO) { + return taskDispatchDetailOwnerMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskreport/TaskReportMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskreport/TaskReportMapper.xml index fe402ea..1021a99 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskreport/TaskReportMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/taskreport/TaskReportMapper.xml @@ -14,4 +14,10 @@ #{id} + + diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/taskdispatch/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/taskdispatch/index.ts index efda229..98db4b2 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/taskdispatch/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/taskdispatch/index.ts @@ -52,11 +52,16 @@ export const exportTaskDispatch = async (params) => { export const getTaskDispatchDetailListByDispatchId = async (dispatchId) => { return await request.get({ url: `/heli/task-dispatch/task-dispatch-detail/list-by-dispatch-id?dispatchId=` + dispatchId }) } +export const getTaskDispatchDetailListByDispatchIdNew = async (dispatchId, dispatchType) => { + return await request.get({ url: `/heli/task-dispatch/task-dispatch-detail/list-by-dispatch-id?dispatchId=` + dispatchId +'&dispatchType='+dispatchType}) +} // 删除派工单 export const deleteTaskDispatchDetail = async (id: number) => { return await request.delete({ url: `/heli/task-dispatch/task-dispatch-detail/delete?id=` + id }) } - +export const deleteTaskDispatchDetailNew = async (id: number,type :string) => { + return await request.delete({ url: `/heli/task-dispatch/task-dispatch-detail/delete?id=` + id+'&dispatchType='+type }) +} export async function operateTaskDispatch(data: TaskDispatchVO) { return await request.post({ url: `/heli/task-dispatch/operate`, data }) } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue index 297aee8..392d0e3 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detail.vue @@ -291,7 +291,7 @@ min="0" :precision="0" class="!w-240px" + --> @@ -307,12 +307,12 @@ v-for="dict in userInit" :key="dict.id" @@ -362,7 +362,7 @@ min="0" :precision="2" class="!w-240px" @@ -373,7 +373,7 @@ min="0" :precision="2" class="!w-240px" + :disabled="(detailDisabled || (row.beginProduce != 0 && row.procedureStatus != 0))" /> @@ -381,7 +381,7 @@ min="0" :precision="2" class="!w-240px" @@ -395,7 +395,7 @@ min="0" :precision="2" class="!w-240px"