From f9de5651a6c01f6425e982dfd033dec268639a4b Mon Sep 17 00:00:00 2001 From: kkk-ops <1050738955@qq.com> Date: Mon, 5 Jan 2026 18:56:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A1=E5=88=92=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/app/AppOrgWorkerController.java | 2 +- .../admin/app/service/AppServiceImpl.java | 2 +- .../FeedingRecordController.java | 2 +- .../controller/admin/plan/PlanController.java | 45 +++++++++++++++++-- .../admin/plan/vo/PlanPageReqVO.java | 7 ++- .../controller/admin/plan/vo/PlanRespVO.java | 13 ++++-- .../admin/plan/vo/PlanSaveReqVO.java | 7 ++- .../admin/plan/vo/PlanStatusEnum.java | 6 ++- .../admin/plan/vo/PlanStatusUpdateVO.java | 2 - .../admin/zjproduct/ZjProductController.java | 14 ++++++ .../mes/dal/dataobject/plan/PlanDO.java | 11 ++++- .../module/mes/dal/mysql/plan/PlanMapper.java | 2 +- .../dal/mysql/zjproduct/ZjProductMapper.java | 4 ++ .../mes/service/plan/PlanServiceImpl.java | 41 +++++++++-------- .../ProduceReportDetailServiceImpl.java | 4 +- .../StockInDetailServiceImpl.java | 2 +- .../stockworkshop/MesStockInServiceImpl.java | 4 +- .../service/zjproduct/ZjProductService.java | 9 +++- .../zjproduct/ZjProductServiceImpl.java | 6 +++ 19 files changed, 138 insertions(+), 45 deletions(-) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java index 12f0a5d9b4..5080609ba4 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java @@ -102,7 +102,7 @@ public class AppOrgWorkerController { @Operation(summary = "获得正在开工生产的产品") public CommonResult> getProductList() { List status = new ArrayList<>(); - status.add(PlanStatusEnum.开工.getValue()); + status.add(PlanStatusEnum.量产.getValue()); List proList = planService.getProductByPlanStatus(status); return success(appService.getProductList(proList)); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/service/AppServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/service/AppServiceImpl.java index b1bec3af2f..f5373ba590 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/service/AppServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/service/AppServiceImpl.java @@ -91,7 +91,7 @@ public class AppServiceImpl implements AppService { @Override public List getPlanProductList(String orgType){ List status = new ArrayList<>(); - status.add(PlanStatusEnum.开工.getValue()); + status.add(PlanStatusEnum.量产.getValue()); List planList = planService.getPlanByStatus(status); Map map = productService.getProductMap( convertSet(planList, PlanDO::getProductId)); 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 ee0e08ffb0..2f87fa1bd1 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 @@ -180,7 +180,7 @@ public class FeedingRecordController { //后续步骤只处理领料投料的投料单,湿废品和干废品投料暂不处理 //计划及计划物料需求 List statusList = new ArrayList<>(); - statusList.add(PlanStatusEnum.开工.getValue()); + statusList.add(PlanStatusEnum.量产.getValue()); //获取正在开工的计划,按照计划完工时间从小到大排序,优先分配给最近计划完工的计划。 List planDOList = planService.getPlanByStatusAndPipeline(statusList, String.valueOf(recordDO.getFeedingPipeline()));/** todo 这里改了 以前固定2 5立方制浆线*/ 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 1fa2f56087..7c7609abc7 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 @@ -1,19 +1,25 @@ package cn.iocoder.yudao.module.mes.controller.admin.plan; +import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; 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.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; import cn.iocoder.yudao.module.iot.framework.mqtt.utils.DateUtils; +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.*; +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.mes.dal.mysql.plan.PlanMapper; import cn.iocoder.yudao.module.mes.service.itemrequisition.ItemAnalysisService; import cn.iocoder.yudao.module.mes.service.itemrequisition.entity.ItemRequisitionAndStock; +import cn.iocoder.yudao.module.mes.service.organization.OrganizationService; import cn.iocoder.yudao.module.mes.service.plan.PlanService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -26,11 +32,14 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; 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.error; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; @Tag(name = "管理后台 - 生产计划") @RestController @@ -42,6 +51,8 @@ public class PlanController { private PlanService planService; @Resource private PlanMapper planMapper; + @Resource + private OrganizationService organizationService; @PostMapping("/create") @@ -82,7 +93,17 @@ public class PlanController { //@PreAuthorize("@ss.hasPermission('mes:plan:query')") public CommonResult> getPlanPage(@Valid PlanPageReqVO pageReqVO) { PageResult pageResult = planService.getPlanPage(pageReqVO); - return success(pageResult); + return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal())); + } + private List buildVOList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + Map organizationMap = organizationService.getOrganizationVOMap( + convertSet(list, PlanRespVO::getFeedingPipeline)); + return BeanUtils.toBean(list, PlanRespVO.class, item -> { + MapUtils.findAndThen(organizationMap, item.getFeedingPipeline(), organization -> item.setFeedingPipelineName(organization.getName())); + }); } @GetMapping("/export-excel") @@ -134,9 +155,13 @@ public class PlanController { //@PreAuthorize("@ss.hasPermission('mes:plan:update')") public CommonResult updatePlanStatus(@Valid @RequestBody PlanStatusUpdateVO statusUpdateVO) { PlanDO planDO = planMapper.selectById(statusUpdateVO.getId()); + // 试产 + if ("pre".equals(statusUpdateVO.getCode())) { + planDO.setStatus(PlanStatusEnum.试产.getValue()); + } //开工 if ("start".equals(statusUpdateVO.getCode())) { - planDO.setStatus(PlanStatusEnum.开工.getValue()); + planDO.setStatus(PlanStatusEnum.量产.getValue()); } //暂停 else if ("pause".equals(statusUpdateVO.getCode())) { @@ -146,6 +171,20 @@ public class PlanController { else if ("end".equals(statusUpdateVO.getCode())) { planDO.setStatus(PlanStatusEnum.完工.getValue()); } + // 入库 + else if ("store".equals(statusUpdateVO.getCode())) { + planDO.setStatus(PlanStatusEnum.已入库.getValue()); + } + planMapper.updateById(planDO); + return success(true); + } + + @PutMapping("/updatePlanZjStatus") + @Operation(summary = "更新生产计划质检状态") + //@PreAuthorize("@ss.hasPermission('mes:plan:update')") + public CommonResult updatePlanZjStatus(@Valid @RequestBody PlanStatusUpdateVO statusUpdateVO) { + PlanDO planDO = planMapper.selectById(statusUpdateVO.getId()); + planDO.setIsZj(true); planMapper.updateById(planDO); return success(true); } @@ -156,7 +195,7 @@ public class PlanController { //@PreAuthorize("@ss.hasPermission('mes:plan:query')") public CommonResult> getPlan() { List status = new ArrayList<>(); - status.add(PlanStatusEnum.开工.getValue()); + status.add(PlanStatusEnum.量产.getValue()); //status.add(PlanStatusEnum.完工.getValue()); List proList = planService.getProductByPlanStatus(status); return success(proList); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanPageReqVO.java index 814c532be2..830690c78d 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanPageReqVO.java @@ -70,8 +70,8 @@ public class PlanPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; - @Schema(description = "制浆线") - private String feedingPipeline; + @Schema(description = "生产线") + private Long feedingPipeline; @Schema(description = "组别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Integer groupType; @@ -80,4 +80,7 @@ public class PlanPageReqVO extends PageParam { @Schema(description = "领料人ID", example = "10640") private Long workerId; + + @Schema(description = "是否完成质检") + private BigDecimal isZj; } \ 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/plan/vo/PlanRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanRespVO.java index 584575d65e..1dab78af1e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanRespVO.java @@ -98,9 +98,12 @@ public class PlanRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; - @Schema(description = "制浆线") - @ExcelProperty("制浆线") - private String feedingPipeline; + @Schema(description = "生产线") + private Long feedingPipeline; + + @Schema(description = "生产线名称") + @ExcelProperty("生产线") + private String feedingPipelineName; /** * 对应的派工单ID @@ -122,4 +125,8 @@ public class PlanRespVO { @Schema(description = "是否试生产") @ExcelProperty("是否试生产") private BigDecimal isPreProduction; + + @Schema(description = "是否完成质检") + @ExcelProperty("是否完成质检") + private BigDecimal isZj; } \ 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/plan/vo/PlanSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanSaveReqVO.java index fddb5e80e5..ee7a0c28f9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanSaveReqVO.java @@ -63,8 +63,8 @@ public class PlanSaveReqVO { @Schema(description = "是否启用") private Boolean isEnable; - @Schema(description = "制浆线") - private String feedingPipeline; + @Schema(description = "生产线") + private Long feedingPipeline; /** * 优先级,同种产品的优先级,数字越大,排序越靠前,越早分配完成数量 @@ -80,4 +80,7 @@ public class PlanSaveReqVO { @Schema(description = "领料人ID", example = "10640") private Long workerId; + + @Schema(description = "是否完成质检") + private BigDecimal isZj; } \ 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/plan/vo/PlanStatusEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanStatusEnum.java index 06d35ba372..a2216c6508 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanStatusEnum.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanStatusEnum.java @@ -9,10 +9,12 @@ public enum PlanStatusEnum { 计划(0), 已排产(1), - 开工(2), + 量产(2), 暂停(3), 完工(4), - 入库(5); + 已入库(5), + 试产 (6), + 待入库(7); private final int value; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanStatusUpdateVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanStatusUpdateVO.java index 29937065eb..b2f9d6604d 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanStatusUpdateVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanStatusUpdateVO.java @@ -16,11 +16,9 @@ public class PlanStatusUpdateVO { private Long id; @Schema(description = "更新类型") - @NotNull(message = "更新类型") private String code; @Schema(description = "更新状态", example = "21176") - @NotNull(message = "更新状态") private int 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/controller/admin/zjproduct/ZjProductController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/ZjProductController.java index d1404611c5..54083b9cfa 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/ZjProductController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/zjproduct/ZjProductController.java @@ -1,5 +1,9 @@ package cn.iocoder.yudao.module.mes.controller.admin.zjproduct; +import cn.iocoder.yudao.framework.common.util.collection.MapUtils; +import cn.iocoder.yudao.module.mes.controller.admin.paigongrecord.vo.PaigongRecordRespVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -24,6 +28,7 @@ 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.zjproduct.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.zjproduct.ZjProductDO; @@ -91,4 +96,13 @@ public class ZjProductController { ExcelUtils.write(response, "质量管理-质检参数.xls", "数据", ZjProductRespVO.class, BeanUtils.toBean(list, ZjProductRespVO.class)); } + + @GetMapping("/list-by-item-product-id") + @Operation(summary = "获得产品质检明细列表") + @Parameter(name = "productId", description = "产品ID") + @PreAuthorize("@ss.hasPermission('erp:product:query')") + public CommonResult> getZjProductByPlanId(@RequestParam("productId") Long productId) { + List pageResult = zjProductService.getZjProductByPlanId(productId); + return success(BeanUtils.toBean(pageResult, ZjProductRespVO.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/dal/dataobject/plan/PlanDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/plan/PlanDO.java index 5f99638dd0..479de3cbe8 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/plan/PlanDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/plan/PlanDO.java @@ -96,8 +96,11 @@ public class PlanDO extends BaseDO { * 枚举 {@link TODO infra_boolean_string 对应的类} */ private Boolean isEnable; - //@Schema(description = "制浆线") - private String feedingPipeline; + + /** + * 关联生产线ID + */ + private Long feedingPipeline; /** * 对应的派工单ID */ @@ -114,4 +117,8 @@ public class PlanDO extends BaseDO { * 是否试生产 */ private Boolean isPreProduction; + /** + * 是否完成质检 + */ + private Boolean isZj; } \ 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 e0b0307ce7..99fa05505c 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 @@ -72,7 +72,7 @@ public interface PlanMapper extends BaseMapperX { List status = new ArrayList<>(); status.add(PlanStatusEnum.计划.getValue()); status.add(PlanStatusEnum.已排产.getValue()); - status.add(PlanStatusEnum.开工.getValue()); + status.add(PlanStatusEnum.量产.getValue()); return selectOne(new QueryWrapper() .eq("is_enable", true) .in("status", status) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/zjproduct/ZjProductMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/zjproduct/ZjProductMapper.java index 325c7626cb..2d17e87fe5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/zjproduct/ZjProductMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/zjproduct/ZjProductMapper.java @@ -5,6 +5,7 @@ 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.paigongrecord.PaigongRecordDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjproduct.ZjProductDO; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo.*; @@ -29,5 +30,8 @@ public interface ZjProductMapper extends BaseMapperX { .betweenIfPresent(ZjProductDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(ZjProductDO::getId)); } + default List selectListByProductId(Long productId) { + return selectList(ZjProductDO::getProductId, productId); + } } \ 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 2cb853bd21..e4081702a3 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 @@ -23,6 +23,7 @@ import cn.iocoder.yudao.module.mes.dal.mysql.paigongrecord.PaigongRecordMapper; import cn.iocoder.yudao.module.mes.dal.mysql.plan.PlanMapper; import cn.iocoder.yudao.module.mes.dal.mysql.stockindetail.StockInDetailMapper; import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO; +import cn.iocoder.yudao.module.mes.service.itemrequisition.ItemAnalysisService; import cn.iocoder.yudao.module.mes.service.itemrequisition.ItemRequisitionService; import cn.iocoder.yudao.module.mes.service.itemrequisition.entity.ItemRequisitionAndStock; import cn.iocoder.yudao.module.mes.service.paigongrecord.PaigongRecordService; @@ -62,6 +63,8 @@ public class PlanServiceImpl implements PlanService { private TaskService taskService; @Resource private PaigongRecordMapper paigongRecordMapper; + @Resource + private ItemAnalysisService analysisService; @Override @Transactional(rollbackFor = Exception.class) @@ -90,31 +93,31 @@ public class PlanServiceImpl implements PlanService { taskDO.setStatus(TaskStatusEnum.已排产.getValue()); taskService.updateTask(taskDO); } - -// List itemRequisitionDetails = new ArrayList<>(); -// for (ItemRequisitionAndStock item : list) { -// ItemRequisitionDetailDO detailDO = new ItemRequisitionDetailDO() -// .setProductId(item.getItemId()) -// .setUnitId(item.getUnitId()) -// .setNumber(item.getNumber()) -// .setIsEnable(true); -// itemRequisitionDetails.add(detailDO); -// } -// saveReqVO.setItemRequisitionDetails(itemRequisitionDetails); -// saveReqVO.setStatus(ItemRequisitionStatusEnum.下达.getValue()); -// if (saveReqVO.getRequisitionDate() == null) -// saveReqVO.setRequisitionDate(LocalDateTime.now()); + List list = analysisService.getItemAnalysis(plan); // 产品 num + List itemRequisitionDetails = new ArrayList<>(); + for (ItemRequisitionAndStock item : list) { + ItemRequisitionDetailDO detailDO = new ItemRequisitionDetailDO() + .setProductId(item.getItemId()) + .setUnitId(item.getUnitId()) + .setNumber(item.getNumber()) + .setIsEnable(true); + itemRequisitionDetails.add(detailDO); + } + ItemRequisitionSaveReqVO saveReqVO = new ItemRequisitionSaveReqVO(); + saveReqVO.setItemRequisitionDetails(itemRequisitionDetails); + saveReqVO.setStatus(ItemRequisitionStatusEnum.下达.getValue()); + if (saveReqVO.getRequisitionDate() == null) + saveReqVO.setRequisitionDate(LocalDateTime.now()); // // 创建领料单 -// Long id = itemRequisitionService.createItemRequisition(saveReqVO); + Long id = itemRequisitionService.createItemRequisition(saveReqVO); //更新计划状态 plan.setStatus(PlanStatusEnum.已排产.getValue()); plan.setIsEnable(true); plan.setProductionManagerId(createReqVO.getWorkerId()); plan.setFeedingPipeline(createReqVO.getFeedingPipeline()); plan.setStartTime(LocalDateTime.now()); - //plan.setRequisitionId(id); + plan.setRequisitionId(id); planMapper.insert(plan); - return plan.getId(); } @@ -245,7 +248,7 @@ public class PlanServiceImpl implements PlanService { planDO.setStatus(PlanStatusEnum.已排产.getValue()); planDO.setIsEnable(true); planDO.setProductionManagerId(saveReqVO.getWorkerId()); - planDO.setFeedingPipeline(saveReqVO.getFeedingPipeline()); + //planDO.setFeedingPipeline(saveReqVO.getFeedingPipeline()); planDO.setStartTime(LocalDateTime.now()); planDO.setRequisitionId(id); planMapper.updateById(planDO); @@ -289,7 +292,7 @@ public class PlanServiceImpl implements PlanService { } @Override public void updateStatus( Long id,Integer status){ - if(status.equals(PlanStatusEnum.开工.getValue())){ + if(status.equals(PlanStatusEnum.量产.getValue())){ PlanDO plan = planMapper.selectById(id); TaskDO taskDO = taskService.getTask(plan.getTaskId()); if( taskDO.getStatus().equals(TaskStatusEnum.已排产.getValue())) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java index 2cf991d736..f4762f22cf 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java @@ -175,7 +175,7 @@ public class ProduceReportDetailServiceImpl implements ProduceReportDetailServic , ChangeTypeEnum.审核.getValue()); //分配给开工中的计划 List statusList = new ArrayList<>(); - statusList.add(PlanStatusEnum.开工.getValue()); + statusList.add(PlanStatusEnum.量产.getValue()); List planList = planService.getPlanByStatusAndProduct(statusList,reportDetailDO.getProductId()); if(planList!=null && planList.size()>0){ //该种产品只有一个计划在开工 @@ -230,7 +230,7 @@ public class ProduceReportDetailServiceImpl implements ProduceReportDetailServic produceReportDetailMapper.updateById(reportDetailDO); //分配给开工中的计划 List statusList = new ArrayList<>(); - statusList.add(PlanStatusEnum.开工.getValue()); + statusList.add(PlanStatusEnum.量产.getValue()); List planList = planService.getPlanByStatusAndProduct(statusList,reportDetailDO.getProductId()); if(planList!=null && planList.size()>0){ //该种产品只有一个计划在开工 diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockindetail/StockInDetailServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockindetail/StockInDetailServiceImpl.java index e6dd5fedbb..3275173ea6 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockindetail/StockInDetailServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockindetail/StockInDetailServiceImpl.java @@ -141,7 +141,7 @@ public class StockInDetailServiceImpl implements StockInDetailService { bizType, stockInItem.getInId(), stockInItem.getId(), stockIn.getNo(),stockIn.getInTime())); }); List statusList = new ArrayList<>(); - statusList.add(PlanStatusEnum.开工.getValue()); + statusList.add(PlanStatusEnum.量产.getValue()); statusList.add(PlanStatusEnum.完工.getValue()); List resultList = new ArrayList<>(); //入库产品分配给计划 diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockworkshop/MesStockInServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockworkshop/MesStockInServiceImpl.java index 5de939e5ee..9a34690bd8 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockworkshop/MesStockInServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/stockworkshop/MesStockInServiceImpl.java @@ -81,7 +81,7 @@ public class MesStockInServiceImpl implements MesStockInService { //开工的计划列表 statusList = new ArrayList<>(); - statusList.add(PlanStatusEnum.开工.getValue()); + statusList.add(PlanStatusEnum.量产.getValue()); List startPlans = planService.getPlanByStatus(statusList); planService.buildProgress(startPlans); //合并同产品 @@ -128,7 +128,7 @@ public class MesStockInServiceImpl implements MesStockInService { //将完成数大于计划数的完工计划状态改为 入库状态 for (PlanDO plan : finishedPlans) { if(plan.getFinishNumber()>= plan.getPlanNumber()){ - planService.updateStatus(plan.getId(), PlanStatusEnum.入库.getValue()); + planService.updateStatus(plan.getId(), PlanStatusEnum.待入库.getValue()); } } } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductService.java index db853e85a0..5aef12b8c5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.mes.service.zjproduct; import java.util.*; import javax.validation.*; import cn.iocoder.yudao.module.mes.controller.admin.zjproduct.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO; import cn.iocoder.yudao.module.mes.dal.dataobject.zjproduct.ZjProductDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -51,5 +52,11 @@ public interface ZjProductService { * @return 质量管理-质检参数分页 */ PageResult getZjProductPage(ZjProductPageReqVO pageReqVO); - + /** + * 获得产品质检明细列表 + * + * @param productId 产品ID + * @return 产品质检明细列表 + */ + List getZjProductByPlanId(Long productId); } \ 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/zjproduct/ZjProductServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductServiceImpl.java index f8602184ea..d161cde4a9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/zjproduct/ZjProductServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.mes.service.zjproduct; +import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -71,4 +72,9 @@ public class ZjProductServiceImpl implements ZjProductService { return zjProductMapper.selectPage(pageReqVO); } + @Override + public List getZjProductByPlanId(Long productId) { + return zjProductMapper.selectListByProductId(productId); + } + } \ No newline at end of file