From cf4edd92779933ec74924c5e920f41ae1cd35ea9 Mon Sep 17 00:00:00 2001 From: chenshuichuan <1154693969@qq.com> Date: Tue, 18 Jun 2024 22:01:44 +0800 Subject: [PATCH] fix feeding record --- .../FeedingRecordPlanController.java | 8 +- .../vo/FeedingRecordPlanRespVO.java | 19 +++- .../FeedingRecordController.java | 12 +- .../vo/FeedingRecordDetailRespVO.java | 60 ++++++++++ .../feedingrecord/vo/FeedingStatusEnum.java | 26 +++++ .../feedingrecord/vo/FeedingTypeEnum.java | 26 +++++ .../ItemRequisitionController.java | 3 +- .../vo/ItemRequisitionDetailRespVO.java | 4 + .../controller/admin/plan/PlanController.java | 1 - .../feedingplan/FeedingRecordPlanMapper.java | 18 ++- .../ItemRequisitionDetailMapper.java | 5 + .../ItemRequisitionMapper.java | 3 + .../module/mes/dal/mysql/plan/PlanMapper.java | 6 +- .../mes/dal/redis/no/MesNoRedisDAO.java | 4 + .../mes/service/bom/BomServiceImpl.java | 4 +- .../feedingplan/FeedingRecordPlanService.java | 5 +- .../FeedingRecordPlanServiceImpl.java | 67 +++++++++++- .../feedingrecord/FeedingRecordService.java | 13 +++ .../FeedingRecordServiceImpl.java | 103 ++++++++++++++++++ .../ItemRequisitionService.java | 4 +- .../ItemRequisitionServiceImpl.java | 29 ++++- .../module/mes/service/plan/PlanService.java | 2 + .../mes/service/plan/PlanServiceImpl.java | 7 +- .../FeedingRecordPlanServiceImplTest.java | 2 +- 24 files changed, 405 insertions(+), 26 deletions(-) create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingRecordDetailRespVO.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingStatusEnum.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingTypeEnum.java diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingplan/FeedingRecordPlanController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingplan/FeedingRecordPlanController.java index 57f169230f..a64bd48afa 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingplan/FeedingRecordPlanController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingplan/FeedingRecordPlanController.java @@ -75,8 +75,8 @@ public class FeedingRecordPlanController { @Operation(summary = "获得投料分配计划分页") @PreAuthorize("@ss.hasPermission('mes:feeding-record-plan:query')") public CommonResult> getFeedingRecordPlanPage(@Valid FeedingRecordPlanPageReqVO pageReqVO) { - PageResult pageResult = feedingRecordPlanService.getFeedingRecordPlanPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, FeedingRecordPlanRespVO.class)); + PageResult pageResult = feedingRecordPlanService.getFeedingRecordPlanPage(pageReqVO); + return success(pageResult); } @GetMapping("/export-excel") @@ -86,10 +86,10 @@ public class FeedingRecordPlanController { public void exportFeedingRecordPlanExcel(@Valid FeedingRecordPlanPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = feedingRecordPlanService.getFeedingRecordPlanPage(pageReqVO).getList(); + List list = feedingRecordPlanService.getFeedingRecordPlanPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "投料分配计划.xls", "数据", FeedingRecordPlanRespVO.class, - BeanUtils.toBean(list, FeedingRecordPlanRespVO.class)); + list); } } \ 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/feedingplan/vo/FeedingRecordPlanRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingplan/vo/FeedingRecordPlanRespVO.java index 5929400bb5..4403805a81 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingplan/vo/FeedingRecordPlanRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingplan/vo/FeedingRecordPlanRespVO.java @@ -19,32 +19,43 @@ public class FeedingRecordPlanRespVO { private Long id; @Schema(description = "记录id", example = "997") - @ExcelProperty("记录id") private Long recordId; + @Schema(description = "记录", example = "997") + @ExcelProperty("记录") + private String recordCode; @Schema(description = "记录明细id", example = "2395") @ExcelProperty("记录明细id") private Long recordDetailId; @Schema(description = "计划id", example = "17658") - @ExcelProperty("计划id") private Long planId; + @Schema(description = "计划", example = "17658") + @ExcelProperty("计划") + private String planCode; @Schema(description = "原料id", example = "19133") - @ExcelProperty("原料id") private Long itemId; + @Schema(description = "原料", example = "19133") + @ExcelProperty("原料") + private String itemName; @Schema(description = "重量") @ExcelProperty("重量") private BigDecimal weight; + @Schema(description = "单位id", example = "27598") + private Long unitId; @Schema(description = "单位", example = "27598") @ExcelProperty("单位") - private Long unitId; + private String unitName; @Schema(description = "记录人", example = "14853") @ExcelProperty("记录人") private Long userId; + @Schema(description = "记录人", example = "14853") + @ExcelProperty("记录人") + private String userName; @Schema(description = "投料时间") @ExcelProperty("投料时间") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/FeedingRecordController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/FeedingRecordController.java index 97d3a1124b..f5993ae19a 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/FeedingRecordController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/FeedingRecordController.java @@ -99,8 +99,16 @@ public class FeedingRecordController { @Operation(summary = "获得投料记录明细列表") @Parameter(name = "recordId", description = "记录id") @PreAuthorize("@ss.hasPermission('mes:feeding-record:query')") - public CommonResult> getFeedingRecordDetailListByRecordId(@RequestParam("recordId") Long recordId) { - return success(feedingRecordService.getFeedingRecordDetailListByRecordId(recordId)); + public CommonResult> getFeedingRecordDetailListByRecordId(@RequestParam("recordId") Long recordId) { + List< FeedingRecordDetailDO> detailDOList = feedingRecordService.getFeedingRecordDetailListByRecordId(recordId); + return success(feedingRecordService.buildVOList(detailDOList)); } + @PutMapping("/update-status") + @Operation(summary = "提交状态") + public CommonResult updateStatus(@RequestParam("id") Long id, + @RequestParam("status") String status) { + feedingRecordService.updateStatus(id, status); + 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/feedingrecord/vo/FeedingRecordDetailRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingRecordDetailRespVO.java new file mode 100644 index 0000000000..0b78c1868e --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingRecordDetailRespVO.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 投料记录明细 Response VO") +@Data +@ExcelIgnoreUnannotated +public class FeedingRecordDetailRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "2941") + @ExcelProperty("id") + private Long id; + + @Schema(description = "记录id", example = "5186") + @ExcelProperty("记录id") + private Long recordId; + @Schema(description = "记录", example = "997") + @ExcelProperty("记录") + private String recordCode; + + @Schema(description = "原料id", example = "19133") + private Long itemId; + @Schema(description = "原料", example = "19133") + @ExcelProperty("原料") + private String itemName; + + @Schema(description = "重量") + @ExcelProperty("重量") + private BigDecimal weight; + + @Schema(description = "单位", example = "8197") + @ExcelProperty("单位") + private Long unitId; + @Schema(description = "单位", example = "27598") + @ExcelProperty("单位") + private String unitName; + + @Schema(description = "记录人", example = "14853") + @ExcelProperty("记录人") + private Long userId; + @Schema(description = "记录人", example = "14853") + @ExcelProperty("记录人") + private String userName; + + @Schema(description = "投料时间") + @ExcelProperty("投料时间") + private LocalDateTime feedingTime; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ 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/feedingrecord/vo/FeedingStatusEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingStatusEnum.java new file mode 100644 index 0000000000..71473a8206 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingStatusEnum.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum FeedingStatusEnum { + + 作废("3"), + 提交("2"), + 草稿("1"); + + + private final String value; + + // 一个可选的方法,用于根据整数值获取对应的枚举实例 + public static FeedingStatusEnum fromValue(String value) { + for (FeedingStatusEnum status : FeedingStatusEnum.values()) { + if (status.getValue() .equals(value) ) { + return status; + } + } + throw new IllegalArgumentException("Unknown value: " + value); + } +} \ 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/feedingrecord/vo/FeedingTypeEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingTypeEnum.java new file mode 100644 index 0000000000..ffbbd5b81f --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/vo/FeedingTypeEnum.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum FeedingTypeEnum { + + 领料("org"), + 湿废品("wet"), + 干废品("dry"); + + + private final String value; + + // 一个可选的方法,用于根据整数值获取对应的枚举实例 + public static FeedingTypeEnum fromValue(String value) { + for (FeedingTypeEnum status : FeedingTypeEnum.values()) { + if (status.getValue() .equals(value)) { + return status; + } + } + throw new IllegalArgumentException("Unknown value: " + value); + } +} \ 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 bb787987f1..ddfa97f198 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 @@ -120,7 +120,8 @@ public class ItemRequisitionController { @PreAuthorize("@ss.hasPermission('mes:item-requisition:query')") public CommonResult> getItemRequisitionDetailListByItemRequisitionId(@RequestParam("itemRequisitionId") Long itemRequisitionId) { Listlist = itemRequisitionService.getItemRequisitionDetailListByItemRequisitionId(itemRequisitionId); - return success(itemRequisitionService.buildDetailVOList(list)); + ItemRequisitionDO requisitionDO = itemRequisitionService.getItemRequisition(itemRequisitionId); + return success(itemRequisitionService.buildDetailVOList(list, requisitionDO.getPlanId())); } } \ 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/ItemRequisitionDetailRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionDetailRespVO.java index a474680568..dfad17d380 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionDetailRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/itemrequisition/vo/ItemRequisitionDetailRespVO.java @@ -31,6 +31,10 @@ public class ItemRequisitionDetailRespVO { @Schema(description = "数量") @ExcelProperty("数量") private BigDecimal number; + + @Schema(description = "数量") + @ExcelProperty("投料完成数量") + private BigDecimal finishNumber; @Schema(description = "备注", example = "你说的对") @ExcelProperty("备注") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/PlanController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/PlanController.java index 74209e6e55..5328905684 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/PlanController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/PlanController.java @@ -115,7 +115,6 @@ public class PlanController { @Operation(summary = "计划派工") @PreAuthorize("@ss.hasPermission('mes:plan:update')") public CommonResult updatePlan(@Valid @RequestBody ItemRequisitionSaveReqVO saveReqVO) { - System.out.println(saveReqVO); PlanDO planDO = planMapper.selectById(saveReqVO.getPlanId()); List list = analysisService.getItemAnalysis(planDO); planService.arrangePlan(saveReqVO, planDO, list); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/feedingplan/FeedingRecordPlanMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/feedingplan/FeedingRecordPlanMapper.java index 94783c3e4c..b2e87cc8ce 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/feedingplan/FeedingRecordPlanMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/feedingplan/FeedingRecordPlanMapper.java @@ -1,11 +1,16 @@ package cn.iocoder.yudao.module.mes.dal.mysql.feedingplan; +import java.math.BigDecimal; import java.util.*; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; 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.erp.dal.dataobject.stock.ErpStockDO; import cn.iocoder.yudao.module.mes.dal.dataobject.feedingplan.FeedingRecordPlanDO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.mes.controller.admin.feedingplan.vo.*; @@ -30,5 +35,16 @@ public interface FeedingRecordPlanMapper extends BaseMapperX> result = selectMaps(new QueryWrapper() + .select("SUM(weight) AS sumCount") + .eq("item_id", itemId) + .eq("plan_id", planId)); + // 获得数量 + if (CollUtil.isEmpty(result)) { + return BigDecimal.ZERO; + } + return BigDecimal.valueOf(MapUtil.getDouble(result.get(0), "sumCount", 0D)); + } } \ 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/itemrequisition/ItemRequisitionDetailMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/itemrequisition/ItemRequisitionDetailMapper.java index 5fe87e65d7..d7692e60ba 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/itemrequisition/ItemRequisitionDetailMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/itemrequisition/ItemRequisitionDetailMapper.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; 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.itemrequisition.ItemRequisitionDO; import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -24,5 +25,9 @@ public interface ItemRequisitionDetailMapper extends BaseMapperX { default ItemRequisitionDO selectByNo(String no) { return selectOne(ItemRequisitionDO::getCode, no); } + default ItemRequisitionDO selectByPlanId(Long planId) { + return selectOne(ItemRequisitionDO::getPlanId, planId); + } } \ 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/plan/PlanMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/plan/PlanMapper.java index a052cba4ab..e88d14e69e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/plan/PlanMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/plan/PlanMapper.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.mes.dal.mysql.plan; -import java.math.BigDecimal; import java.util.*; import cn.hutool.core.collection.CollUtil; @@ -8,9 +7,7 @@ import cn.hutool.core.map.MapUtil; 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.erp.dal.dataobject.stock.ErpStockDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.*; @@ -71,4 +68,7 @@ public interface PlanMapper extends BaseMapperX { .orderByDesc("plan_end_time") .last("limit 1")); } + default List selectBy(List statusList) { + return selectList(PlanDO::getStatus, statusList); + } } \ 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/redis/no/MesNoRedisDAO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/redis/no/MesNoRedisDAO.java index 87a6b3fcac..0e3e7dd7d5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/redis/no/MesNoRedisDAO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/redis/no/MesNoRedisDAO.java @@ -42,6 +42,10 @@ public class MesNoRedisDAO { * 领料单 {@link cn.iocoder.yudao.module.mes.dal.dataobject.bom.BomDO} */ public static final String ITEM_REQUISITION_NO_PREFIX = "LL-"; + /** + * 投料记录单 + */ + public static final String FEEDING_RECORD_CODE_PREFIX = "TL-"; @Resource private StringRedisTemplate stringRedisTemplate; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/bom/BomServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/bom/BomServiceImpl.java index 28b78fd741..b3107e2dc5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/bom/BomServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/bom/BomServiceImpl.java @@ -54,6 +54,7 @@ public class BomServiceImpl implements BomService { @Override @Transactional(rollbackFor = Exception.class) public Long createBom(BomSaveReqVO createReqVO) { + if(createReqVO.getIsEnable()){ BomDO temp = bomMapper.selectByProductId(createReqVO.getProductId()); if(temp!=null){ @@ -62,7 +63,6 @@ public class BomServiceImpl implements BomService { } // 插入 BomDO bom = BeanUtils.toBean(createReqVO, BomDO.class); - bomMapper.insert(bom); if(StringUtils.isEmpty(bom.getCode())){ // 1.4 生成订单号,并校验唯一性 String no = noRedisDAO.generate2(MesNoRedisDAO.BOM_NO_PREFIX); @@ -71,6 +71,8 @@ public class BomServiceImpl implements BomService { } bom.setCode(no); } + bomMapper.insert(bom); + // 插入子表 createBomDetailList(bom.getId(), createReqVO.getBomDetails()); // 返回 diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanService.java index fa6d76a392..24bff1fc7c 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanService.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import javax.validation.Valid; +import java.math.BigDecimal; /** * 投料分配计划 Service 接口 @@ -50,6 +51,6 @@ public interface FeedingRecordPlanService { * @param pageReqVO 分页查询 * @return 投料分配计划分页 */ - PageResult getFeedingRecordPlanPage(FeedingRecordPlanPageReqVO pageReqVO); - + PageResult getFeedingRecordPlanPage(FeedingRecordPlanPageReqVO pageReqVO); + BigDecimal selectSumBy(Long planId, Long itemId); } \ 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/feedingplan/FeedingRecordPlanServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanServiceImpl.java index 856effec21..963c99e7bc 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanServiceImpl.java @@ -1,9 +1,25 @@ package cn.iocoder.yudao.module.mes.service.feedingplan; +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; +import cn.iocoder.yudao.module.erp.service.product.ErpProductService; +import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; +import cn.iocoder.yudao.module.mes.controller.admin.bom.vo.BomRespVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.bom.BomDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.feedingrecord.FeedingRecordDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; +import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO; +import cn.iocoder.yudao.module.mes.service.feedingrecord.FeedingRecordService; +import cn.iocoder.yudao.module.mes.service.plan.PlanService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import cn.iocoder.yudao.module.mes.controller.admin.feedingplan.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.feedingplan.FeedingRecordPlanDO; @@ -16,6 +32,7 @@ import cn.iocoder.yudao.module.mes.dal.mysql.feedingplan.FeedingRecordPlanMapper import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; /** @@ -29,6 +46,16 @@ public class FeedingRecordPlanServiceImpl implements FeedingRecordPlanService { @Resource private FeedingRecordPlanMapper feedingRecordPlanMapper; + @Resource + private ErpProductService productService; + @Resource + private ErpProductUnitService productUnitService; + @Resource + private AdminUserApi adminUserApi; + @Resource + private PlanService planService; + @Resource + private FeedingRecordService feedingRecordService; @Override public Long createFeedingRecordPlan(FeedingRecordPlanSaveReqVO createReqVO) { @@ -68,8 +95,44 @@ public class FeedingRecordPlanServiceImpl implements FeedingRecordPlanService { } @Override - public PageResult getFeedingRecordPlanPage(FeedingRecordPlanPageReqVO pageReqVO) { - return feedingRecordPlanMapper.selectPage(pageReqVO); + public PageResult getFeedingRecordPlanPage(FeedingRecordPlanPageReqVO pageReqVO) { + PageResult pageResult = feedingRecordPlanMapper.selectPage(pageReqVO); + return new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal()); } + private List buildVOList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + Map map = productService.getProductMap( + convertSet(list, FeedingRecordPlanDO::getItemId)); + Map unitMap = productUnitService.getProductUnitMap( + convertSet(list, FeedingRecordPlanDO::getUnitId)); + // 1.4 管理员信息 + Map userMap = adminUserApi.getUserMap( + convertSet(list, FeedingRecordPlanDO::getUserId)); + //投料单 + Map recordMap = feedingRecordService.getRecordMap( + convertSet(list, FeedingRecordPlanDO::getRecordId)); + //生产计划 + Map planMap = planService.getPlanMap( + convertSet(list, FeedingRecordPlanDO::getPlanId)); + + return BeanUtils.toBean(list, FeedingRecordPlanRespVO.class, item -> { + MapUtils.findAndThen(map, item.getItemId(), + product -> item.setItemName(product.getName())); + MapUtils.findAndThen(unitMap, item.getUnitId(), + unit -> item.setUnitName(unit.getName())); + MapUtils.findAndThen(userMap, item.getUserId(), + user -> item.setUnitName(user.getNickname())); + MapUtils.findAndThen(recordMap, item.getRecordId(), + record -> item.setRecordCode(record.getFeedingRecordCode())); + MapUtils.findAndThen(planMap, item.getPlanId(), + plan -> item.setPlanCode(plan.getCode())); + }); + } + @Override + public BigDecimal selectSumBy(Long planId, Long itemId){ + return feedingRecordPlanMapper.selectSumBy(planId,itemId); + } } \ 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/feedingrecord/FeedingRecordService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordService.java index 8b9cd9eb63..f853717ed6 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordService.java @@ -6,9 +6,13 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.feedingrecord.FeedingRecordDO; import cn.iocoder.yudao.module.mes.dal.dataobject.feedingrecord.FeedingRecordDetailDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; +import org.springframework.transaction.annotation.Transactional; import javax.validation.Valid; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; + /** * 投料记录 Service 接口 * @@ -63,5 +67,14 @@ public interface FeedingRecordService { * @return 投料记录明细列表 */ List getFeedingRecordDetailListByRecordId(Long recordId); + List buildVOList(List list); + List getFeedingRecordList(Collection ids); + default Map getRecordMap(Collection ids) { + if(ids.isEmpty())return new HashMap<>(); + return convertMap(getFeedingRecordList(ids), FeedingRecordDO::getId); + } + void updateStatus(Long id, String status); + //提交、反提交投料记录单 + } \ 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/feedingrecord/FeedingRecordServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordServiceImpl.java index ba9d52c5a0..9f0ac3e333 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordServiceImpl.java @@ -1,9 +1,29 @@ package cn.iocoder.yudao.module.mes.service.feedingrecord; +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; +import cn.iocoder.yudao.module.erp.service.product.ErpProductService; +import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; +import cn.iocoder.yudao.module.mes.controller.admin.feedingplan.vo.FeedingRecordPlanRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanStatusEnum; +import cn.iocoder.yudao.module.mes.controller.admin.stockworkshop.vo.StockWorkShopTypeEnum; +import cn.iocoder.yudao.module.mes.dal.dataobject.feedingplan.FeedingRecordPlanDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.stockworkshop.StockWorkshopDO; +import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO; +import cn.iocoder.yudao.module.mes.service.feedingplan.FeedingRecordPlanService; +import cn.iocoder.yudao.module.mes.service.plan.PlanService; +import cn.iocoder.yudao.module.mes.service.stockworkshop.StockWorkshopDetailService; +import cn.iocoder.yudao.module.mes.service.stockworkshop.StockWorkshopService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.feedingrecord.FeedingRecordDO; @@ -18,6 +38,7 @@ import cn.iocoder.yudao.module.mes.dal.mysql.feedingrecord.FeedingRecordDetailMa import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; /** @@ -33,12 +54,31 @@ public class FeedingRecordServiceImpl implements FeedingRecordService { private FeedingRecordMapper feedingRecordMapper; @Resource private FeedingRecordDetailMapper feedingRecordDetailMapper; + @Resource + private ErpProductService productService; + @Resource + private ErpProductUnitService productUnitService; + @Resource + private MesNoRedisDAO noRedisDAO; + @Resource + private AdminUserApi adminUserApi; + @Resource + private FeedingRecordPlanService recordPlanService; + @Resource + private StockWorkshopService workshopService; + @Resource + private StockWorkshopDetailService workshopDetailService; + @Resource + private PlanService planService; + @Override @Transactional(rollbackFor = Exception.class) public Long createFeedingRecord(FeedingRecordSaveReqVO createReqVO) { + createReqVO.setFeedingRecordCode(noRedisDAO.generate3(MesNoRedisDAO.FEEDING_RECORD_CODE_PREFIX)); // 插入 FeedingRecordDO feedingRecord = BeanUtils.toBean(createReqVO, FeedingRecordDO.class); + feedingRecord.setRecordStatus(FeedingStatusEnum.草稿.getValue()); feedingRecordMapper.insert(feedingRecord); // 插入子表 @@ -109,5 +149,68 @@ public class FeedingRecordServiceImpl implements FeedingRecordService { private void deleteFeedingRecordDetailByRecordId(Long recordId) { feedingRecordDetailMapper.deleteByRecordId(recordId); } + @Override + public List buildVOList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + Map map = productService.getProductMap( + convertSet(list, FeedingRecordDetailDO::getItemId)); + Map unitMap = productUnitService.getProductUnitMap( + convertSet(list, FeedingRecordDetailDO::getUnitId)); + // 1.4 管理员信息 + Map userMap = adminUserApi.getUserMap( + convertSet(list, FeedingRecordDetailDO::getUserId)); + + return BeanUtils.toBean(list, FeedingRecordDetailRespVO.class, item -> { + MapUtils.findAndThen(map, item.getItemId(), + product -> item.setItemName(product.getName())); + MapUtils.findAndThen(unitMap, item.getUnitId(), + unit -> item.setUnitName(unit.getName())); + MapUtils.findAndThen(userMap, item.getUserId(), + user -> item.setUnitName(user.getNickname())); + }); + } + @Override + public List getFeedingRecordList(Collection ids) { + return feedingRecordMapper.selectBatchIds(ids); + } + + /**提交,反提交投料记录 + * 按照投料明细扣减车间仓库存 + * //投料明细按照当前正在开工的计划需求比例进行分配,生成投料分配计划记录FeedingRecordPlanDO + * (投料明细按照当前正在开工的计划进行分配,如果计划都满足了,再按需求比例分配剩余投料) + * **/ + @Override + @Transactional(rollbackFor = Exception.class) + public void updateStatus(Long id, String status) { + FeedingRecordDO recordDO = feedingRecordMapper.selectById(id); + if(recordDO==null) throw exception(FEEDING_RECORD_NOT_EXISTS); + //后续步骤只处理领料投料的投料单,湿废品和干废品投料暂不处理 + if(!recordDO.getFeedingType().equals(FeedingTypeEnum.领料.getValue())) + return; + List detailDOList = getFeedingRecordDetailListByRecordId(id); + + List statusList = new ArrayList<>(); + statusList.add(PlanStatusEnum.开工.getValue()); + List planDOList = planService.getPlanByStatus(statusList); + + if(status.equals(FeedingStatusEnum.提交.getValue())) { + + for (FeedingRecordDetailDO recordDetailDO: detailDOList) { + StockWorkshopDO workshopDO = new StockWorkshopDO() + .setItemId(recordDetailDO.getItemId()) + .setCount(recordDetailDO.getWeight().multiply(BigDecimal.valueOf(-1))) + .setCategoryId(1L); + workshopService.updateStock(workshopDO, StockWorkShopTypeEnum.投料出库.getValue(), + recordDO.getId(), recordDO.getFeedingRecordCode()); + + + } + } + //todo 需要回退吗? + else if(status.equals(FeedingStatusEnum.草稿.getValue())) { + } + } } \ 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/itemrequisition/ItemRequisitionService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionService.java index e683cf948d..ce3b7698ac 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionService.java @@ -63,5 +63,7 @@ public interface ItemRequisitionService { * @return 领料明细列表 */ List getItemRequisitionDetailListByItemRequisitionId(Long itemRequisitionId); - List buildDetailVOList(List list); + List buildDetailVOList(List list, Long planId); + + ItemRequisitionDetailRespVO getItemRequisition(Long planId, Long itemId); } \ 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/itemrequisition/ItemRequisitionServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionServiceImpl.java index 47ceed3111..60c3271dc8 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.mes.service.itemrequisition; import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.exception.ErrorCode; import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; @@ -10,6 +11,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.bom.vo.BomDetailRespVO; import cn.iocoder.yudao.module.mes.dal.dataobject.bom.BomDetailDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO; +import cn.iocoder.yudao.module.mes.service.feedingplan.FeedingRecordPlanService; import cn.iocoder.yudao.module.mes.service.plan.PlanService; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -52,11 +54,16 @@ public class ItemRequisitionServiceImpl implements ItemRequisitionService { private ErpProductService productService; @Resource private ErpProductUnitService productUnitService; - + @Resource + private FeedingRecordPlanService recordPlanService; @Override @Transactional(rollbackFor = Exception.class) public Long createItemRequisition(ItemRequisitionSaveReqVO createReqVO) { + //查询是否已存在派工领料单 + ItemRequisitionDO itemRequisitionDO= itemRequisitionMapper.selectByPlanId(createReqVO.getPlanId()); + if(itemRequisitionDO!=null) + throw exception(new ErrorCode(500, "创建领料单失败,计划已存在领料单!")); // 插入 ItemRequisitionDO itemRequisition = BeanUtils.toBean(createReqVO, ItemRequisitionDO.class); if(StringUtils.isEmpty(itemRequisition.getCode())){ @@ -123,7 +130,7 @@ public class ItemRequisitionServiceImpl implements ItemRequisitionService { return itemRequisitionDetailMapper.selectListByItemRequisitionId(itemRequisitionId); } @Override - public List buildDetailVOList(List list) { + public List buildDetailVOList(List list, Long planId) { if (CollUtil.isEmpty(list)) { return Collections.emptyList(); } @@ -137,6 +144,7 @@ public class ItemRequisitionServiceImpl implements ItemRequisitionService { product -> item.setProductName(product.getName())); MapUtils.findAndThen(unitMap, item.getUnitId(), unit -> item.setUnitName(unit.getName())); + item.setFinishNumber(recordPlanService.selectSumBy(planId, item.getProductId())); }); } private void createItemRequisitionDetailList(Long itemRequisitionId, List list) { @@ -154,4 +162,21 @@ public class ItemRequisitionServiceImpl implements ItemRequisitionService { itemRequisitionDetailMapper.deleteByItemRequisitionId(itemRequisitionId); } + @Override + public ItemRequisitionDetailRespVO getItemRequisition(Long planId, Long itemId){ + ItemRequisitionDO itemRequisitionDO = itemRequisitionMapper.selectByPlanId(planId); + if(itemRequisitionDO != null){ + ItemRequisitionDetailDO detailDO = + itemRequisitionDetailMapper.selectBy(itemRequisitionDO.getId(), itemId); + + ItemRequisitionDetailRespVO respVO = new ItemRequisitionDetailRespVO() + .setItemRequisitionId(itemRequisitionDO.getId()) + .setUnitId(detailDO.getUnitId()) + .setNumber(detailDO.getNumber()) + .setProductId(detailDO.getProductId()); + respVO.setFinishNumber(recordPlanService.selectSumBy(planId, itemId)); + return respVO; + } + return null; + } } \ 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/plan/PlanService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanService.java index 227306eb5a..6d8abe30f0 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanService.java @@ -71,4 +71,6 @@ public interface PlanService { if(ids.isEmpty())return new HashMap<>(); return convertMap(getPlanList(ids), PlanDO::getId); } + + List getPlanByStatus(List statusList); } \ 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/plan/PlanServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java index 122a662b3b..3b28d4406f 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java @@ -58,7 +58,7 @@ public class PlanServiceImpl implements PlanService { } plan.setCode(no); } - + if(plan.getIsEnable() ==null)plan.setIsEnable(true); planMapper.insert(plan); // 返回 return plan.getId(); @@ -70,6 +70,7 @@ public class PlanServiceImpl implements PlanService { validatePlanExists(updateReqVO.getId()); // 更新 PlanDO updateObj = BeanUtils.toBean(updateReqVO, PlanDO.class); + if(updateObj.getIsEnable() ==null)updateObj.setIsEnable(true); planMapper.updateById(updateObj); } @@ -166,4 +167,8 @@ public class PlanServiceImpl implements PlanService { public List getPlanList(Collection ids) { return planMapper.selectBatchIds(ids); } + @Override + public List getPlanByStatus(List statusList){ + return planMapper.selectBy(statusList); + } } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/test/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanServiceImplTest.java b/yudao-module-mes/yudao-module-mes-biz/src/test/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanServiceImplTest.java index 6cb12d5f31..f31fe3ce2f 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/test/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanServiceImplTest.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/test/java/cn/iocoder/yudao/module/mes/service/feedingplan/FeedingRecordPlanServiceImplTest.java @@ -150,7 +150,7 @@ public class FeedingRecordPlanServiceImplTest extends BaseDbUnitTest { reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); // 调用 - PageResult pageResult = feedingRecordPlanService.getFeedingRecordPlanPage(reqVO); + PageResult pageResult = feedingRecordPlanService.getFeedingRecordPlanPage(reqVO); // 断言 assertEquals(1, pageResult.getTotal()); assertEquals(1, pageResult.getList().size());