fix:自动创建拆单桁架任务
This commit is contained in:
@@ -0,0 +1,148 @@
|
|||||||
|
package org.nl.b_lms.sch.tasks.slitter.auto;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService;
|
||||||
|
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||||
|
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService;
|
||||||
|
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
|
||||||
|
import org.nl.b_lms.sch.point.dao.StIvtCutpointivt;
|
||||||
|
import org.nl.b_lms.sch.point.service.IstIvtCutpointivtService;
|
||||||
|
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||||
|
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||||
|
import org.nl.b_lms.sch.tasks.slitter.TrussDisassemblyCacheTask;
|
||||||
|
import org.nl.b_lms.sch.tasks.slitter.UpShaftTrussTask;
|
||||||
|
import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant;
|
||||||
|
import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum;
|
||||||
|
import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper;
|
||||||
|
import org.nl.wms.pdm.ivt.deliverycache.service.IDeliverycachepointivtService;
|
||||||
|
import org.nl.wms.pdm.ivt.deliverycache.service.dao.Deliverycachepointivt;
|
||||||
|
import org.nl.wms.pdm.ivt.deliverycache.service.dto.AreaBCachePointDto;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: lyd
|
||||||
|
* @Description: 自动任务 创建拆单桁架任务
|
||||||
|
* @Date: 2024/2/1
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Deprecated
|
||||||
|
@Component
|
||||||
|
public class AutoSplitTrussTask {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IDeliverycachepointivtService deliverycachepointivtService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TrussDisassemblyCacheTask trussDisassemblyCacheTask;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IBstIvtCutpointivtService bcutpointivtService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IPdmBiSlittingproductionplanService slittingproductionplanService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 运行任务,主要负责校验分切机是否有未处理的任务,如果有则跳过;如果没有,会尝试为分切机创建新的任务。
|
||||||
|
* 该过程包括:查找没有气涨轴的分切机点位,校验是否存在相关任务,寻找备好轴的对接点位,获取下一组分切计划,
|
||||||
|
* 并根据计划创建相应的搬运任务。
|
||||||
|
*/
|
||||||
|
public void run() {
|
||||||
|
log.info("自动创建拆单桁架任务开始执行...");
|
||||||
|
//查询可以拆单的分切缓存点位
|
||||||
|
List<BstIvtCutpointivt> cutPoints = bcutpointivtService.getAreaNotTaskPointByStatus("5", "2", null, "0");
|
||||||
|
for (BstIvtCutpointivt cutPoint : cutPoints) {
|
||||||
|
log.info("此时执行的点位:{}", cutPoint.getPoint_code());
|
||||||
|
// 获取分切计划
|
||||||
|
List<String> collect = Stream.of(cutPoint.getQzz_no1(), cutPoint.getQzz_no2())
|
||||||
|
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||||
|
if (collect.size() == 0) {
|
||||||
|
cutPoint.setRemark("点位数据与状态不符合,气胀轴编码为空!");
|
||||||
|
cutPoint.setIs_used("0");
|
||||||
|
cutPoint.setUpdate_time(DateUtil.now());
|
||||||
|
bcutpointivtService.updateById(cutPoint);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取任意一条分切计划
|
||||||
|
PdmBiSlittingproductionplan plan = slittingproductionplanService.getOne(new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||||
|
.eq(PdmBiSlittingproductionplan::getQzzno,collect.get(0)));
|
||||||
|
|
||||||
|
AreaBCachePointDto build = AreaBCachePointDto.builder()
|
||||||
|
.area(cutPoint.getProduct_area())
|
||||||
|
.location(cutPoint.getPoint_location())
|
||||||
|
.pointStatus("01")
|
||||||
|
.plan(cutPoint.getPlan())
|
||||||
|
.size(plan.getQzz_size()).build();
|
||||||
|
|
||||||
|
//查询可以存放的点位(根据区域、规划、尺寸查询)
|
||||||
|
List<Deliverycachepointivt> list = deliverycachepointivtService.getAreaBCacheByConditionsAndNoTask(build);
|
||||||
|
// 创建桁架任务
|
||||||
|
JSONObject trussTaskParam = new JSONObject();
|
||||||
|
if (ObjectUtil.isNotEmpty(cutPoint.getQzz_no1()) && ObjectUtil.isNotEmpty(cutPoint.getQzz_no2())) {
|
||||||
|
if (list.size() < 2) {
|
||||||
|
log.info("原地等待,无可用架子...");
|
||||||
|
// 原地等待
|
||||||
|
// 分切计划状态修改02->03
|
||||||
|
// List<String> collect = Stream.of(task.getVehicle_code(), task.getVehicle_code2())
|
||||||
|
// .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||||
|
// PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||||
|
// p.setStatus("03");
|
||||||
|
// TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||||
|
// slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||||
|
// .in(PdmBiSlittingproductionplan::getQzzno, collect));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Deliverycachepointivt d1 = list.get(0);
|
||||||
|
Deliverycachepointivt d2 = list.get(1);
|
||||||
|
// 四点
|
||||||
|
trussTaskParam.put("point_code1", cutPoint.getTruss_point_code1());
|
||||||
|
trussTaskParam.put("point_code2", d1.getPoint_code());
|
||||||
|
trussTaskParam.put("point_code3", cutPoint.getTruss_point_code2());
|
||||||
|
trussTaskParam.put("point_code4", d2.getPoint_code());
|
||||||
|
trussTaskParam.put("vehicle_code1", cutPoint.getQzz_no1());
|
||||||
|
trussTaskParam.put("vehicle_code2", cutPoint.getQzz_no2());
|
||||||
|
trussTaskParam.put("truss_type", "8");
|
||||||
|
trussTaskParam.put("task_type", SlitterEnum.TASK_TYPE.code("拆单桁架任务"));
|
||||||
|
trussTaskParam.put("product_area", cutPoint.getProduct_area());
|
||||||
|
trussTaskParam.put("to_Task1_Axis_Type", plan.getQzz_size());
|
||||||
|
trussTaskParam.put("to_Task2_Axis_Type", plan.getQzz_size());
|
||||||
|
trussDisassemblyCacheTask.createTask(trussTaskParam);
|
||||||
|
} else {
|
||||||
|
if (list.isEmpty()) {
|
||||||
|
log.info("原地等待,无可用架子...");
|
||||||
|
// 原地等待
|
||||||
|
// 分切计划状态修改02->03
|
||||||
|
// List<String> collect = Stream.of(task.getVehicle_code(), task.getVehicle_code2())
|
||||||
|
// .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||||
|
// PdmBiSlittingproductionplan p = new PdmBiSlittingproductionplan();
|
||||||
|
// p.setStatus("03");
|
||||||
|
// TaskUtils.updateOptMessageBySlitterPlan(p);
|
||||||
|
// slittingproductionplanService.update(p, new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||||
|
// .in(PdmBiSlittingproductionplan::getQzzno, collect));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 两点
|
||||||
|
Deliverycachepointivt d1 = list.get(0);
|
||||||
|
trussTaskParam.put("point_code1", ObjectUtil.isNotEmpty(cutPoint.getQzz_no1())
|
||||||
|
? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2());
|
||||||
|
trussTaskParam.put("point_code2", d1.getPoint_code());
|
||||||
|
trussTaskParam.put("truss_type", "8");
|
||||||
|
trussTaskParam.put("task_type", SlitterEnum.TASK_TYPE.code("拆单桁架任务"));
|
||||||
|
trussTaskParam.put("product_area", cutPoint.getProduct_area());
|
||||||
|
trussTaskParam.put("to_Task1_Axis_Type", plan.getQzz_size());
|
||||||
|
trussDisassemblyCacheTask.createTask(trussTaskParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user