hsy
5 天以前 56e8a8e8f6c90faf8240a5a05d64a6da441888ab
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/MesProTaskService.java
@@ -16,7 +16,7 @@
/**
 * MES 生产任务 Service 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface MesProTaskService {
@@ -123,6 +123,15 @@
    void cancelTaskByOrderId(Long workOrderId);
    /**
     * 根据工作站绑定设备的生产效率和传送履带,计算生产时长(单位:小时)
     *
     * @param workstationId 工作站编号
     * @param quantity      排产数量
     * @return 生产时长(小时),无设备则返回 0
     */
    Integer calculateDuration(Long workstationId, BigDecimal quantity);
    /**
     * 累加任务的已生产、合格、不合格数量
     *
     * @param id                    任务编号
@@ -153,4 +162,37 @@
    List<Long> autoGenerateTasks(
            cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskAutoGenerateReqVO reqVO);
    /**
     * 生产任务停工
     *
     * @param pauseReqVO 停工请求
     */
    void pauseTask(cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPauseReqVO pauseReqVO);
    /**
     * 生产任务复工
     *
     * @param resumeReqVO 复工请求
     */
    void resumeTask(cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskResumeReqVO resumeReqVO);
    /**
     * 获取生产任务的指定报工人员列表,按任务编号分组
     *
     * @param taskIds 任务编号集合
     * @return 任务关联的人员列表 Map
     */
    default Map<Long, List<cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskAssigneeDO>> getTaskAssigneeMap(Collection<Long> taskIds) {
        if (cn.hutool.core.collection.CollUtil.isEmpty(taskIds)) {
            return java.util.Collections.emptyMap();
        }
        return cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap(
                getTaskAssigneeListByTaskIds(taskIds), cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskAssigneeDO::getTaskId);
    }
    /**
     * 根据任务编号集合获取关联人员列表
     */
    List<cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskAssigneeDO> getTaskAssigneeListByTaskIds(Collection<Long> taskIds);
}