From b91312975e7e25a19e6bd09fc78bb2b1144a29db Mon Sep 17 00:00:00 2001 From: kkk-ops <1050738955@qq.com> Date: Wed, 7 Jan 2026 19:33:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E5=B7=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/mes/enums/ErrorCodeConstants.java | 1 + .../BaogongRecordController.java | 119 ++++++++++++++++++ .../vo/BaogongRecordPageReqVO.java | 35 ++++++ .../baogongrecord/vo/BaogongRecordRespVO.java | 38 ++++++ .../vo/BaogongRecordSaveReqVO.java | 27 ++++ .../ItemRequisitionController.java | 18 +++ .../vo/ItemRequisitionPageReqVO.java | 6 + .../vo/ItemRequisitionRespVO.java | 5 + .../vo/ItemRequisitionSaveReqVO.java | 5 + .../baogongrecord/BaogongRecordDO.java | 44 +++++++ .../itemrequisition/ItemRequisitionDO.java | 6 +- .../baogongrecord/BaogongRecordMapper.java | 29 +++++ .../baogongrecord/BaogongRecordService.java | 55 ++++++++ .../BaogongRecordServiceImpl.java | 74 +++++++++++ .../baogongrecord/BaogongRecordMapper.xml | 12 ++ 15 files changed, 473 insertions(+), 1 deletion(-) create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/BaogongRecordController.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordPageReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordSaveReqVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/baogongrecord/BaogongRecordDO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/baogongrecord/BaogongRecordMapper.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordService.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordServiceImpl.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/baogongrecord/BaogongRecordMapper.xml diff --git a/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index d59101f8c2..15691b0292 100644 --- a/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -37,6 +37,7 @@ public interface ErrorCodeConstants { ErrorCode RECORD_PINJIAN_NOT_EXISTS = new ErrorCode(5_0069, "品检记录不存在"); ErrorCode PAIGONG_RECORD_NOT_EXISTS = new ErrorCode(5_0069, "派工记录不存在"); + ErrorCode BAOGONG_RECORD_NOT_EXISTS = new ErrorCode(5_0069, "报工不存在"); ErrorCode WORK_TEAM_NOT_EXISTS = new ErrorCode(5_007, "生产班组不存在"); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/BaogongRecordController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/BaogongRecordController.java new file mode 100644 index 0000000000..42c4785d43 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/BaogongRecordController.java @@ -0,0 +1,119 @@ +package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionRespVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +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 cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; + +import cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.baogongrecord.BaogongRecordDO; +import cn.iocoder.yudao.module.mes.service.baogongrecord.BaogongRecordService; + +@Tag(name = "管理后台 - 报工") +@RestController +@RequestMapping("/mes/baogong-record") +@Validated +public class BaogongRecordController { + + @Resource + private BaogongRecordService baogongRecordService; + + @Resource + private AdminUserApi adminUserApi; + + @PostMapping("/create") + @Operation(summary = "创建报工") + @PreAuthorize("@ss.hasPermission('mes:baogong-record:create')") + public CommonResult createBaogongRecord(@Valid @RequestBody BaogongRecordSaveReqVO createReqVO) { + return success(baogongRecordService.createBaogongRecord(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新报工") + @PreAuthorize("@ss.hasPermission('mes:baogong-record:update')") + public CommonResult updateBaogongRecord(@Valid @RequestBody BaogongRecordSaveReqVO updateReqVO) { + baogongRecordService.updateBaogongRecord(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除报工") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:baogong-record:delete')") + public CommonResult deleteBaogongRecord(@RequestParam("id") Long id) { + baogongRecordService.deleteBaogongRecord(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得报工") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:baogong-record:query')") + public CommonResult getBaogongRecord(@RequestParam("id") Long id) { + BaogongRecordDO baogongRecord = baogongRecordService.getBaogongRecord(id); + return success(BeanUtils.toBean(baogongRecord, BaogongRecordRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得报工分页") + @PreAuthorize("@ss.hasPermission('mes:baogong-record:query')") + public CommonResult> getBaogongRecordPage(@Valid BaogongRecordPageReqVO pageReqVO) { + PageResult pageResult = baogongRecordService.getBaogongRecordPage(pageReqVO); + return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal())); + } + + private List buildVOList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + Map userMap = adminUserApi.getUserMap( + convertSet(list, baogong -> Long.parseLong(baogong.getCreator()))); + + return BeanUtils.toBean(list, BaogongRecordRespVO.class, item -> { + MapUtils.findAndThen(userMap, Long.parseLong(item.getCreator()), user -> item.setCreator(user.getUsername())); + }); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出报工 Excel") + @PreAuthorize("@ss.hasPermission('mes:baogong-record:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportBaogongRecordExcel(@Valid BaogongRecordPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = baogongRecordService.getBaogongRecordPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "报工.xls", "数据", BaogongRecordRespVO.class, + BeanUtils.toBean(list, BaogongRecordRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordPageReqVO.java new file mode 100644 index 0000000000..c9b1a776d3 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordPageReqVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.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 BaogongRecordPageReqVO extends PageParam { + + @Schema(description = "关联计划id", example = "3326") + private Long planId; + + @Schema(description = "派工数量") + private Long num; + + @Schema(description = "派工时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] baogongTime; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "报工人", requiredMode = Schema.RequiredMode.REQUIRED) + private String creator; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordRespVO.java new file mode 100644 index 0000000000..696aed7068 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordRespVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 报工 Response VO") +@Data +@ExcelIgnoreUnannotated +public class BaogongRecordRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16213") + @ExcelProperty("id") + private Long id; + + @Schema(description = "关联计划id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3326") + @ExcelProperty("关联计划id") + private Long planId; + + @Schema(description = "派工数量") + @ExcelProperty("派工数量") + private Long num; + + @Schema(description = "派工时间") + @ExcelProperty("派工时间") + private LocalDateTime baogongTime; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "报工人", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("报工人") + private String creator; +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordSaveReqVO.java new file mode 100644 index 0000000000..1b2c6caffb --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/baogongrecord/vo/BaogongRecordSaveReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 报工新增/修改 Request VO") +@Data +public class BaogongRecordSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16213") + private Long id; + + @Schema(description = "关联计划id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3326") + @NotNull(message = "关联计划id不能为空") + private Long planId; + + @Schema(description = "派工数量") + private Long num; + + @Schema(description = "派工时间") + private LocalDateTime baogongTime; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/ItemRequisitionController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/ItemRequisitionController.java index b8fa59c4ca..b4f68ab173 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/ItemRequisitionController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/ItemRequisitionController.java @@ -14,11 +14,15 @@ import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequi import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionRespVO; import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanStatusUpdateVO; +import cn.iocoder.yudao.module.mes.controller.admin.task.vo.TaskStatusEnum; import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDO; import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO; import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; import cn.iocoder.yudao.module.mes.dal.dataobject.orgworker.OrgWorkerDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDO; +import cn.iocoder.yudao.module.mes.dal.mysql.itemrequisition.ItemRequisitionMapper; import cn.iocoder.yudao.module.mes.dal.mysql.orgworker.OrgWorkerMapper; import cn.iocoder.yudao.module.mes.service.itemrequisition.ItemRequisitionService; import cn.iocoder.yudao.module.mes.service.organization.OrganizationService; @@ -36,6 +40,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Collections; import java.util.List; import java.util.Map; @@ -62,6 +68,9 @@ public class ItemRequisitionController { @Resource private OrgWorkerMapper workerMapper; + @Resource + ItemRequisitionMapper itemRequisitionMapper; + @PostMapping("/create") @Operation(summary = "创建生产领料") @PreAuthorize("@ss.hasPermission('mes:item-requisition:create')") @@ -149,4 +158,13 @@ public class ItemRequisitionController { return success(itemRequisitionService.buildDetailVOList(list, requisitionDO.getPlanId())); } + @GetMapping("/changeStatus") + @Operation(summary = "更改领料单状态") + public CommonResult changeStatus(@RequestParam("id") Long id) { + ItemRequisitionDO itemRequisition = itemRequisitionMapper.selectById(id); + itemRequisition.setStatus(5); + itemRequisition.setRequisitionDate(LocalDate.now()); + int result = itemRequisitionMapper.updateById(itemRequisition); + return success(true); + } } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionPageReqVO.java index 579d4bda5b..f5c881f475 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionPageReqVO.java @@ -1,12 +1,14 @@ package cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo; import cn.iocoder.yudao.framework.common.pojo.PageParam; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDate; import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -52,4 +54,8 @@ public class ItemRequisitionPageReqVO extends PageParam { @Schema(description = "制浆线") private String feedingPipeline; + + @Schema(description = "领料时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate linliaoDate; } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionRespVO.java index d24c75ee4a..ff9cdba600 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionRespVO.java @@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.time.LocalDate; import java.time.LocalDateTime; @Schema(description = "管理后台 - 生产领料 Response VO") @@ -67,4 +68,8 @@ public class ItemRequisitionRespVO { @Schema(description = "制浆线名称") @ExcelProperty("制浆线") private String feedingPipelineName; + + @Schema(description = "领料时间") + @ExcelProperty("领料时间") + private LocalDate linliaoDate; } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionSaveReqVO.java index ffb43f4b39..edfe2f8336 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionSaveReqVO.java @@ -1,9 +1,11 @@ package cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo; import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @@ -55,4 +57,7 @@ public class ItemRequisitionSaveReqVO { @Schema(description = "派工数量", example = "15546") private Long paigongNum; + @Schema(description = "领料时间") + private LocalDate linliaoDate; + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/baogongrecord/BaogongRecordDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/baogongrecord/BaogongRecordDO.java new file mode 100644 index 0000000000..40e9b6cfdd --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/baogongrecord/BaogongRecordDO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.baogongrecord; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 报工 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_baogong_record") +@KeySequence("mes_baogong_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BaogongRecordDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 关联计划id + */ + private Long planId; + /** + * 派工数量 + */ + private Long num; + /** + * 派工时间 + */ + private LocalDateTime baogongTime; + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/itemrequisition/ItemRequisitionDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/itemrequisition/ItemRequisitionDO.java index 151ee41085..26ecacc001 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/itemrequisition/ItemRequisitionDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/itemrequisition/ItemRequisitionDO.java @@ -64,7 +64,11 @@ public class ItemRequisitionDO extends BaseDO { private Long workerId; // @Schema(description = "制浆线") -// @ExcelProperty("制浆线") + // @ExcelProperty("制浆线") private Long feedingPipeline; + /** + * 领料时间 + */ + private LocalDate linliaoDate; } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/baogongrecord/BaogongRecordMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/baogongrecord/BaogongRecordMapper.java new file mode 100644 index 0000000000..2ca75c6a54 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/baogongrecord/BaogongRecordMapper.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.baogongrecord; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.baogongrecord.BaogongRecordDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo.*; + +/** + * 报工 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface BaogongRecordMapper extends BaseMapperX { + + default PageResult selectPage(BaogongRecordPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BaogongRecordDO::getPlanId, reqVO.getPlanId()) + .eqIfPresent(BaogongRecordDO::getNum, reqVO.getNum()) + .betweenIfPresent(BaogongRecordDO::getBaogongTime, reqVO.getBaogongTime()) + .betweenIfPresent(BaogongRecordDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BaogongRecordDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordService.java new file mode 100644 index 0000000000..6ff51e2fb7 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.mes.service.baogongrecord; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.baogongrecord.BaogongRecordDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 报工 Service 接口 + * + * @author 内蒙必硕 + */ +public interface BaogongRecordService { + + /** + * 创建报工 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createBaogongRecord(@Valid BaogongRecordSaveReqVO createReqVO); + + /** + * 更新报工 + * + * @param updateReqVO 更新信息 + */ + void updateBaogongRecord(@Valid BaogongRecordSaveReqVO updateReqVO); + + /** + * 删除报工 + * + * @param id 编号 + */ + void deleteBaogongRecord(Long id); + + /** + * 获得报工 + * + * @param id 编号 + * @return 报工 + */ + BaogongRecordDO getBaogongRecord(Long id); + + /** + * 获得报工分页 + * + * @param pageReqVO 分页查询 + * @return 报工分页 + */ + PageResult getBaogongRecordPage(BaogongRecordPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordServiceImpl.java new file mode 100644 index 0000000000..6ffa88a0a8 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/baogongrecord/BaogongRecordServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.mes.service.baogongrecord; + +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 cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.baogongrecord.BaogongRecordDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.baogongrecord.BaogongRecordMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 报工 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class BaogongRecordServiceImpl implements BaogongRecordService { + + @Resource + private BaogongRecordMapper baogongRecordMapper; + + @Override + public Long createBaogongRecord(BaogongRecordSaveReqVO createReqVO) { + // 插入 + BaogongRecordDO baogongRecord = BeanUtils.toBean(createReqVO, BaogongRecordDO.class); + baogongRecordMapper.insert(baogongRecord); + // 返回 + return baogongRecord.getId(); + } + + @Override + public void updateBaogongRecord(BaogongRecordSaveReqVO updateReqVO) { + // 校验存在 + validateBaogongRecordExists(updateReqVO.getId()); + // 更新 + BaogongRecordDO updateObj = BeanUtils.toBean(updateReqVO, BaogongRecordDO.class); + baogongRecordMapper.updateById(updateObj); + } + + @Override + public void deleteBaogongRecord(Long id) { + // 校验存在 + validateBaogongRecordExists(id); + // 删除 + baogongRecordMapper.deleteById(id); + } + + private void validateBaogongRecordExists(Long id) { + if (baogongRecordMapper.selectById(id) == null) { + throw exception(BAOGONG_RECORD_NOT_EXISTS); + } + } + + @Override + public BaogongRecordDO getBaogongRecord(Long id) { + return baogongRecordMapper.selectById(id); + } + + @Override + public PageResult getBaogongRecordPage(BaogongRecordPageReqVO pageReqVO) { + return baogongRecordMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/baogongrecord/BaogongRecordMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/baogongrecord/BaogongRecordMapper.xml new file mode 100644 index 0000000000..46a6679341 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/baogongrecord/BaogongRecordMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file