From cb48e3d9945bd547d1e3cd57cefd027fcac62fb6 Mon Sep 17 00:00:00 2001 From: z Date: Thu, 3 Jul 2025 18:39:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../materialplan/vo/MaterialPlanRespVO.java | 5 + .../processdesign/vo/ProcessDesignRespVO.java | 6 +- .../vo/TaskDispatchDetailTotalVO.java | 2 + .../vo/TaskDispatchSaveReqVO.java | 2 + .../materialplan/MaterialPlanDO.java | 4 + .../processdesign/ProcessDesignDO.java | 7 +- .../taskdispatch/TaskDispatchDetailDO.java | 1 + .../processdesign/ProcessDesignMapper.java | 2 +- .../bgmasterline/BgMasterLineServiceImpl.java | 14 ++ .../materialplan/MaterialPlanServiceImpl.java | 13 +- .../service/pgmaster/PgMasterServiceImpl.java | 17 ++ .../ProcessDesignServiceImpl.java | 46 ++++- .../taskdispatch/TaskDispatchServiceImpl.java | 17 ++ .../src/views/heli/matreq/standardParts.vue | 6 +- .../src/views/heli/processdesign/overview.vue | 30 +-- .../src/views/heli/purchaseorder/index.vue | 2 +- .../heli/purchaseorder/materialPlanDialog.vue | 172 +++++++++++++++++- mes-ui/mini-app/src/pages/index/index.vue | 16 +- .../productionReport/components/dataItem.vue | 18 +- mes-ui/mini-app/src/services/home.ts | 11 +- 20 files changed, 345 insertions(+), 46 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanRespVO.java index 52f1d42..c275f65 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/materialplan/vo/MaterialPlanRespVO.java @@ -1,5 +1,8 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo; +import com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail.vo.MaterialPlanDetailRespVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -84,5 +87,7 @@ public class MaterialPlanRespVO { @Schema(description = "制单日期", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("制单日期") private LocalDateTime matPlanDate; + @Schema(description = "需求计划明细") + private List detailList; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignRespVO.java index 6cfe0a5..2e265b7 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/processdesign/vo/ProcessDesignRespVO.java @@ -102,7 +102,7 @@ public class ProcessDesignRespVO { @Schema(description = "延期原因", example = "28809") private String delayReason; @Schema(description = "毛坯最新进度") - private BigDecimal progressBlank; + private String progressBlank; @Schema(description = "2D结束日期") private LocalDateTime twoDimDate; @@ -112,7 +112,7 @@ public class ProcessDesignRespVO { private String twoDimOwnerName; @Schema(description = "2D最新进度") - private BigDecimal progress2d; + private String progress2d; @Schema(description = "3D结束日期") private LocalDateTime threeDimDate; @@ -122,7 +122,7 @@ public class ProcessDesignRespVO { private String threeDimOwnerName; @Schema(description = "3D最新进度") - private BigDecimal progress3d; + private String progress3d; @Schema(description = "子项目名称") private String projectSubName; diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchDetailTotalVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchDetailTotalVO.java index d07ea37..51dd93e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchDetailTotalVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchDetailTotalVO.java @@ -109,5 +109,7 @@ public class TaskDispatchDetailTotalVO { @Schema(description = "派工类型 生产任务|装配任务 PRODUCTION|ASSEMBLE") private String dispatchTypes; + @Schema(description = "报工状态") + private Integer reportStatus; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java index f9aebc8..cf4fedc 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/taskdispatch/vo/TaskDispatchSaveReqVO.java @@ -62,5 +62,7 @@ public class TaskDispatchSaveReqVO { @Schema(description = "操作意见") private String activeOpinion; + @Schema(description = "报工状态") + private Integer reportStatus; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplan/MaterialPlanDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplan/MaterialPlanDO.java index c547348..6950bbc 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplan/MaterialPlanDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/materialplan/MaterialPlanDO.java @@ -1,5 +1,7 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -111,4 +113,6 @@ public class MaterialPlanDO extends BaseDO { * 制单日期 */ private Date matPlanDate; + @TableField(exist = false) + private List detailList; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java index 3a171bb..d67a05f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/processdesign/ProcessDesignDO.java @@ -60,6 +60,7 @@ public class ProcessDesignDO extends BaseDO { private Date delayTime; private String delayReason; + @TableField("is_over_process") private Integer isOverProcess; /** * 子项目id @@ -113,7 +114,7 @@ public class ProcessDesignDO extends BaseDO { private String blankOwnerName; @TableField(exist = false) - private BigDecimal progressBlank; + private String progressBlank; @TableField(exist = false) private LocalDateTime twoDimDate; @@ -123,7 +124,7 @@ public class ProcessDesignDO extends BaseDO { private String twoDimOwnerName; @TableField(exist = false) - private BigDecimal progress2d; + private String progress2d; @TableField(exist = false) private LocalDateTime threeDimDate; @@ -133,7 +134,7 @@ public class ProcessDesignDO extends BaseDO { private String threeDimOwnerName; @TableField(exist = false) - private BigDecimal progress3d; + private String progress3d; @TableField(exist = false) private boolean isOver; @TableField(exist = false) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java index 326ada5..0fc5fa9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/taskdispatch/TaskDispatchDetailDO.java @@ -227,4 +227,5 @@ public class TaskDispatchDetailDO extends BaseDO { private BigDecimal matWeight; @TableField(exist = false) private String nickname; + private Integer reportStatus; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java index afebf0d..898bfcd 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/processdesign/ProcessDesignMapper.java @@ -36,7 +36,7 @@ public interface ProcessDesignMapper extends BaseMapperX { .select("b.blank_date as blankDate","b.start_blank_date as startBlankDate", "b.two_dim_date as twoDimDate","b.start_two_dim_date as startTwoDimDate", "b.three_dim_date as threeDimDate", "b.start_three_dim_date as startThreeDimDate") .select("u3.nickname as blankOwnerName", "u4.nickname as twoDimOwnerName", "u5.nickname as threeDimOwnerName") .select("c.name as projectSubName", "b.project_sub_code as projectSubCode") - .select("z.progress,z.blueprint_link as blueprintLink ") + .select("z.progress,z.blueprint_link as blueprintLink") .leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId) .leftJoin("project_plan_sub b on b.project_plan_id = t.plan_id and b.project_sub_id = t.project_sub_id") .leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, ProcessDesignDO::getProjectSubId) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bgmasterline/BgMasterLineServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bgmasterline/BgMasterLineServiceImpl.java index 1942f7b..83f1f7f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bgmasterline/BgMasterLineServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/bgmasterline/BgMasterLineServiceImpl.java @@ -1,5 +1,6 @@ package com.chanko.yunxi.mes.module.heli.service.bgmasterline; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.chanko.yunxi.mes.module.heli.dal.dataobject.pgmaster.PgMasterDO; @@ -86,6 +87,19 @@ public class BgMasterLineServiceImpl implements BgMasterLineService { wrapper.eq(TaskDispatchDetailDO::getId,pgMasterLineDO.getDispatchDetailId()); wrapper.set(TaskDispatchDetailDO::getTestYn,"Y"); taskDispatchDetailMapper.update(wrapper); + TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(pgMasterLineDO.getDispatchDetailId()); + if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){ + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId()); + wrapper1.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1); + wrapper1.eq(TaskDispatchDetailDO::getDeleted, 0); + TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper1); + if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){ + taskDispatchDetailDO.setReportStatus(1); + taskDispatchDetailMapper.updateById(taskDispatchDetailDO); + } + } + }else{ //不相等时只更新当前报工状态 pgMasterLineDO.setActive("END"); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java index 1758476..39d94e5 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/materialplan/MaterialPlanServiceImpl.java @@ -337,7 +337,18 @@ public class MaterialPlanServiceImpl implements MaterialPlanService { @Override public PageResult getBeiKuPage(MaterialPlanPageReqVO pageReqVO) { - return materialPlanMapper.getBeiKuPage(pageReqVO); + PageResult beiKuPage = materialPlanMapper.getBeiKuPage(pageReqVO); + List list = beiKuPage.getList(); + list.forEach(item -> + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, item.getId()); + queryWrapper.eq(MaterialPlanBoomDO::getDeleted,0); + item.setDetailList(materialPlanBoomMapper.selectList(queryWrapper)); + } + ); + beiKuPage.setList( list); + return beiKuPage; } @Override diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pgmaster/PgMasterServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pgmaster/PgMasterServiceImpl.java index 6c4e0c8..b8e61bd 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pgmaster/PgMasterServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pgmaster/PgMasterServiceImpl.java @@ -1,5 +1,7 @@ package com.chanko.yunxi.mes.module.heli.service.pgmaster; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.bgmasterline.BgMasterLineDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; @@ -10,6 +12,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.zjpgmaster.ZjPgMasterLine import com.chanko.yunxi.mes.module.heli.dal.mysql.bgmasterline.BgMasterLineMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.pgmaster.PgMasterLineMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchTypeEnum; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; import org.springframework.stereotype.Service; @@ -54,6 +57,8 @@ public class PgMasterServiceImpl implements PgMasterService { @Resource private SerialNumberService serialNumberService; + @Resource + private TaskDispatchDetailMapper taskDispatchDetailMapper; @@ -173,6 +178,18 @@ public class PgMasterServiceImpl implements PgMasterService { PgMasterLineDO pgMasterLineDO = pgMasterLineMapper.selectById(id); pgMasterLineDO.setDispatchStatus(3); int a = pgMasterLineMapper.updateById(pgMasterLineDO); + TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(pgMasterLineDO.getDispatchDetailId()); + if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){ + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId()); + wrapper1.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1); + wrapper1.eq(TaskDispatchDetailDO::getDeleted, 0); + TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper1); + if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){ + taskDispatchDetailDO.setReportStatus(1); + taskDispatchDetailMapper.updateById(taskDispatchDetailDO); + } + } // 返回 return a; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java index 8277f9d..3d86317 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/processdesign/ProcessDesignServiceImpl.java @@ -271,18 +271,52 @@ public class ProcessDesignServiceImpl implements ProcessDesignService { if(ProcessDesignTypeEnum.BLUEPRINT_WORKBLANK.name().equals(processDesign.getProcessDesignType())){ processDesignDO.setBlankDate(processDesign.getBlankDate()) .setStartBlankDate(processDesign.getStartBlankDate()) - .setBlankOwnerName(processDesign.getBlankOwnerName()) - .setProgressBlank(processDesign.getProgress()); + .setBlankOwnerName(processDesign.getBlankOwnerName()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId()); + wrapper.eq(ProcessDesignProgressDO::getDeleted,0); + if (processDesignProgressMapper.selectCount(wrapper)==0){ + processDesignDO.setProgressBlank("未开始"); + }else{ + if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){ + processDesignDO.setProgressBlank("进行中"); + }else { + processDesignDO.setProgressBlank("已完成"); + } + } }else if(ProcessDesignTypeEnum.BLUEPRINT_3D.name().equals(processDesign.getProcessDesignType())){ processDesignDO.setThreeDimDate(processDesign.getThreeDimDate()) .setStartThreeDimDate(processDesign.getStartThreeDimDate()) - .setThreeDimOwnerName(processDesign.getThreeDimOwnerName()) - .setProgress3d(processDesign.getProgress()); + .setThreeDimOwnerName(processDesign.getThreeDimOwnerName()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId()); + wrapper.eq(ProcessDesignProgressDO::getDeleted,0); + Long l = processDesignProgressMapper.selectCount(wrapper); + if (l==0){ + processDesignDO.setProgress3d("未开始"); + }else{ + if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){ + processDesignDO.setProgress3d("进行中"); + }else{ + processDesignDO.setProgress3d("已完成"); + } + } }else if(ProcessDesignTypeEnum.BLUEPRINT_2D.name().equals(processDesign.getProcessDesignType())){ processDesignDO.setTwoDimDate(processDesign.getTwoDimDate()) .setStartTwoDimDate(processDesign.getStartTwoDimDate()) - .setTwoDimOwnerName(processDesign.getTwoDimOwnerName()) - .setProgress2d(processDesign.getProgress()); + .setTwoDimOwnerName(processDesign.getTwoDimOwnerName()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId()); + wrapper.eq(ProcessDesignProgressDO::getDeleted,0); + if (processDesignProgressMapper.selectCount(wrapper)==0){ + processDesignDO.setProgress2d("未开始"); + }else{ + if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){ + processDesignDO.setProgress2d("进行中"); + }else{ + processDesignDO.setProgress2d("已完成"); + } + } } }); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java index 78609e8..c94c7d2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/taskdispatch/TaskDispatchServiceImpl.java @@ -217,7 +217,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount()); taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode()); } + if (taskDispatchDetailDO.getSort()==1){ + taskDispatchDetailDO.setReportStatus(1); + } }); + } @@ -785,6 +789,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { ownerDO.setId(taskDispatchDetailOwnerDO.getId()); ownerDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode()); taskDispatchDetailMapper.updateByOwner(ownerDO,null); + } } //子项目装配是否完成 @@ -891,6 +896,18 @@ public class TaskDispatchServiceImpl implements TaskDispatchService { // planMapper.updateById(planDO); // } // } + if (ObjectUtil.isNotEmpty(taskDispatchDetailDO.getTestYn())){ + if ("1".equals(taskDispatchDetailDO.getTestYn())&&"PRODUCTION".equals(taskDispatchDO.getDispatchType())){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId()); + wrapper.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1); + wrapper.eq(TaskDispatchDetailDO::getDeleted, 0); + TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper); + if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){ + taskDispatchDetailDO.setReportStatus(1); + } + } + } taskDispatchDetailMapper.updateById(taskDispatchDetailDO); break; } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue index 3934267..481d7ab 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matreq/standardParts.vue @@ -97,9 +97,9 @@ 确认 - - 库存补充 - + + + 采购 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/overview.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/overview.vue index 4a86058..3477a61 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/overview.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/processdesign/overview.vue @@ -87,11 +87,11 @@ - - - + + + + + - - - + + + + + - - - + > + + + + - + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorder/materialPlanDialog.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorder/materialPlanDialog.vue index 2f7660f..582e022 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorder/materialPlanDialog.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorder/materialPlanDialog.vue @@ -29,8 +29,9 @@ - + @@ -51,6 +52,31 @@ + + + + + + + @@ -77,7 +103,19 @@ const { t } = useI18n() // 国际化 const router = useRouter() const dialogVisible = ref(false) // 弹窗的是否展示 const dialogTitle = ref('') // 弹窗的标题 - +const activeRow = ref(null) // 当前悬停的行数据 +const tooltipRef = ref({ + getBoundingClientRect: () => ({ + width: 0, + height: 0, + top: 0, + bottom: 0, + left: 0, + right: 0 + }), + contextElement: null +}) +const tooltipVisible = ref(false) const loading = ref(true) // 列表的加载中 const list = ref([]) // 列表的数据 const total = ref(0) // 列表的总页数 @@ -91,18 +129,62 @@ const queryParams = reactive({ }) const queryFormRef = ref() // 搜索的表单 - +const materialTooltipRef = ref(null) // 对应模板中的 /** 查询列表 */ const getList = async () => { loading.value = true try { const data = await materialPlanApi.getBeiKuPage(queryParams) - list.value = data.list + // list.value = data.list + console.log(data.list) + list.value = data.list.map(item => ({ + ...item, + // 确保物料明细存在 + materialItems: item.detailList || [] + })); total.value = data.total } finally { loading.value = false } } +const materialTooltipContent = computed(() => { + const { materialItems } = activeRow.value || {} + if (!materialItems) return '' + return materialItems.map(item => `${item.matName} x ${item.boomAmount}`).join('\n') +}) +// 鼠标进入行 +const handleMouseEnter=(row, column, cell, event)=> { + activeRow.value = row + + // 获取当前单元格位置 + const rect = cell.getBoundingClientRect() + tooltipVisible.value = true + // 更新虚拟引用位置 + tooltipRef.value = { + getBoundingClientRect: () => ({ + width: 0, + height: 0, + top: rect.top, + bottom: rect.bottom, + left: rect.left, + right: rect.right + }), + contextElement: cell + } + + // 强制更新工具提示位置 + nextTick(() => { + if (materialTooltipRef.value) { + materialTooltipRef.value.updatePopper() + } + }) +} + +// 鼠标离开行 +const handleMouseLeave=()=> { + tooltipVisible.value = false + activeRow.value = null; +} /** 搜索按钮操作 */ const handleQuery = () => { @@ -160,3 +242,83 @@ const open = async () => { } defineExpose({ open }) // 提供 open 方法,用于打开弹窗 + + + diff --git a/mes-ui/mini-app/src/pages/index/index.vue b/mes-ui/mini-app/src/pages/index/index.vue index 8630acb..073e2b8 100644 --- a/mes-ui/mini-app/src/pages/index/index.vue +++ b/mes-ui/mini-app/src/pages/index/index.vue @@ -6,7 +6,7 @@ import CustomNavbar from "./components/CustomNavbar.vue"; import CategoryPanel from "./components/CategoryPanel.vue"; import footRight from "./components/footRight.vue"; import PageSkeleton from "./components/PageSkeleton.vue"; -import { getHomeCategoryAPI, getUnreadMessage } from "@/services/home"; +import {countReview, getHomeCategoryAPI, getUnreadMessage} from "@/services/home"; // 获取前台分类数据 const categoryList = ref([ { @@ -101,16 +101,24 @@ const getHomeCategory = async () => { if (menus.length) { const arr = []; categoryList.value.forEach((e) => { - if (e.path === 'cgdsp') return; + if (e.path === 'cgdsp') return; const target = menus.find((q) => q.path == e.path); e.auth = !!target; }); } const unReadCount = await getUnreadMessage(); + const count = await countReview(); // 把未读数放到消息通知项 - const msgItem = categoryList.value.find( - (e) => e.path === "messageNotification" + const cgdsp = categoryList.value.find( + (e) => e.path === "cgdsp" ); + const msgItem = categoryList.value.find( + (e) => e.path === "messageNotification" + ); + if (cgdsp){ + cgdsp.unReadCount = count; + cgdsp.auth=true + } if (msgItem) { msgItem.unReadCount = unReadCount; msgItem.auth=true diff --git a/mes-ui/mini-app/src/pages/productionReport/components/dataItem.vue b/mes-ui/mini-app/src/pages/productionReport/components/dataItem.vue index 46ccaa2..52e3fef 100644 --- a/mes-ui/mini-app/src/pages/productionReport/components/dataItem.vue +++ b/mes-ui/mini-app/src/pages/productionReport/components/dataItem.vue @@ -160,7 +160,7 @@ const handleScan = () => { { >预计生产日期:{{ item.startTime }} ~ {{ item.endTime }} - {{ statusText }} + + + {{ statusText }} { color: #fff; } + .statusText1 { + position: absolute; + right: 30rpx; + top: 100rpx; + border-radius: 10rpx; + font-size: 24rpx; + padding: 10rpx 30rpx; + border-radius: 10rpx; + font-size: 24rpx; + background: linear-gradient(149deg, #4CAF50 4%, #388E3C 98%); + color: #fff; + } &:last-child { padding-bottom: 40rpx; } diff --git a/mes-ui/mini-app/src/services/home.ts b/mes-ui/mini-app/src/services/home.ts index 49f4c9d..59803a0 100644 --- a/mes-ui/mini-app/src/services/home.ts +++ b/mes-ui/mini-app/src/services/home.ts @@ -1,7 +1,7 @@ /* * @Author: 王文杰 * @Date: 2024-01-04 12:54:56 - * @LastEditors: 王文杰 + * @LastEditors: 王文杰 * @LastEditTime: 2024-03-19 17:27:47 * @FilePath: /app-nx-personal/src/services/home.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE @@ -23,4 +23,11 @@ export const getUnreadMessage = () => { method: 'GET', url: '/heli/bdgzsomthing/unreadMessage', }) -} \ No newline at end of file +} + +export const countReview = () => { + return http({ + method: 'GET', + url: '/heli/purchase-order-make/countReview', + }) +}