修改apms上报时机
This commit is contained in:
		@@ -99,20 +99,6 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
        runTask.setEndPosition(currTask.getTargetPosition());
 | 
			
		||||
        runTask.setBeginTime(LocalDateTime.now());
 | 
			
		||||
        runTaskServiceBiz.save(runTask);
 | 
			
		||||
        //任务为自动任务第一步或任务为非自动任务时创建生产单,其他情况下开始生产单
 | 
			
		||||
        if (isFirstTask(currTask)) {
 | 
			
		||||
            //通知apms创建一个生产单
 | 
			
		||||
            Boolean createProcess = apmsCreateProcess(currTask);
 | 
			
		||||
            if (!createProcess) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            //通知apms开始生产单
 | 
			
		||||
            Boolean startProcess = apmsStartProcess(currTask);
 | 
			
		||||
            if (!startProcess) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        //调用车辆填入起终点,得到车辆执行结果
 | 
			
		||||
        Long startPoint = pointInfoServiceBiz.getOne(new QueryWrapper<PointInfo>().eq(PointInfo.NOTE, runTask.getStartPosition())).getCode();
 | 
			
		||||
        Long endPoint = pointInfoServiceBiz.getOne(new QueryWrapper<PointInfo>().eq(PointInfo.NOTE, runTask.getEndPosition())).getCode();
 | 
			
		||||
@@ -120,8 +106,6 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
        logger.info(String.valueOf(status));
 | 
			
		||||
        //执行成功,托盘进炉
 | 
			
		||||
        if (status == 1) {
 | 
			
		||||
            // TODO: 2022/7/7  开始记录能源消耗
 | 
			
		||||
 | 
			
		||||
            logger.info("===执行任务:" + currTaskId + " ,车辆搬运任务,车辆:" + vehicleId + " ,起点:" + startPoint + " ,终点:" + endPoint + "任务执行成功===");
 | 
			
		||||
            //更新调度表状态为完成
 | 
			
		||||
            runTask.setUpdateTime(LocalDateTime.now());
 | 
			
		||||
@@ -137,15 +121,42 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
            //更新小车状态
 | 
			
		||||
            vehicle.setStatus(0);
 | 
			
		||||
            vehicleInfoServiceBiz.updateById(vehicle);
 | 
			
		||||
            //任务为自动任务第一步或任务为非自动任务时创建生产单,其他情况下开始生产单
 | 
			
		||||
            if (isFirstTask(currTask)) {
 | 
			
		||||
                //通知apms创建一个生产单
 | 
			
		||||
                apmsCreateProcess(currTask);
 | 
			
		||||
            } else {
 | 
			
		||||
                int secondSetp = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                if (secondSetp>0){
 | 
			
		||||
                    //当前任务为自动任务里的第二步,先上报第一步的apms-endProcess
 | 
			
		||||
                    AutoExeTask autoExeTask = autoExeTaskServiceBiz.getOne(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                    CurrTask firstCurrTask = currTaskServiceBiz.getById(autoExeTask.getFTaskId());
 | 
			
		||||
                    firstCurrTask.setIsIn(2);
 | 
			
		||||
                    currTaskServiceBiz.updateById(firstCurrTask);
 | 
			
		||||
                    apmsEndProcess(firstCurrTask);
 | 
			
		||||
                    //再上报第二步开始处理
 | 
			
		||||
                    apmsStartProcess(currTask);
 | 
			
		||||
                }
 | 
			
		||||
                int threeSetp = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.TH_TASK_ID, currTaskId));
 | 
			
		||||
                if (threeSetp>0){
 | 
			
		||||
                    //当前任务为自动任务里的第三步,先上报第二步的apms处理endProcess
 | 
			
		||||
                    AutoExeTask autoExeTask = autoExeTaskServiceBiz.getOne(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.TH_TASK_ID, currTaskId));
 | 
			
		||||
                    CurrTask secondCurrTask = currTaskServiceBiz.getById(autoExeTask.getFTaskId());
 | 
			
		||||
                    secondCurrTask.setIsIn(2);
 | 
			
		||||
                    currTaskServiceBiz.updateById(secondCurrTask);
 | 
			
		||||
                    apmsEndProcess(secondCurrTask);
 | 
			
		||||
                    //再上报第三步开始处理
 | 
			
		||||
                    apmsStartProcess(currTask);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            asynStartRecordConsume(currTaskId, currTask.getKilnId());
 | 
			
		||||
        } else {
 | 
			
		||||
            runTask.setStatus(3);
 | 
			
		||||
            runTask.setUpdateTime(LocalDateTime.now());
 | 
			
		||||
            runTaskServiceBiz.updateById(runTask);
 | 
			
		||||
            logger.info("===执行任务:" + currTaskId + " ,车辆搬运任务,车辆:" + vehicleId + " ,起点:" + startPoint + " ,终点:" + endPoint + "任务执行失败===");
 | 
			
		||||
            logger.info("任务 " + currTask.getTaskCode() + " 车辆从液压台台到加工炉过程中失败。");
 | 
			
		||||
            // TODO: 2021/12/14 websocket推送到前端,小车管理界面添加一个重置小车状态的接口。
 | 
			
		||||
            webSocketServer.sendtoAll("任务 " + currTask.getTaskCode() + " 车辆从液压台台到加工炉过程中失败。");
 | 
			
		||||
            logger.info("任务 " + currTask.getTaskCode() + " 车辆从起点"+startPoint+"台到加工炉过程中失败。");
 | 
			
		||||
            webSocketServer.sendtoAll("任务 " + currTask.getTaskCode() + " 车辆从起点"+startPoint+"台到加工炉过程中失败。");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -171,20 +182,6 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
        //修改缓存区存储情况表状态
 | 
			
		||||
        inStockInfo.setStatus(1);
 | 
			
		||||
        inStockInfoServiceBiz.updateById(inStockInfo);
 | 
			
		||||
        //任务为自动任务第一步或任务为非自动任务时创建生产单,其他情况下开始生产单
 | 
			
		||||
        if (isFirstTask(currTask)) {
 | 
			
		||||
            //通知apms创建一个生产单
 | 
			
		||||
            Boolean createProcess = apmsCreateProcess(currTask);
 | 
			
		||||
            if (!createProcess) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            //通知apms开始生产单
 | 
			
		||||
            Boolean startProcess = apmsStartProcess(currTask);
 | 
			
		||||
            if (!startProcess) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // 调用车辆填入起终点,得到车辆执行结果
 | 
			
		||||
        Long startPoint = pointInfoServiceBiz.getOne(new QueryWrapper<PointInfo>().eq(PointInfo.NOTE, runTask.getStartPosition())).getCode();
 | 
			
		||||
        Long endPoint = pointInfoServiceBiz.getOne(new QueryWrapper<PointInfo>().eq(PointInfo.NOTE, runTask.getEndPosition())).getCode();
 | 
			
		||||
@@ -217,7 +214,35 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
            //更新小车状态
 | 
			
		||||
            vehicle.setStatus(0);
 | 
			
		||||
            vehicleInfoServiceBiz.updateById(vehicle);
 | 
			
		||||
            // TODO: 2022/7/7
 | 
			
		||||
            //任务为自动任务第一步或任务为非自动任务时创建生产单,其他情况下开始生产单
 | 
			
		||||
            if (isFirstTask(currTask)) {
 | 
			
		||||
                //通知apms创建一个生产单
 | 
			
		||||
                apmsCreateProcess(currTask);
 | 
			
		||||
            } else {
 | 
			
		||||
                int secondSetp = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                if (secondSetp>0){
 | 
			
		||||
                    //当前任务为自动任务里的第二步,先上报第一步的apms-endProcess
 | 
			
		||||
                    AutoExeTask autoExeTask = autoExeTaskServiceBiz.getOne(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                    CurrTask firstCurrTask = currTaskServiceBiz.getById(autoExeTask.getFTaskId());
 | 
			
		||||
                    firstCurrTask.setIsIn(2);
 | 
			
		||||
                    currTaskServiceBiz.updateById(firstCurrTask);
 | 
			
		||||
                    apmsEndProcess(firstCurrTask);
 | 
			
		||||
                    //再上报第二步开始处理
 | 
			
		||||
                    apmsStartProcess(currTask);
 | 
			
		||||
                }
 | 
			
		||||
                int threeSetp = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.TH_TASK_ID, currTaskId));
 | 
			
		||||
                if (threeSetp>0){
 | 
			
		||||
                    //当前任务为自动任务里的第三步,先上报第二步的apms处理endProcess
 | 
			
		||||
                    AutoExeTask autoExeTask = autoExeTaskServiceBiz.getOne(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.TH_TASK_ID, currTaskId));
 | 
			
		||||
                    CurrTask secondCurrTask = currTaskServiceBiz.getById(autoExeTask.getFTaskId());
 | 
			
		||||
                    secondCurrTask.setIsIn(2);
 | 
			
		||||
                    currTaskServiceBiz.updateById(secondCurrTask);
 | 
			
		||||
                    apmsEndProcess(secondCurrTask);
 | 
			
		||||
                    //再上报第三步开始处理
 | 
			
		||||
                    apmsStartProcess(currTask);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // 记录开始加工时的消耗值
 | 
			
		||||
            asynStartRecordConsume(currTaskId, currTask.getKilnId());
 | 
			
		||||
        } else {
 | 
			
		||||
            runTask.setStatus(3);
 | 
			
		||||
@@ -284,6 +309,24 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
            //更新小车状态
 | 
			
		||||
            vehicle.setStatus(0);
 | 
			
		||||
            vehicleInfoServiceBiz.updateById(vehicle);
 | 
			
		||||
            //如果任务为多步骤任务的非第一步,置前置任务isIn为2
 | 
			
		||||
            if (currTask.getIsAuto()==1){
 | 
			
		||||
                int count = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.F_TASK_ID, currTaskId));
 | 
			
		||||
                if (count==0){
 | 
			
		||||
                    int secondCount = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                    if (secondCount==1){
 | 
			
		||||
                        AutoExeTask autoExeTask = autoExeTaskServiceBiz.getOne(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                        CurrTask firstCurrTask = currTaskServiceBiz.getById(autoExeTask.getFTaskId());
 | 
			
		||||
                        firstCurrTask.setIsIn(2);
 | 
			
		||||
                        currTaskServiceBiz.updateById(firstCurrTask);
 | 
			
		||||
                    }else {
 | 
			
		||||
                        AutoExeTask autoExeTask = autoExeTaskServiceBiz.getOne(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.TH_TASK_ID, currTaskId));
 | 
			
		||||
                        CurrTask secondCurrTask = currTaskServiceBiz.getById(autoExeTask.getThTaskId());
 | 
			
		||||
                        secondCurrTask.setIsIn(2);
 | 
			
		||||
                        currTaskServiceBiz.updateById(secondCurrTask);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            runTask.setStatus(3);
 | 
			
		||||
            runTask.setUpdateTime(LocalDateTime.now());
 | 
			
		||||
@@ -334,8 +377,6 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
        Long endPoint = pointInfoServiceBiz.getOne(new QueryWrapper<PointInfo>().eq(PointInfo.NOTE, runTask.getEndPosition())).getCode();
 | 
			
		||||
        Integer status = sendTaskToRgv(vehicleId, currTaskId, startPoint, endPoint, currTask.getPlcValue());
 | 
			
		||||
        if (status == 1) {
 | 
			
		||||
            // TODO: 2022/7/7  加工完成,记录结束时能源消耗
 | 
			
		||||
 | 
			
		||||
            logger.info("===执行任务:" + currTaskId + " ,车辆搬运任务,车辆:" + vehicleId + " ,起点:" + startPoint + " ,终点:" + endPoint + "任务执行成功===");
 | 
			
		||||
            //更新关系表状态为完成
 | 
			
		||||
            runTask.setUpdateTime(LocalDateTime.now());
 | 
			
		||||
@@ -355,50 +396,35 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
            //更新小车状态
 | 
			
		||||
            vehicle.setStatus(0);
 | 
			
		||||
            vehicleInfoServiceBiz.updateById(vehicle);
 | 
			
		||||
            asynEndRecordConsume(currTaskId, currTask.getKilnId());
 | 
			
		||||
            // TODO: 2022/7/6  上报apms加工完成.每次进炉加工完成后就上报apms完成处理生产单,等所有加工步骤都完成后上报apms完成生产单。
 | 
			
		||||
            logger.info("任务:" + currTaskId + " 生产单号:" + currTask.getSheetNo() + "开始上报apm完成处理生产单!");
 | 
			
		||||
            ApmsEndProcess apmsEndProcess = new ApmsEndProcess();
 | 
			
		||||
            apmsEndProcess.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 | 
			
		||||
            apmsEndProcess.setEndUser("QJJP03");
 | 
			
		||||
            apmsEndProcess.setSheetNo(currTask.getSheetNo());
 | 
			
		||||
            R<ApmsEndProcessVo> apmsEndProcessVoR = apmsController.endProcess(apmsEndProcess);
 | 
			
		||||
            if (apmsEndProcessVoR.getCode() != 0) {
 | 
			
		||||
                logger.info("任务:" + currTaskId + " 生产单号:" + currTask.getSheetNo() + "上报apm完成处理生产单失败!");
 | 
			
		||||
            }
 | 
			
		||||
            if (currTask.getIsAuto() == 1) {
 | 
			
		||||
                //两步且是第二步
 | 
			
		||||
                List<AutoExeTask> twoSpet = autoExeTaskServiceBiz.list(new QueryWrapper<AutoExeTask>()
 | 
			
		||||
                        .eq(AutoExeTask.PROCESS_FLOW_TYPE, 1)
 | 
			
		||||
                        .eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                //三步且是第三步
 | 
			
		||||
                List<AutoExeTask> threeSpet = autoExeTaskServiceBiz.list(new QueryWrapper<AutoExeTask>()
 | 
			
		||||
                        .eq(AutoExeTask.PROCESS_FLOW_TYPE, 2)
 | 
			
		||||
                        .eq(AutoExeTask.TH_TASK_ID, currTaskId));
 | 
			
		||||
                if (!(threeSpet.size() != 0 || twoSpet.size() != 0)) {
 | 
			
		||||
                    return;
 | 
			
		||||
            //任务为非自动任务上报apms-end-finish
 | 
			
		||||
            if (currTask.getIsOut()==0) {
 | 
			
		||||
                //上报apms完成处理
 | 
			
		||||
                logger.info("此任务为单步骤任务,任务结束,上报apms-end-finish");
 | 
			
		||||
                apmsEndProcess(currTask);
 | 
			
		||||
                apmsFinishProcess(currTask);
 | 
			
		||||
            } else {
 | 
			
		||||
                int secondSetp = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                if (secondSetp>0){
 | 
			
		||||
                    AutoExeTask autoExeTask = autoExeTaskServiceBiz.getOne(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.T_TASK_ID, currTaskId));
 | 
			
		||||
                    if (autoExeTask.getProcessFlowType()==1){
 | 
			
		||||
                        logger.info("此任务为为自动任务里的第二步且一共只有两步,任务结束,上报apms-end-finish");
 | 
			
		||||
                        //当前任务为自动任务里的第三步且一共只有两步,先上报apms处理endProcess
 | 
			
		||||
                        apmsEndProcess(currTask);
 | 
			
		||||
                        //再上报apms-finishProcess
 | 
			
		||||
                        apmsFinishProcess(currTask);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            logger.info("任务:" + currTask.getTaskCode() + "开始上报apms完成生产单!");
 | 
			
		||||
            ApmsFinishProcessSheet apmsFinishProcessSheet = new ApmsFinishProcessSheet();
 | 
			
		||||
            apmsFinishProcessSheet.setSheetNo(currTask.getSheetNo());
 | 
			
		||||
            apmsFinishProcessSheet.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 | 
			
		||||
            apmsFinishProcessSheet.setEndUser("QJJP03");
 | 
			
		||||
            List<FinishItem> finishItems = new ArrayList<>();
 | 
			
		||||
            List<CurrTaskDet> currTaskDets = currTaskDetServiceBiz.list(new QueryWrapper<CurrTaskDet>().eq(CurrTaskDet.CURR_TASK_ID, currTaskId));
 | 
			
		||||
            for (CurrTaskDet currTaskDet : currTaskDets
 | 
			
		||||
            ) {
 | 
			
		||||
                FinishItem finishItem = new FinishItem();
 | 
			
		||||
                BigDecimal bigDecimal = new BigDecimal(currTaskDet.getWeight());
 | 
			
		||||
                finishItem.setFinishWeight(bigDecimal.doubleValue());
 | 
			
		||||
                finishItem.setFinishQuantity(Math.round(currTaskDet.getQuantity()));
 | 
			
		||||
                finishItem.setItemCode(currTaskDet.getIdenCardNum());
 | 
			
		||||
                finishItems.add(finishItem);
 | 
			
		||||
            }
 | 
			
		||||
            apmsFinishProcessSheet.setItems(finishItems);
 | 
			
		||||
            R<ApmsFinishProcessSheetVo> apmsFinishProcessSheetVoR = apmsController.finishProcessSheet(apmsFinishProcessSheet);
 | 
			
		||||
            if (apmsFinishProcessSheetVoR.getCode() != 0) {
 | 
			
		||||
                logger.info("任务:" + currTask.getTaskCode() + "完成后上报apms完成生产单失败!");
 | 
			
		||||
                int threeSetp = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.TH_TASK_ID, currTaskId));
 | 
			
		||||
                if (threeSetp>0){
 | 
			
		||||
                    logger.info("此任务为为自动任务里的第三步,任务结束,上报apms-end-finish");
 | 
			
		||||
                    //当前任务为自动任务里的第三步,先上报apms处理endProcess
 | 
			
		||||
                    apmsEndProcess(currTask);
 | 
			
		||||
                    //再上报apms-finishProcess
 | 
			
		||||
                    apmsFinishProcess(currTask);
 | 
			
		||||
                }
 | 
			
		||||
                logger.info("此任务为为自动任务里的第一步或第二步,任务结束,上报apms-end-finish");
 | 
			
		||||
                //为自动任务的非第三步
 | 
			
		||||
                apmsEndProcess(currTask);
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            runTask.setStatus(3);
 | 
			
		||||
@@ -1088,6 +1114,56 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
        logger.info("任务号" + currTask.getTaskCode() + "生产单号:" + currTask.getSheetNo() + "生产单开始生产上报apms成功");
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 上报apms-end
 | 
			
		||||
     * @param currTask
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    private Boolean apmsEndProcess(CurrTask currTask){
 | 
			
		||||
        ApmsEndProcess apmsEndProcess = new ApmsEndProcess();
 | 
			
		||||
        apmsEndProcess.setEndTime(currTask.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 | 
			
		||||
        apmsEndProcess.setEndUser("QJJP03");
 | 
			
		||||
        apmsEndProcess.setSheetNo(currTask.getSheetNo());
 | 
			
		||||
        R<ApmsEndProcessVo> apmsEndProcessVoR = apmsController.endProcess(apmsEndProcess);
 | 
			
		||||
        if (apmsEndProcessVoR.getCode() != 0) {
 | 
			
		||||
            logger.info("任务号" + currTask.getTaskCode() + "生产单号:" + currTask.getSheetNo() + "生产单完成处理上报apms失败");
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        logger.info("任务号" + currTask.getTaskCode() + "生产单号:" + currTask.getSheetNo() + "生产单完成处理上报apms成功");
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 上报apms-finish
 | 
			
		||||
     * @param currTask
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    private Boolean apmsFinishProcess(CurrTask currTask){
 | 
			
		||||
        logger.info("任务:" + currTask.getTaskCode() + "开始上报apms完成生产单!");
 | 
			
		||||
        ApmsFinishProcessSheet apmsFinishProcessSheet = new ApmsFinishProcessSheet();
 | 
			
		||||
        apmsFinishProcessSheet.setSheetNo(currTask.getSheetNo());
 | 
			
		||||
        apmsFinishProcessSheet.setEndTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
 | 
			
		||||
        apmsFinishProcessSheet.setEndUser("QJJP03");
 | 
			
		||||
        List<FinishItem> finishItems = new ArrayList<>();
 | 
			
		||||
        List<CurrTaskDet> currTaskDets = currTaskDetServiceBiz.list(new QueryWrapper<CurrTaskDet>().eq(CurrTaskDet.CURR_TASK_ID, currTask.getId()));
 | 
			
		||||
        for (CurrTaskDet currTaskDet : currTaskDets
 | 
			
		||||
        ) {
 | 
			
		||||
            FinishItem finishItem = new FinishItem();
 | 
			
		||||
            BigDecimal bigDecimal = new BigDecimal(currTaskDet.getWeight());
 | 
			
		||||
            finishItem.setFinishWeight(bigDecimal.doubleValue());
 | 
			
		||||
            finishItem.setFinishQuantity(Math.round(currTaskDet.getQuantity()));
 | 
			
		||||
            finishItem.setItemCode(currTaskDet.getIdenCardNum());
 | 
			
		||||
            finishItems.add(finishItem);
 | 
			
		||||
        }
 | 
			
		||||
        apmsFinishProcessSheet.setItems(finishItems);
 | 
			
		||||
        R<ApmsFinishProcessSheetVo> apmsFinishProcessSheetVoR = apmsController.finishProcessSheet(apmsFinishProcessSheet);
 | 
			
		||||
        if (apmsFinishProcessSheetVoR.getCode() != 0) {
 | 
			
		||||
            logger.info("任务:" + currTask.getTaskCode() + "完成后上报apms完成生产单失败!");
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * 车辆是否在线
 | 
			
		||||
     * @param vehicleId 车辆id
 | 
			
		||||
@@ -1177,11 +1253,13 @@ public class AsynRunTaskService extends BaseService {
 | 
			
		||||
     * @return 单步骤任务true,多步骤任务第一步true,其他false
 | 
			
		||||
     */
 | 
			
		||||
    public Boolean isFirstTask(CurrTask currTask){
 | 
			
		||||
        if (currTask.getAutoExeTaskId()==1){
 | 
			
		||||
        if (currTask.getIsOut()==1){
 | 
			
		||||
            int count = autoExeTaskServiceBiz.count(new QueryWrapper<AutoExeTask>().eq(AutoExeTask.F_TASK_ID, currTask.getId()));
 | 
			
		||||
            return count>0;
 | 
			
		||||
        }else {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,9 @@ import com.mt.wms.core.dal.entity.*;
 | 
			
		||||
import com.mt.wms.core.dal.service.*;
 | 
			
		||||
import com.mt.wms.core.utils.HttpClient;
 | 
			
		||||
import com.mt.wms.core.vo.R;
 | 
			
		||||
import com.mt.wms.empty.controller.ApmsController;
 | 
			
		||||
import com.mt.wms.empty.params.ApmsEndProcess;
 | 
			
		||||
import com.mt.wms.empty.vo.ApmsEndProcessVo;
 | 
			
		||||
import com.mt.wms.empty.websocket.WebSocketServer;
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
@@ -18,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.time.format.DateTimeFormatter;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@@ -55,6 +59,8 @@ public class RunTaskUtils {
 | 
			
		||||
    private PlcNameSpaceServiceBiz plcNameSpaceServiceBiz;
 | 
			
		||||
    @Resource
 | 
			
		||||
    private WebSocketServer webSocketServer;
 | 
			
		||||
    @Resource
 | 
			
		||||
    private ApmsController apmsController;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 进炉加工
 | 
			
		||||
@@ -200,11 +206,7 @@ public class RunTaskUtils {
 | 
			
		||||
                    logger.info("自动任务第一步:"+currTask.getTaskCode()+"已执行完成。开始执行第二步任务:"+currTaskTwo);
 | 
			
		||||
                    //  2022/2/27 websocket推送到页面显示
 | 
			
		||||
                    webSocketServer.sendtoAll("自动任务第一步:"+currTask.getTaskCode()+"已执行完成。开始执行第二步任务:"+currTaskTwo);
 | 
			
		||||
                    // TODO: 2022/7/12 第一步任务的结束上报
 | 
			
		||||
                    currTask.setEndTime(LocalDateTime.now());
 | 
			
		||||
                    currTask.setIsIn(2);
 | 
			
		||||
                    currTaskServiceBiz.updateById(currTask);
 | 
			
		||||
                     return runTaskForInKiln(taskId);
 | 
			
		||||
                    return runTaskForInKiln(taskId);
 | 
			
		||||
                } catch (InterruptedException e) {
 | 
			
		||||
                    e.printStackTrace();
 | 
			
		||||
                }
 | 
			
		||||
@@ -222,7 +224,6 @@ public class RunTaskUtils {
 | 
			
		||||
                            logger.info("自动任务第二步:"+currTask.getTaskCode()+"已执行完成。开始执行第三步任务:"+currTaskThree);
 | 
			
		||||
                            // 2022/2/27 websocket推送到页面显示
 | 
			
		||||
                            webSocketServer.sendtoAll("自动任务第二步:"+currTask.getTaskCode()+"已执行完成。开始执行第三步任务:"+currTaskThree);
 | 
			
		||||
                            // TODO: 2022/7/12 第二步任务的结束上报
 | 
			
		||||
                            return runTaskForInKiln(thTaskId);
 | 
			
		||||
                        } catch (InterruptedException e) {
 | 
			
		||||
                            e.printStackTrace();
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ import com.mt.wms.core.dal.service.*;
 | 
			
		||||
import com.mt.wms.core.utils.BeanUtils;
 | 
			
		||||
import com.mt.wms.core.utils.CodeGeneratorHelper;
 | 
			
		||||
import com.mt.wms.core.utils.HttpClient;
 | 
			
		||||
import com.mt.wms.core.utils.StringUtils;
 | 
			
		||||
import com.mt.wms.core.vo.R;
 | 
			
		||||
import com.mt.wms.empty.vo.CurrTaskDetVo;
 | 
			
		||||
import com.mt.wms.empty.vo.NowCurrTaskDetVo;
 | 
			
		||||
@@ -74,7 +75,6 @@ public class ScheduledTask extends BaseService {
 | 
			
		||||
    @Resource
 | 
			
		||||
    private OrderInfoServiceBiz orderInfoServiceBiz;
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    //@Scheduled(fixedDelay = 1000*20)
 | 
			
		||||
    public void test() throws IOException {
 | 
			
		||||
    }
 | 
			
		||||
@@ -216,10 +216,11 @@ public class ScheduledTask extends BaseService {
 | 
			
		||||
                    logger.info(kilnInfo.getCode()+kilnInfo.getKilnAlias()+"识别到允许出炉信号,进入出库程序!");
 | 
			
		||||
                    asynRunTaskService.asynEndRecordConsume(currTask.getId(),kilnId);
 | 
			
		||||
                    logger.info(kilnInfo.getCode()+"炉子中的任务:"+currTask.getId()+"已加工结束,记录加工结束能源消耗值");
 | 
			
		||||
                    //更新加工单工艺结束时间
 | 
			
		||||
                    currTask.setEndTime(LocalDateTime.now());
 | 
			
		||||
                    currTaskServiceBiz.updateById(currTask);
 | 
			
		||||
                    //上报apms结束加工
 | 
			
		||||
                    //更新加工单工艺结束时间,只更新一次,因为可能因为不满住出炉条件而进入到下一次定时任务
 | 
			
		||||
                    if (StringUtils.isBlank(currTask.getEndTime().toString())){
 | 
			
		||||
                        currTask.setEndTime(LocalDateTime.now());
 | 
			
		||||
                        currTaskServiceBiz.updateById(currTask);
 | 
			
		||||
                    }
 | 
			
		||||
                    runTaskUtils.runTaskForOutKiln(kilnId);
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user