14 小时以前 757c7e03bee3560bb4d7766fddd03673e2c2e611
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/task/MesProTaskController.java
@@ -10,11 +10,14 @@
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.GanttDataRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskAutoGeneratePreviewRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskAutoGenerateReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskSaveReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderPageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.client.MesMdClientDO;
import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi;
import cn.iocoder.yudao.module.crm.api.customer.dto.CrmCustomerRespDTO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO;
@@ -22,7 +25,7 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
import cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants;
import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService;
import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
@@ -72,7 +75,7 @@
    @Resource
    private MesMdItemService itemService;
    @Resource
    private MesMdClientService clientService;
    private CrmCustomerApi customerApi;
    @Resource
    private MesMdUnitMeasureService unitMeasureService;
    @Resource
@@ -102,6 +105,23 @@
    public CommonResult<Boolean> deleteTask(@RequestParam("id") Long id) {
        taskService.deleteTask(id);
        return success(true);
    }
    @PostMapping("/auto-generate/preview")
    @Operation(summary = "一键排产预览")
    @PreAuthorize("@ss.hasPermission('mes:pro-task:create')")
    public CommonResult<MesProTaskAutoGeneratePreviewRespVO> previewAutoGenerate(
            @Valid @RequestBody MesProTaskAutoGenerateReqVO reqVO) {
        return success(taskService.previewAutoGenerate(reqVO));
    }
    @PostMapping("/auto-generate")
    @Operation(summary = "一键排产执行")
    @PreAuthorize("@ss.hasPermission('mes:pro-task:create')")
    public CommonResult<java.util.Map<String, Object>> autoGenerate(
            @Valid @RequestBody MesProTaskAutoGenerateReqVO reqVO) {
        List<Long> taskIds = taskService.autoGenerateTasks(reqVO);
        return success(java.util.Map.of("taskIds", taskIds));
    }
    @GetMapping("/get")
@@ -232,7 +252,7 @@
                convertSet(list, MesProTaskDO::getItemId));
        Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap(
                convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId));
        Map<Long, MesMdClientDO> clientMap = clientService.getClientMap(
        Map<Long, CrmCustomerRespDTO> customerMap = customerApi.getCustomerMap(
                convertSet(list, MesProTaskDO::getClientId));
        // 工序的 checkFlag:批量查询后构建 routeId -> processId -> checkFlag 的双层 Map
        Set<Long> routeIds = convertSet(list, MesProTaskDO::getRouteId);
@@ -279,8 +299,8 @@
                findAndThen(unitMeasureMap, item.getUnitMeasureId(), unit ->
                        vo.setUnitMeasureName(unit.getName()));
            });
            findAndThen(clientMap, task.getClientId(), c ->
                    vo.setClientName(c.getName()));
            findAndThen(customerMap, task.getClientId(), customer ->
                    vo.setClientName(customer.getName()));
            findAndThen(routeProcessCheckFlagMap, task.getRouteId(), processCheckMap ->
                    findAndThen(processCheckMap, task.getProcessId(), vo::setCheckFlag));
            return vo;