diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java new file mode 100644 index 0000000..4490a33 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java @@ -0,0 +1,124 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop.MesMdWorkshopPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop.MesMdWorkshopRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop.MesMdWorkshopSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkshopDO; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkshopService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; + +@Tag(name = "管理后台 - MES 车间") +@RestController +@RequestMapping("/mes/md-workshop") +@Validated +public class MesMdWorkshopController { + + @Resource + private MesMdWorkshopService workshopService; + + @Resource + private AdminUserApi adminUserApi; + + @PostMapping("/create") + @Operation(summary = "创建车间") + @PreAuthorize("@ss.hasPermission('mes:md-workshop:create')") + public CommonResult createWorkshop(@Valid @RequestBody MesMdWorkshopSaveReqVO createReqVO) { + return success(workshopService.createWorkshop(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新车间") + @PreAuthorize("@ss.hasPermission('mes:md-workshop:update')") + public CommonResult updateWorkshop(@Valid @RequestBody MesMdWorkshopSaveReqVO updateReqVO) { + workshopService.updateWorkshop(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除车间") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:md-workshop:delete')") + public CommonResult deleteWorkshop(@RequestParam("id") Long id) { + workshopService.deleteWorkshop(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得车间") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:md-workshop:query')") + public CommonResult getWorkshop(@RequestParam("id") Long id) { + MesMdWorkshopDO workshop = workshopService.getWorkshop(id); + MesMdWorkshopRespVO respVO = BeanUtils.toBean(workshop, MesMdWorkshopRespVO.class); + if (respVO != null && respVO.getChargeUserId() != null) { + AdminUserRespDTO user = adminUserApi.getUser(respVO.getChargeUserId()); + if (user != null) { + respVO.setChargeUserName(user.getNickname()); + } + } + return success(respVO); + } + + @GetMapping("/page") + @Operation(summary = "获得车间分页") + @PreAuthorize("@ss.hasPermission('mes:md-workshop:query')") + public CommonResult> getWorkshopPage(@Valid MesMdWorkshopPageReqVO pageReqVO) { + PageResult pageResult = workshopService.getWorkshopPage(pageReqVO); + PageResult voPageResult = BeanUtils.toBean(pageResult, MesMdWorkshopRespVO.class); + // 拼装负责人名称 + Map userMap = adminUserApi.getUserMap( + convertSet(voPageResult.getList(), MesMdWorkshopRespVO::getChargeUserId)); + voPageResult.getList().forEach(vo -> findAndThen(userMap, vo.getChargeUserId(), + user -> vo.setChargeUserName(user.getNickname()))); + return success(voPageResult); + } + + @GetMapping("/simple-list") + @Operation(summary = "获得车间精简列表", description = "只包含被开启的车间,主要用于前端的下拉选项") + public CommonResult> getWorkshopSimpleList() { + List list = workshopService.getWorkshopListByStatus(CommonStatusEnum.ENABLE.getStatus()); + return success(convertList(list, workshop -> new MesMdWorkshopRespVO() + .setId(workshop.getId()).setName(workshop.getName()).setCode(workshop.getCode()))); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出车间 Excel") + @PreAuthorize("@ss.hasPermission('mes:md-workshop:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportWorkshopExcel(@Valid MesMdWorkshopPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = workshopService.getWorkshopPage(pageReqVO).getList(); + // TODO @AI:导出是不是也要拼接关联字段? + ExcelUtils.write(response, "车间.xls", "数据", MesMdWorkshopRespVO.class, + BeanUtils.toBean(list, MesMdWorkshopRespVO.class)); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java new file mode 100644 index 0000000..fe9b03b --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java @@ -0,0 +1,125 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkshopDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkshopService; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen; + +@Tag(name = "管理后台 - MES 工位") +@RestController +@RequestMapping("/mes/md-workstation") +@Validated +public class MesMdWorkstationController { + + @Resource + private MesMdWorkstationService workstationService; + + @Resource + private MesMdWorkshopService workshopService; + + @PostMapping("/create") + @Operation(summary = "创建工位") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:create')") + public CommonResult createWorkstation(@Valid @RequestBody MesMdWorkstationSaveReqVO createReqVO) { + return success(workstationService.createWorkstation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工位") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult updateWorkstation(@Valid @RequestBody MesMdWorkstationSaveReqVO updateReqVO) { + workstationService.updateWorkstation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工位") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:md-workstation:delete')") + public CommonResult deleteWorkstation(@RequestParam("id") Long id) { + workstationService.deleteWorkstation(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得工位") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:query')") + public CommonResult getWorkstation(@RequestParam("id") Long id) { + MesMdWorkstationDO workstation = workstationService.getWorkstation(id); + MesMdWorkstationRespVO respVO = BeanUtils.toBean(workstation, MesMdWorkstationRespVO.class); + if (respVO != null && respVO.getWorkshopId() != null) { + MesMdWorkshopDO workshop = workshopService.getWorkshop(respVO.getWorkshopId()); + if (workshop != null) { + respVO.setWorkshopName(workshop.getName()); + } + } + return success(respVO); + } + + @GetMapping("/page") + @Operation(summary = "获得工位分页") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:query')") + public CommonResult> getWorkstationPage(@Valid MesMdWorkstationPageReqVO pageReqVO) { + PageResult pageResult = workstationService.getWorkstationPage(pageReqVO); + PageResult voPageResult = BeanUtils.toBean(pageResult, MesMdWorkstationRespVO.class); + // 拼装车间名称 + Map workshopMap = cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap( + workshopService.getWorkshopListByStatus(null), + MesMdWorkshopDO::getId); + voPageResult.getList().forEach(vo -> findAndThen(workshopMap, vo.getWorkshopId(), + workshop -> vo.setWorkshopName(workshop.getName()))); + return success(voPageResult); + } + + @GetMapping("/simple-list") + @Operation(summary = "获得工位精简列表", description = "只包含被开启的工位,主要用于前端的下拉选项") + public CommonResult> getWorkstationSimpleList() { + List list = workstationService.getWorkstationListByStatus(CommonStatusEnum.ENABLE.getStatus()); + return success(convertList(list, ws -> new MesMdWorkstationRespVO() + .setId(ws.getId()).setName(ws.getName()).setCode(ws.getCode()))); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出工位 Excel") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportWorkstationExcel(@Valid MesMdWorkstationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + // TODO @AI:导出是不是也要处理下关联字段?比如车间名称。 + List list = workstationService.getWorkstationPage(pageReqVO).getList(); + ExcelUtils.write(response, "工位.xls", "数据", MesMdWorkstationRespVO.class, + BeanUtils.toBean(list, MesMdWorkstationRespVO.class)); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationMachineController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationMachineController.java new file mode 100644 index 0000000..46a3eb5 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationMachineController.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationMachineRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationMachineSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationMachineDO; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationMachineService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - MES 工位设备") +@RestController +@RequestMapping("/mes/md-workstation-machine") +@Validated +public class MesMdWorkstationMachineController { + + @Resource + private MesMdWorkstationMachineService workstationMachineService; + + @PostMapping("/create") + @Operation(summary = "创建工位设备") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult createWorkstationMachine(@Valid @RequestBody MesMdWorkstationMachineSaveReqVO createReqVO) { + return success(workstationMachineService.createWorkstationMachine(createReqVO)); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工位设备") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult deleteWorkstationMachine(@RequestParam("id") Long id) { + workstationMachineService.deleteWorkstationMachine(id); + return success(true); + } + + @GetMapping("/list-by-workstation") + @Operation(summary = "获得工位设备列表") + @Parameter(name = "workstationId", description = "工位编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:md-workstation:query')") + public CommonResult> getWorkstationMachineList( + @RequestParam("workstationId") Long workstationId) { + List list = workstationMachineService.getWorkstationMachineListByWorkstationId(workstationId); + // TODO @芋艿:拼装设备编码/名称,等 DV 设备模块完成后对接 + return success(BeanUtils.toBean(list, MesMdWorkstationMachineRespVO.class)); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationToolController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationToolController.java new file mode 100644 index 0000000..6208c08 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationToolController.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationToolDO; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationToolService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - MES 工位工具") +@RestController +@RequestMapping("/mes/md-workstation-tool") +@Validated +public class MesMdWorkstationToolController { + + @Resource + private MesMdWorkstationToolService workstationToolService; + + @PostMapping("/create") + @Operation(summary = "创建工位工具") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult createWorkstationTool(@Valid @RequestBody MesMdWorkstationToolSaveReqVO createReqVO) { + return success(workstationToolService.createWorkstationTool(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工位工具") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult updateWorkstationTool(@Valid @RequestBody MesMdWorkstationToolSaveReqVO updateReqVO) { + workstationToolService.updateWorkstationTool(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工位工具") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult deleteWorkstationTool(@RequestParam("id") Long id) { + workstationToolService.deleteWorkstationTool(id); + return success(true); + } + + @GetMapping("/list-by-workstation") + @Operation(summary = "获得工位工具列表") + @Parameter(name = "workstationId", description = "工位编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:md-workstation:query')") + public CommonResult> getWorkstationToolList( + @RequestParam("workstationId") Long workstationId) { + List list = workstationToolService.getWorkstationToolListByWorkstationId(workstationId); + // TODO @芋艿:拼装工具类型名称,等 TM 工具模块完成后对接 + return success(BeanUtils.toBean(list, MesMdWorkstationToolRespVO.class)); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java new file mode 100644 index 0000000..cdad469 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.worker.MesMdWorkstationWorkerRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.worker.MesMdWorkstationWorkerSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationWorkerDO; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationWorkerService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - MES 工位人员") +@RestController +@RequestMapping("/mes/md-workstation-worker") +@Validated +public class MesMdWorkstationWorkerController { + + @Resource + private MesMdWorkstationWorkerService workstationWorkerService; + + @PostMapping("/create") + @Operation(summary = "创建工位人员") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult createWorkstationWorker(@Valid @RequestBody MesMdWorkstationWorkerSaveReqVO createReqVO) { + return success(workstationWorkerService.createWorkstationWorker(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新工位人员") + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult updateWorkstationWorker(@Valid @RequestBody MesMdWorkstationWorkerSaveReqVO updateReqVO) { + workstationWorkerService.updateWorkstationWorker(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除工位人员") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:md-workstation:update')") + public CommonResult deleteWorkstationWorker(@RequestParam("id") Long id) { + workstationWorkerService.deleteWorkstationWorker(id); + return success(true); + } + + @GetMapping("/list-by-workstation") + @Operation(summary = "获得工位人员列表") + @Parameter(name = "workstationId", description = "工位编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:md-workstation:query')") + public CommonResult> getWorkstationWorkerList( + @RequestParam("workstationId") Long workstationId) { + List list = workstationWorkerService.getWorkstationWorkerListByWorkstationId(workstationId); + // TODO @芋艿:拼装岗位名称,等前端从 system_post 获取岗位下拉列表 + // TODO @AI:拼接下! + return success(BeanUtils.toBean(list, MesMdWorkstationWorkerRespVO.class)); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationMachineRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationMachineRespVO.java new file mode 100644 index 0000000..91e5f88 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationMachineRespVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - MES 工位设备 Response VO") +@Data +public class MesMdWorkstationMachineRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "工位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long workstationId; + + @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long machineryId; + + @Schema(description = "设备编码", example = "M001") + private String machineryCode; + + @Schema(description = "设备名称", example = "CNC数控机床") + private String machineryName; + + @Schema(description = "数量", example = "1") + private Integer quantity; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationMachineSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationMachineSaveReqVO.java new file mode 100644 index 0000000..e458e7d --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationMachineSaveReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Schema(description = "管理后台 - MES 工位设备新增 Request VO") +@Data +public class MesMdWorkstationMachineSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "工位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "工位不能为空") + private Long workstationId; + + @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "设备不能为空") + private Long machineryId; + + @Schema(description = "数量", example = "1") + private Integer quantity; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationPageReqVO.java new file mode 100644 index 0000000..6f82988 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationPageReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - MES 工位分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MesMdWorkstationPageReqVO extends PageParam { + + @Schema(description = "工位编码", example = "WK001") + private String code; + + @Schema(description = "工位名称", example = "一号工位") + private String name; + + @Schema(description = "所在车间编号", example = "1") + private Long workshopId; + + @Schema(description = "状态", example = "0") + private Integer status; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationRespVO.java new file mode 100644 index 0000000..63b76ab --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationRespVO.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - MES 工位 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MesMdWorkstationRespVO { + + @Schema(description = "工位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("工位编号") + private Long id; + + @Schema(description = "工位编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "WK001") + @ExcelProperty("工位编码") + private String code; + + @Schema(description = "工位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "一号工位") + @ExcelProperty("工位名称") + private String name; + + @Schema(description = "工位地点", example = "A区1号线") + @ExcelProperty("工位地点") + private String address; + + @Schema(description = "所在车间编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long workshopId; + + @Schema(description = "车间名称", example = "一号车间") + @ExcelProperty("车间名称") + private String workshopName; + + @Schema(description = "工序编号", example = "1") + private Long processId; + + @Schema(description = "线边库编号", example = "1") + private Long warehouseId; + + @Schema(description = "库区编号", example = "1") + private Long locationId; + + @Schema(description = "库位编号", example = "1") + private Long areaId; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + @ExcelProperty("状态") + private Integer status; + + @Schema(description = "备注", example = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "预留字段1") + private String attribute1; + + @Schema(description = "预留字段2") + private String attribute2; + + @Schema(description = "预留字段3") + private Integer attribute3; + + @Schema(description = "预留字段4") + private Integer attribute4; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationSaveReqVO.java new file mode 100644 index 0000000..2ea6867 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationSaveReqVO.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Schema(description = "管理后台 - MES 工位新增/修改 Request VO") +@Data +public class MesMdWorkstationSaveReqVO { + + @Schema(description = "工位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "工位编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "WK001") + @NotEmpty(message = "工位编码不能为空") + private String code; + + @Schema(description = "工位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "一号工位") + @NotEmpty(message = "工位名称不能为空") + private String name; + + @Schema(description = "工位地点", example = "A区1号线") + private String address; + + @Schema(description = "所在车间编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "所在车间不能为空") + private Long workshopId; + + @Schema(description = "工序编号", example = "1") + private Long processId; + + @Schema(description = "线边库编号", example = "1") + private Long warehouseId; + + @Schema(description = "库区编号", example = "1") + private Long locationId; + + @Schema(description = "库位编号", example = "1") + private Long areaId; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "备注", example = "备注") + private String remark; + + @Schema(description = "预留字段1") + private String attribute1; + + @Schema(description = "预留字段2") + private String attribute2; + + @Schema(description = "预留字段3") + private Integer attribute3; + + @Schema(description = "预留字段4") + private Integer attribute4; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/tool/MesMdWorkstationToolRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/tool/MesMdWorkstationToolRespVO.java new file mode 100644 index 0000000..bee1f6a --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/tool/MesMdWorkstationToolRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - MES 工位工具 Response VO") +@Data +public class MesMdWorkstationToolRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "工位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long workstationId; + + @Schema(description = "工具类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long toolTypeId; + + @Schema(description = "工具类型名称", example = "钻头") + private String toolTypeName; + + @Schema(description = "数量", example = "1") + private Integer quantity; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/tool/MesMdWorkstationToolSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/tool/MesMdWorkstationToolSaveReqVO.java new file mode 100644 index 0000000..5e507c1 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/tool/MesMdWorkstationToolSaveReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Schema(description = "管理后台 - MES 工位工具新增/修改 Request VO") +@Data +public class MesMdWorkstationToolSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "工位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "工位不能为空") + private Long workstationId; + + @Schema(description = "工具类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "工具类型不能为空") + private Long toolTypeId; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "数量不能为空") + private Integer quantity; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/worker/MesMdWorkstationWorkerRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/worker/MesMdWorkstationWorkerRespVO.java new file mode 100644 index 0000000..bf6c7f4 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/worker/MesMdWorkstationWorkerRespVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.worker; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - MES 工位人员 Response VO") +@Data +public class MesMdWorkstationWorkerRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "工位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long workstationId; + + @Schema(description = "岗位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long postId; + + @Schema(description = "岗位名称", example = "操作员") + private String postName; + + @Schema(description = "数量", example = "1") + private Integer quantity; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/worker/MesMdWorkstationWorkerSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/worker/MesMdWorkstationWorkerSaveReqVO.java new file mode 100644 index 0000000..92fe47f --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/worker/MesMdWorkstationWorkerSaveReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.worker; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Schema(description = "管理后台 - MES 工位人员新增/修改 Request VO") +@Data +public class MesMdWorkstationWorkerSaveReqVO { + + @Schema(description = "编号", example = "1024") + private Long id; + + @Schema(description = "工位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "工位不能为空") + private Long workstationId; + + @Schema(description = "岗位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "岗位不能为空") + private Long postId; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "数量不能为空") + private Integer quantity; + + @Schema(description = "备注") + private String remark; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopPageReqVO.java new file mode 100644 index 0000000..cefa301 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopPageReqVO.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - MES 车间分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MesMdWorkshopPageReqVO extends PageParam { + + @Schema(description = "车间编码", example = "WS001") + private String code; + + @Schema(description = "车间名称", example = "一号车间") + private String name; + + @Schema(description = "状态", example = "0") + private Integer status; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopRespVO.java new file mode 100644 index 0000000..88aca93 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopRespVO.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - MES 车间 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MesMdWorkshopRespVO { + + @Schema(description = "车间编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("车间编号") + private Long id; + + @Schema(description = "车间编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "WS001") + @ExcelProperty("车间编码") + private String code; + + @Schema(description = "车间名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "一号车间") + @ExcelProperty("车间名称") + private String name; + + @Schema(description = "面积", example = "1000.00") + @ExcelProperty("面积") + private BigDecimal area; + + @Schema(description = "负责人用户编号", example = "1") + private Long chargeUserId; + + @Schema(description = "负责人名称", example = "张三") + @ExcelProperty("负责人") + private String chargeUserName; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + @ExcelProperty("状态") + private Integer status; + + @Schema(description = "备注", example = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "预留字段1") + private String attribute1; + + @Schema(description = "预留字段2") + private String attribute2; + + @Schema(description = "预留字段3") + private Integer attribute3; + + @Schema(description = "预留字段4") + private Integer attribute4; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopSaveReqVO.java new file mode 100644 index 0000000..e029661 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/workshop/MesMdWorkshopSaveReqVO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; + +@Schema(description = "管理后台 - MES 车间新增/修改 Request VO") +@Data +public class MesMdWorkshopSaveReqVO { + + @Schema(description = "车间编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "车间编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "WS001") + @NotEmpty(message = "车间编码不能为空") + private String code; + + @Schema(description = "车间名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "一号车间") + @NotEmpty(message = "车间名称不能为空") + private String name; + + @Schema(description = "面积", example = "1000.00") + private BigDecimal area; + + @Schema(description = "负责人用户编号", example = "1") + private Long chargeUserId; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") + @NotNull(message = "状态不能为空") + private Integer status; + + @Schema(description = "备注", example = "备注") + private String remark; + + @Schema(description = "预留字段1") + private String attribute1; + + @Schema(description = "预留字段2") + private String attribute2; + + @Schema(description = "预留字段3") + private Integer attribute3; + + @Schema(description = "预留字段4") + private Integer attribute4; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java new file mode 100644 index 0000000..792400b --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.math.BigDecimal; + +// TODO @AI:注释;以及关联; +@TableName("mes_md_workshop") +@KeySequence("mes_md_workshop_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MesMdWorkshopDO extends BaseDO { + + @TableId + private Long id; + private String code; + private String name; + private BigDecimal area; + private Long chargeUserId; + private Integer status; + private String remark; + private String attribute1; + private String attribute2; + private Integer attribute3; + private Integer attribute4; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationDO.java new file mode 100644 index 0000000..40b22b2 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationDO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +// TODO @AI:注释;以及关联; +@TableName("mes_md_workstation") +@KeySequence("mes_md_workstation_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MesMdWorkstationDO extends BaseDO { + + @TableId + private Long id; + private String code; + private String name; + private String address; + private Long workshopId; + private Long processId; + private Long warehouseId; + private Long locationId; + private Long areaId; + private Integer status; + private String remark; + private String attribute1; + private String attribute2; + private Integer attribute3; + private Integer attribute4; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationMachineDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationMachineDO.java new file mode 100644 index 0000000..2a70d37 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationMachineDO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +// TODO @AI:注释;以及关联; +@TableName("mes_md_workstation_machine") +@KeySequence("mes_md_workstation_machine_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MesMdWorkstationMachineDO extends BaseDO { + + @TableId + private Long id; + private Long workstationId; + private Long machineryId; + private Integer quantity; + private String remark; + private String attribute1; + private String attribute2; + private Integer attribute3; + private Integer attribute4; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationToolDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationToolDO.java new file mode 100644 index 0000000..ebd5c47 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationToolDO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +// TODO @AI:注释;以及关联; +@TableName("mes_md_workstation_tool") +@KeySequence("mes_md_workstation_tool_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MesMdWorkstationToolDO extends BaseDO { + + @TableId + private Long id; + private Long workstationId; + private Long toolTypeId; + private Integer quantity; + private String remark; + private String attribute1; + private String attribute2; + private Integer attribute3; + private Integer attribute4; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationWorkerDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationWorkerDO.java new file mode 100644 index 0000000..6d6ef17 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationWorkerDO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +// TODO @AI:注释;以及关联; +@TableName("mes_md_workstation_worker") +@KeySequence("mes_md_workstation_worker_seq") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MesMdWorkstationWorkerDO extends BaseDO { + + @TableId + private Long id; + private Long workstationId; + private Long postId; + private Integer quantity; + private String remark; + private String attribute1; + private String attribute2; + private Integer attribute3; + private Integer attribute4; + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkshopMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkshopMapper.java new file mode 100644 index 0000000..d51bcc2 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkshopMapper.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.md.workstation; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop.MesMdWorkshopPageReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkshopDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +// TODO @AI:注释; +@Mapper +public interface MesMdWorkshopMapper extends BaseMapperX { + + default PageResult selectPage(MesMdWorkshopPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MesMdWorkshopDO::getCode, reqVO.getCode()) + .likeIfPresent(MesMdWorkshopDO::getName, reqVO.getName()) + .eqIfPresent(MesMdWorkshopDO::getStatus, reqVO.getStatus()) + .orderByDesc(MesMdWorkshopDO::getId)); + } + + default MesMdWorkshopDO selectByCode(String code) { + return selectOne(MesMdWorkshopDO::getCode, code); + } + + default MesMdWorkshopDO selectByName(String name) { + return selectOne(MesMdWorkshopDO::getName, name); + } + + default List selectListByStatus(Integer status) { + return selectList(MesMdWorkshopDO::getStatus, status); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMachineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMachineMapper.java new file mode 100644 index 0000000..72f5ed3 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMachineMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.md.workstation; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationMachineDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +// TODO @AI:注释; +@Mapper +public interface MesMdWorkstationMachineMapper extends BaseMapperX { + + default List selectListByWorkstationId(Long workstationId) { + return selectList(MesMdWorkstationMachineDO::getWorkstationId, workstationId); + } + + default MesMdWorkstationMachineDO selectByMachineryId(Long machineryId) { + return selectOne(MesMdWorkstationMachineDO::getMachineryId, machineryId); + } + + default void deleteByWorkstationId(Long workstationId) { + delete(MesMdWorkstationMachineDO::getWorkstationId, workstationId); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMapper.java new file mode 100644 index 0000000..0e34296 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMapper.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.md.workstation; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationPageReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +// TODO @AI:注释; +@Mapper +public interface MesMdWorkstationMapper extends BaseMapperX { + + default PageResult selectPage(MesMdWorkstationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MesMdWorkstationDO::getCode, reqVO.getCode()) + .likeIfPresent(MesMdWorkstationDO::getName, reqVO.getName()) + .eqIfPresent(MesMdWorkstationDO::getWorkshopId, reqVO.getWorkshopId()) + .eqIfPresent(MesMdWorkstationDO::getStatus, reqVO.getStatus()) + .orderByDesc(MesMdWorkstationDO::getId)); + } + + default MesMdWorkstationDO selectByCode(String code) { + return selectOne(MesMdWorkstationDO::getCode, code); + } + + default MesMdWorkstationDO selectByName(String name) { + return selectOne(MesMdWorkstationDO::getName, name); + } + + default List selectListByStatus(Integer status) { + return selectList(MesMdWorkstationDO::getStatus, status); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationToolMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationToolMapper.java new file mode 100644 index 0000000..2e23a30 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationToolMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.md.workstation; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationToolDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +// TODO @AI:注释; +@Mapper +public interface MesMdWorkstationToolMapper extends BaseMapperX { + + default List selectListByWorkstationId(Long workstationId) { + return selectList(MesMdWorkstationToolDO::getWorkstationId, workstationId); + } + + default MesMdWorkstationToolDO selectByWorkstationIdAndToolTypeId(Long workstationId, Long toolTypeId) { + return selectOne(new LambdaQueryWrapper() + .eq(MesMdWorkstationToolDO::getWorkstationId, workstationId) + .eq(MesMdWorkstationToolDO::getToolTypeId, toolTypeId)); + } + + default void deleteByWorkstationId(Long workstationId) { + delete(MesMdWorkstationToolDO::getWorkstationId, workstationId); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationWorkerMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationWorkerMapper.java new file mode 100644 index 0000000..78db810 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationWorkerMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.md.workstation; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationWorkerDO; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +// TODO @AI:注释; +@Mapper +public interface MesMdWorkstationWorkerMapper extends BaseMapperX { + + default List selectListByWorkstationId(Long workstationId) { + return selectList(MesMdWorkstationWorkerDO::getWorkstationId, workstationId); + } + + default MesMdWorkstationWorkerDO selectByWorkstationIdAndPostId(Long workstationId, Long postId) { + return selectOne(new LambdaQueryWrapper() + .eq(MesMdWorkstationWorkerDO::getWorkstationId, workstationId) + .eq(MesMdWorkstationWorkerDO::getPostId, postId)); + } + + default void deleteByWorkstationId(Long workstationId) { + delete(MesMdWorkstationWorkerDO::getWorkstationId, workstationId); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java new file mode 100644 index 0000000..71b6ed6 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop.MesMdWorkshopPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop.MesMdWorkshopSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkshopDO; +import jakarta.validation.Valid; + +import java.util.List; + +// TODO @AI:注释; +public interface MesMdWorkshopService { + + Long createWorkshop(@Valid MesMdWorkshopSaveReqVO createReqVO); + + void updateWorkshop(@Valid MesMdWorkshopSaveReqVO updateReqVO); + + void deleteWorkshop(Long id); + + MesMdWorkshopDO getWorkshop(Long id); + + PageResult getWorkshopPage(MesMdWorkshopPageReqVO pageReqVO); + + List getWorkshopListByStatus(Integer status); + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java new file mode 100644 index 0000000..f03b25b --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java @@ -0,0 +1,106 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.hutool.core.util.ObjUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop.MesMdWorkshopPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.workshop.MesMdWorkshopSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkshopDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkshopMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper; +import jakarta.annotation.Resource; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +// TODO @AI:注释; +@Service +@Validated +public class MesMdWorkshopServiceImpl implements MesMdWorkshopService { + + @Resource + private MesMdWorkshopMapper workshopMapper; + + @Resource + @Lazy + private MesMdWorkstationMapper workstationMapper; + + @Override + public Long createWorkshop(MesMdWorkshopSaveReqVO createReqVO) { + validateWorkshopCodeUnique(null, createReqVO.getCode()); + validateWorkshopNameUnique(null, createReqVO.getName()); + + MesMdWorkshopDO workshop = BeanUtils.toBean(createReqVO, MesMdWorkshopDO.class); + workshopMapper.insert(workshop); + return workshop.getId(); + } + + @Override + public void updateWorkshop(MesMdWorkshopSaveReqVO updateReqVO) { + validateWorkshopExists(updateReqVO.getId()); + validateWorkshopCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); + validateWorkshopNameUnique(updateReqVO.getId(), updateReqVO.getName()); + + MesMdWorkshopDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkshopDO.class); + workshopMapper.updateById(updateObj); + } + + @Override + public void deleteWorkshop(Long id) { + validateWorkshopExists(id); + // 校验车间下是否存在工位 + Long count = workstationMapper.selectCount(MesMdWorkstationDO::getWorkshopId, id); + if (count > 0) { + throw exception(MD_WORKSHOP_HAS_WORKSTATION); + } + workshopMapper.deleteById(id); + } + + private void validateWorkshopExists(Long id) { + if (workshopMapper.selectById(id) == null) { + throw exception(MD_WORKSHOP_NOT_EXISTS); + } + } + + private void validateWorkshopCodeUnique(Long id, String code) { + MesMdWorkshopDO workshop = workshopMapper.selectByCode(code); + if (workshop == null) { + return; + } + if (ObjUtil.notEqual(workshop.getId(), id)) { + throw exception(MD_WORKSHOP_CODE_DUPLICATE); + } + } + + private void validateWorkshopNameUnique(Long id, String name) { + MesMdWorkshopDO workshop = workshopMapper.selectByName(name); + if (workshop == null) { + return; + } + if (ObjUtil.notEqual(workshop.getId(), id)) { + throw exception(MD_WORKSHOP_NAME_DUPLICATE); + } + } + + @Override + public MesMdWorkshopDO getWorkshop(Long id) { + return workshopMapper.selectById(id); + } + + @Override + public PageResult getWorkshopPage(MesMdWorkshopPageReqVO pageReqVO) { + return workshopMapper.selectPage(pageReqVO); + } + + @Override + public List getWorkshopListByStatus(Integer status) { + return workshopMapper.selectListByStatus(status); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java new file mode 100644 index 0000000..c6c3f7d --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationMachineSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationMachineDO; +import jakarta.validation.Valid; + +import java.util.List; + +// TODO @AI:注释; +public interface MesMdWorkstationMachineService { + + Long createWorkstationMachine(@Valid MesMdWorkstationMachineSaveReqVO createReqVO); + + void deleteWorkstationMachine(Long id); + + List getWorkstationMachineListByWorkstationId(Long workstationId); + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java new file mode 100644 index 0000000..5388a4a --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationMachineSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationMachineDO; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMachineMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +// TODO @AI:注释; +@Service +@Validated +public class MesMdWorkstationMachineServiceImpl implements MesMdWorkstationMachineService { + + @Resource + private MesMdWorkstationMachineMapper workstationMachineMapper; + + @Override + public Long createWorkstationMachine(MesMdWorkstationMachineSaveReqVO createReqVO) { + // 校验该设备是否已分配到其他工位 + MesMdWorkstationMachineDO existing = workstationMachineMapper.selectByMachineryId(createReqVO.getMachineryId()); + if (existing != null) { + throw exception(MD_WORKSTATION_MACHINE_EXISTS); + } + + MesMdWorkstationMachineDO machine = BeanUtils.toBean(createReqVO, MesMdWorkstationMachineDO.class); + workstationMachineMapper.insert(machine); + return machine.getId(); + } + + @Override + public void deleteWorkstationMachine(Long id) { + if (workstationMachineMapper.selectById(id) == null) { + throw exception(MD_WORKSTATION_MACHINE_NOT_EXISTS); + } + workstationMachineMapper.deleteById(id); + } + + @Override + public List getWorkstationMachineListByWorkstationId(Long workstationId) { + return workstationMachineMapper.selectListByWorkstationId(workstationId); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java new file mode 100644 index 0000000..95867a9 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; +import jakarta.validation.Valid; + +import java.util.List; + +// TODO @AI:注释; +public interface MesMdWorkstationService { + + Long createWorkstation(@Valid MesMdWorkstationSaveReqVO createReqVO); + + void updateWorkstation(@Valid MesMdWorkstationSaveReqVO updateReqVO); + + void deleteWorkstation(Long id); + + MesMdWorkstationDO getWorkstation(Long id); + + PageResult getWorkstationPage(MesMdWorkstationPageReqVO pageReqVO); + + List getWorkstationListByStatus(Integer status); + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java new file mode 100644 index 0000000..2b16a6a --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java @@ -0,0 +1,120 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.hutool.core.util.ObjUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMachineMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationToolMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationWorkerMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +// TODO @AI:注释; +@Service +@Validated +public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { + + @Resource + private MesMdWorkstationMapper workstationMapper; + + @Resource + private MesMdWorkstationMachineMapper workstationMachineMapper; + + @Resource + private MesMdWorkstationToolMapper workstationToolMapper; + + @Resource + private MesMdWorkstationWorkerMapper workstationWorkerMapper; + + @Resource + private MesMdWorkshopService workshopService; + + @Override + public Long createWorkstation(MesMdWorkstationSaveReqVO createReqVO) { + validateWorkstationCodeUnique(null, createReqVO.getCode()); + validateWorkstationNameUnique(null, createReqVO.getName()); + // 校验车间存在 + workshopService.getWorkshop(createReqVO.getWorkshopId()); // validateWorkshopExists via getWorkshop + + MesMdWorkstationDO workstation = BeanUtils.toBean(createReqVO, MesMdWorkstationDO.class); + workstationMapper.insert(workstation); + return workstation.getId(); + } + + @Override + public void updateWorkstation(MesMdWorkstationSaveReqVO updateReqVO) { + validateWorkstationExists(updateReqVO.getId()); + validateWorkstationCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); + validateWorkstationNameUnique(updateReqVO.getId(), updateReqVO.getName()); + // 校验车间存在 + workshopService.getWorkshop(updateReqVO.getWorkshopId()); + + MesMdWorkstationDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationDO.class); + workstationMapper.updateById(updateObj); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteWorkstation(Long id) { + validateWorkstationExists(id); + // 级联删除子资源 + workstationMachineMapper.deleteByWorkstationId(id); + workstationToolMapper.deleteByWorkstationId(id); + workstationWorkerMapper.deleteByWorkstationId(id); + // 删除工位 + workstationMapper.deleteById(id); + } + + private void validateWorkstationExists(Long id) { + if (workstationMapper.selectById(id) == null) { + throw exception(MD_WORKSTATION_NOT_EXISTS); + } + } + + private void validateWorkstationCodeUnique(Long id, String code) { + MesMdWorkstationDO workstation = workstationMapper.selectByCode(code); + if (workstation == null) { + return; + } + if (ObjUtil.notEqual(workstation.getId(), id)) { + throw exception(MD_WORKSTATION_CODE_DUPLICATE); + } + } + + private void validateWorkstationNameUnique(Long id, String name) { + MesMdWorkstationDO workstation = workstationMapper.selectByName(name); + if (workstation == null) { + return; + } + if (ObjUtil.notEqual(workstation.getId(), id)) { + throw exception(MD_WORKSTATION_NAME_DUPLICATE); + } + } + + @Override + public MesMdWorkstationDO getWorkstation(Long id) { + return workstationMapper.selectById(id); + } + + @Override + public PageResult getWorkstationPage(MesMdWorkstationPageReqVO pageReqVO) { + return workstationMapper.selectPage(pageReqVO); + } + + @Override + public List getWorkstationListByStatus(Integer status) { + return workstationMapper.selectListByStatus(status); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java new file mode 100644 index 0000000..38aa277 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationToolDO; +import jakarta.validation.Valid; + +import java.util.List; + +// TODO @AI:注释; +public interface MesMdWorkstationToolService { + + Long createWorkstationTool(@Valid MesMdWorkstationToolSaveReqVO createReqVO); + + void updateWorkstationTool(@Valid MesMdWorkstationToolSaveReqVO updateReqVO); + + void deleteWorkstationTool(Long id); + + List getWorkstationToolListByWorkstationId(Long workstationId); + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java new file mode 100644 index 0000000..c9d205f --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.tool.MesMdWorkstationToolSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationToolDO; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationToolMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +// TODO @AI:注释; +@Service +@Validated +public class MesMdWorkstationToolServiceImpl implements MesMdWorkstationToolService { + + @Resource + private MesMdWorkstationToolMapper workstationToolMapper; + + @Override + public Long createWorkstationTool(MesMdWorkstationToolSaveReqVO createReqVO) { + // 校验同一工位下工具类型不重复 + MesMdWorkstationToolDO existing = workstationToolMapper.selectByWorkstationIdAndToolTypeId( + createReqVO.getWorkstationId(), createReqVO.getToolTypeId()); + if (existing != null) { + throw exception(MD_WORKSTATION_TOOL_TYPE_EXISTS); + } + + MesMdWorkstationToolDO tool = BeanUtils.toBean(createReqVO, MesMdWorkstationToolDO.class); + workstationToolMapper.insert(tool); + return tool.getId(); + } + + @Override + public void updateWorkstationTool(MesMdWorkstationToolSaveReqVO updateReqVO) { + if (workstationToolMapper.selectById(updateReqVO.getId()) == null) { + throw exception(MD_WORKSTATION_TOOL_NOT_EXISTS); + } + MesMdWorkstationToolDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationToolDO.class); + workstationToolMapper.updateById(updateObj); + } + + @Override + public void deleteWorkstationTool(Long id) { + if (workstationToolMapper.selectById(id) == null) { + throw exception(MD_WORKSTATION_TOOL_NOT_EXISTS); + } + workstationToolMapper.deleteById(id); + } + + @Override + public List getWorkstationToolListByWorkstationId(Long workstationId) { + return workstationToolMapper.selectListByWorkstationId(workstationId); + } + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java new file mode 100644 index 0000000..1cd8d53 --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.worker.MesMdWorkstationWorkerSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationWorkerDO; +import jakarta.validation.Valid; + +import java.util.List; + +// TODO @AI:注释; +public interface MesMdWorkstationWorkerService { + + Long createWorkstationWorker(@Valid MesMdWorkstationWorkerSaveReqVO createReqVO); + + void updateWorkstationWorker(@Valid MesMdWorkstationWorkerSaveReqVO updateReqVO); + + void deleteWorkstationWorker(Long id); + + List getWorkstationWorkerListByWorkstationId(Long workstationId); + +} diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java new file mode 100644 index 0000000..491a35f --- /dev/null +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.mes.service.md.workstation; + +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.worker.MesMdWorkstationWorkerSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationWorkerDO; +import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationWorkerMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +// TODO @AI:注释; +@Service +@Validated +public class MesMdWorkstationWorkerServiceImpl implements MesMdWorkstationWorkerService { + + @Resource + private MesMdWorkstationWorkerMapper workstationWorkerMapper; + + @Override + public Long createWorkstationWorker(MesMdWorkstationWorkerSaveReqVO createReqVO) { + // 校验同一工位下岗位不重复 + MesMdWorkstationWorkerDO existing = workstationWorkerMapper.selectByWorkstationIdAndPostId( + createReqVO.getWorkstationId(), createReqVO.getPostId()); + if (existing != null) { + throw exception(MD_WORKSTATION_WORKER_POST_EXISTS); + } + + MesMdWorkstationWorkerDO worker = BeanUtils.toBean(createReqVO, MesMdWorkstationWorkerDO.class); + workstationWorkerMapper.insert(worker); + return worker.getId(); + } + + @Override + public void updateWorkstationWorker(MesMdWorkstationWorkerSaveReqVO updateReqVO) { + if (workstationWorkerMapper.selectById(updateReqVO.getId()) == null) { + throw exception(MD_WORKSTATION_WORKER_NOT_EXISTS); + } + MesMdWorkstationWorkerDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationWorkerDO.class); + workstationWorkerMapper.updateById(updateObj); + } + + @Override + public void deleteWorkstationWorker(Long id) { + if (workstationWorkerMapper.selectById(id) == null) { + throw exception(MD_WORKSTATION_WORKER_NOT_EXISTS); + } + workstationWorkerMapper.deleteById(id); + } + + @Override + public List getWorkstationWorkerListByWorkstationId(Long workstationId) { + return workstationWorkerMapper.selectListByWorkstationId(workstationId); + } + +}