fix: 生箔母卷与收卷辊问题
This commit is contained in:
@@ -17,6 +17,7 @@ public enum TagNameEnum {
|
||||
RAW_DOWN("手持生箔下料"),
|
||||
RAW_EMPTY_HOME("手持生箔空辊回库"),
|
||||
RAW_READY("手持生箔准备就绪"),
|
||||
RAW_INFO_UPDATE("手持修改生箔信息"),
|
||||
CUT_UP("手持分切上料"),
|
||||
CUT_UP_CONFIRM("手持分切确认上料"),
|
||||
CUT_EMPTY_BACK("手持空轴送回"),
|
||||
@@ -27,7 +28,8 @@ public enum TagNameEnum {
|
||||
ERROR_GX_IN_OUT("管芯满入空出异常处理"),
|
||||
AUTO_CALL_EMPTY_BY_CZZC("自动称重暂存位叫空"),
|
||||
AUTO_IN_HOT("自动创建入烘箱"),
|
||||
AUTO_IN_OUT("自动创建出烘箱"),
|
||||
AUTO_OUT_HOT("自动创建出烘箱"),
|
||||
ACS_OUT_HOT("ACS请求出烘箱"),
|
||||
ACS_FEEDBACK_TUBE_COMPLETE("ACS反馈管芯入库完成"),
|
||||
/**
|
||||
* 标记符号
|
||||
|
||||
@@ -2,12 +2,14 @@ package org.nl.wms.pda.mps.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.lucene.TagNameEnum;
|
||||
import org.nl.wms.pda.mps.service.BakingPdaService;
|
||||
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
|
||||
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
|
||||
@@ -19,13 +21,19 @@ import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.tasks.hot.InHotCachingTrussTask;
|
||||
import org.nl.wms.sch.task_manage.tasks.hot.InHotTrussTask;
|
||||
import org.nl.wms.util.PointUtils;
|
||||
import org.nl.wms.util.TaskUtils;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static org.nl.wms.util.TaskUtils.createVirtualContainer;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
@@ -64,10 +72,10 @@ public class BakingPdaServiceImpl implements BakingPdaService {
|
||||
throw new BadRequestException("点位 [" + pointCode + "] 对应的生箔工单不存在!");
|
||||
}
|
||||
if ("0".equals(quality)) {
|
||||
// 重复烘烤
|
||||
// 重复烘烤 - 待烘烤
|
||||
hotZcPoint.setPoint_status("2");
|
||||
} else {
|
||||
// 质检合格
|
||||
// 质检合格 - 待分切
|
||||
hotZcPoint.setPoint_status("4");
|
||||
}
|
||||
PointUtils.setUpdateByPC(hotZcPoint);
|
||||
@@ -129,35 +137,82 @@ public class BakingPdaServiceImpl implements BakingPdaService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject doModifyRawInfos(JSONObject param) {
|
||||
MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.RAW_INFO_UPDATE.getTag());
|
||||
log.info("手持修改温度/时间 - {}", param);
|
||||
// point_code, order_code, temperature, time
|
||||
String pointCode = param.getString("point_code");
|
||||
// 不一定有
|
||||
String orderCode = param.getString("order_code");
|
||||
// 收卷辊编码
|
||||
String rollCode = param.getString("roll_code");
|
||||
String temperature = param.getString("temperature");
|
||||
String rollType = param.getString("roll_type");
|
||||
String isBaking = param.getString("is_baking");
|
||||
String time = param.getString("time");
|
||||
SchBasePoint hotPoint = pointService.getById(pointCode);
|
||||
PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(orderCode);
|
||||
if (ObjectUtil.isEmpty(order)) {
|
||||
throw new BadRequestException("生箔工单不存在!");
|
||||
}
|
||||
LambdaUpdateWrapper<PdmBiRawfoilworkorder> lam = new LambdaUpdateWrapper<>();
|
||||
lam.set(PdmBiRawfoilworkorder::getBaking_temperature, temperature)
|
||||
.set(PdmBiRawfoilworkorder::getBaking_time, time)
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_optid, SecurityUtils.getCurrentUserId())
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_optname, SecurityUtils.getCurrentNickName())
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_time, DateUtil.now())
|
||||
.set(PdmBiRawfoilworkorder::getRoll_type, rollType)
|
||||
.set(PdmBiRawfoilworkorder::getIs_baking, isBaking)
|
||||
.eq(PdmBiRawfoilworkorder::getContainer_name, orderCode);
|
||||
rawfoilworkorderService.update(lam);
|
||||
if (!hotPoint.getMaterial_code().equals(orderCode)) {
|
||||
// 点位绑定的与扫码的不一样,以扫码的数据为准, 修改点位信息。
|
||||
hotPoint.setMaterial_code(order.getContainer_name());
|
||||
PointUtils.setUpdateByPC(hotPoint);
|
||||
pointService.updateById(hotPoint);
|
||||
if (ObjectUtil.isNotEmpty(orderCode)) {
|
||||
PdmBiRawfoilworkorder order = rawfoilworkorderService.getByContainerName(orderCode);
|
||||
if (ObjectUtil.isEmpty(order)) {
|
||||
throw new BadRequestException("生箔工单不存在!");
|
||||
}
|
||||
LambdaUpdateWrapper<PdmBiRawfoilworkorder> lam = new LambdaUpdateWrapper<>();
|
||||
lam.set(PdmBiRawfoilworkorder::getBaking_temperature, temperature)
|
||||
.set(PdmBiRawfoilworkorder::getBaking_time, time)
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_optid, SecurityUtils.getCurrentUserId())
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_optname, SecurityUtils.getCurrentNickName())
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_time, DateUtil.now())
|
||||
.set(PdmBiRawfoilworkorder::getRoll_type, rollType)
|
||||
.set(PdmBiRawfoilworkorder::getIs_baking, isBaking)
|
||||
.eq(PdmBiRawfoilworkorder::getContainer_name, orderCode);
|
||||
rawfoilworkorderService.update(lam);
|
||||
if (!hotPoint.getMaterial_code().equals(orderCode)) {
|
||||
// 点位绑定的与扫码的不一样,以扫码的数据为准, 修改点位信息。
|
||||
hotPoint.setMaterial_code(order.getContainer_name());
|
||||
PointUtils.setUpdateByPC(hotPoint);
|
||||
pointService.updateById(hotPoint);
|
||||
}
|
||||
} else {
|
||||
// 如果没有传母卷号,对比收卷辊编码
|
||||
if (!hotPoint.getVehicle_code().equals(rollCode)) {
|
||||
List<String> collect = Stream.of(hotPoint.getVehicle_code(), rollCode).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList());
|
||||
// 替换,吧之前绑定这个收卷辊的卷全部结束
|
||||
LambdaUpdateWrapper<PdmBiRawfoilworkorder> lam = new LambdaUpdateWrapper<>();
|
||||
lam.set(PdmBiRawfoilworkorder::getRealend_time, DateUtil.now())
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_optid, SecurityUtils.getCurrentUserId())
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_optname, SecurityUtils.getCurrentNickName())
|
||||
.set(PdmBiRawfoilworkorder::getUpdate_time, DateUtil.now())
|
||||
.set(PdmBiRawfoilworkorder::getStatus, "09")
|
||||
.set(PdmBiRawfoilworkorder::getFinish_type, "02")
|
||||
.in(PdmBiRawfoilworkorder::getWind_roll, collect);
|
||||
rawfoilworkorderService.update(lam);
|
||||
// 创建新的并绑定到点位中
|
||||
PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder();
|
||||
rawOrder.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr());
|
||||
rawOrder.setContainer_name(ObjectUtil.isNotEmpty(orderCode) ? orderCode : createVirtualContainer(rollCode, "yyMMddHHmmss", "x"));
|
||||
rawOrder.setResource_name("x");
|
||||
rawOrder.setMfg_order_name("$$$$");
|
||||
rawOrder.setProduct_name("锂电");
|
||||
rawOrder.setDescription("锂电");
|
||||
rawOrder.setTheory_height(BigDecimal.valueOf(2000));
|
||||
rawOrder.setUp_coiler_date(DateUtil.now());
|
||||
rawOrder.setStatus("04");
|
||||
rawOrder.setIs_baking(isBaking);
|
||||
rawOrder.setRoll_type(rollType);
|
||||
rawOrder.setWind_roll(rollCode);
|
||||
rawOrder.setBaking_time(time);
|
||||
TaskUtils.setRawOrderCreateByDefault(rawOrder);
|
||||
rawOrder.setProduct_area("A1");
|
||||
rawOrder.setOrder_type("1");
|
||||
rawfoilworkorderService.save(rawOrder);
|
||||
// 点位绑定的与扫码的不一样,以扫码的数据为准, 修改点位信息。
|
||||
hotPoint.setMaterial_code(rawOrder.getContainer_name());
|
||||
hotPoint.setVehicle_code(rollCode);
|
||||
PointUtils.setUpdateByPC(hotPoint);
|
||||
pointService.updateById(hotPoint);
|
||||
orderCode = rawOrder.getContainer_name();
|
||||
}
|
||||
}
|
||||
|
||||
// 创建入烘箱/入暂存
|
||||
log.info("开始创建桁架任务入烘箱对接位....");
|
||||
List<SchBaseTask> schBaseTasks = taskService.checkHaveTask(pointCode);
|
||||
@@ -167,6 +222,7 @@ public class BakingPdaServiceImpl implements BakingPdaService {
|
||||
JSONObject taskParam = new JSONObject();
|
||||
taskParam.put("order_code", orderCode);
|
||||
taskParam.put("device_code", pointCode);
|
||||
taskParam.put("vehicle_code", rollCode);
|
||||
taskParam.put("config_code", "InHotTrussTask");
|
||||
taskParam.put("create_mode", GeneralDefinition.PDA_CREATION);
|
||||
inHotTrussTask.apply(taskParam);
|
||||
|
||||
@@ -32,6 +32,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import static org.nl.wms.util.TaskUtils.createVirtualContainer;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Description:
|
||||
@@ -170,6 +172,8 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
||||
String pointCode = param.getString("point_code");
|
||||
// 母卷号
|
||||
String orderCode = param.getString("order_code");
|
||||
// 收卷辊编码
|
||||
String rollCode = param.getString("roll_code");
|
||||
String isCallEmpty = param.getString("is_call_empty");
|
||||
// 判断是否存在任务
|
||||
List<SchBaseTask> unFinishTasks = taskService.checkHaveTask(pointCode);
|
||||
@@ -185,7 +189,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
||||
// todo: 暂时写死,创建工单
|
||||
PdmBiRawfoilworkorder rawOrder = new PdmBiRawfoilworkorder();
|
||||
rawOrder.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr());
|
||||
rawOrder.setContainer_name(orderCode);
|
||||
rawOrder.setContainer_name(ObjectUtil.isNotEmpty(orderCode) ? orderCode : createVirtualContainer(rollCode, "yyMMddHHmmss", sbPoint.getExt_code()));
|
||||
rawOrder.setResource_name(sbPoint.getExt_code());
|
||||
rawOrder.setMfg_order_name("$$$$");
|
||||
rawOrder.setProduct_name("锂电");
|
||||
@@ -193,6 +197,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
||||
rawOrder.setTheory_height(BigDecimal.valueOf(2000));
|
||||
rawOrder.setUp_coiler_date(DateUtil.now());
|
||||
rawOrder.setStatus("01");
|
||||
rawOrder.setWind_roll(rollCode);
|
||||
TaskUtils.setRawOrderCreateByDefault(rawOrder);
|
||||
rawOrder.setProduct_area(sbPoint.getProduct_area());
|
||||
rawOrder.setOrder_type("1");
|
||||
@@ -200,9 +205,10 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService {
|
||||
// 组织请求任务参数
|
||||
// 当前生箔的点位
|
||||
param.put("device_code", pointCode);
|
||||
param.put("order_code", rawOrder.getContainer_name());
|
||||
param.put("workorder_id", rawOrder.getWorkorder_id());
|
||||
param.put("ext_code", sbPoint.getExt_code());
|
||||
// param.put("vehicle_code2", sbPoint.getExt_code());
|
||||
param.put("vehicle_code2", rollCode);
|
||||
param.put("create_mode", GeneralDefinition.PDA_CREATION);
|
||||
// 判断是否呼叫空辊
|
||||
if (GeneralDefinition.YES.equals(isCallEmpty)) {
|
||||
|
||||
@@ -91,6 +91,7 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
|
||||
log.info("手持呼叫母卷:{}", param);
|
||||
// param: workorder_id, zc_point, point_code, vehicle_code, resource_name
|
||||
String workorderId = param.getString("workorder_id");
|
||||
PdmBiRawfoilworkorder one = rawfoilworkorderService.getById(workorderId);
|
||||
// 分切机满料位
|
||||
String pointCode = param.getString("point_code");
|
||||
String zcPoint = param.getString("zc_point");
|
||||
@@ -115,7 +116,7 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
|
||||
// 标记一下, 0: 只做呼叫母卷,1:呼叫母卷还要送空辊
|
||||
param.put("is_flag", "01".equals(cutPoint.getFull_point_status()) ? "0" : "1");
|
||||
param.put("vehicle_code", cutPoint.getFull_vehicle_code());
|
||||
param.put("vehicle_code2", param.getString("resource_name"));
|
||||
param.put("vehicle_code2", one.getWind_roll());
|
||||
slitterUpTrussTask.apply(param);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("message", "操作成功!");
|
||||
|
||||
@@ -31,7 +31,7 @@ public class AutoCreateOutHotTask {
|
||||
private OutHotTrussTask outHotTrussTask;
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void run() {
|
||||
MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.AUTO_IN_OUT.getTag());
|
||||
MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.AUTO_OUT_HOT.getTag());
|
||||
log.info("自动创建出烘箱任务开始执行...");
|
||||
// 获取烘箱内部状态:烘烤完毕暂存中(04)、03但不需要烘烤的点位
|
||||
List<StIvtHotpointivt> hotPoints = hotpointivtService.getUnionBakedFinishPoint();
|
||||
|
||||
@@ -6,20 +6,22 @@ package org.nl.wms.sch.task_manage.core.constant;
|
||||
* @Date: 2024/9/2
|
||||
*/
|
||||
public interface RegionConstant {
|
||||
/** A1区域 */
|
||||
String A1 = "A1";
|
||||
/** A1成品称重暂存区 */
|
||||
public final static String REGION_A1_CZZC = "A1-CZZC";
|
||||
String REGION_A1_CZZC = "A1-CZZC";
|
||||
/** A1废箔区域 */
|
||||
public final static String REGION_A1_FB = "A1-FB";
|
||||
String REGION_A1_FB = "A1-FB";
|
||||
/** A1废箔区域 */
|
||||
public final static String REGION_A1_GXK = "A1-GXK";
|
||||
String REGION_A1_GXK = "A1-GXK";
|
||||
/** A1烘箱暂存区域 */
|
||||
public final static String REGION_A1_HXZC = "A1-HXZC";
|
||||
String REGION_A1_HXZC = "A1-HXZC";
|
||||
/** A1电梯区域 */
|
||||
public final static String REGION_A1_LIFT_AREA = "A1-LIFT-AREA";
|
||||
String REGION_A1_LIFT_AREA = "A1-LIFT-AREA";
|
||||
/** A1收卷辊库区 */
|
||||
public final static String REGION_A1_SJGK = "A1-SJGK";
|
||||
String REGION_A1_SJGK = "A1-SJGK";
|
||||
/** A1样品检测区域 */
|
||||
public final static String REGION_A1_YPJC = "A1-YPJC";
|
||||
String REGION_A1_YPJC = "A1-YPJC";
|
||||
/** A1装箱暂存区 */
|
||||
public final static String REGION_A1_ZXZC = "A1-ZXZC";
|
||||
String REGION_A1_ZXZC = "A1-ZXZC";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package org.nl.wms.sch.task_manage.core.constant.hot;
|
||||
|
||||
/**
|
||||
* 烘烤常量
|
||||
* @Author: lyd
|
||||
* @Date: 2024/10/28
|
||||
*/
|
||||
public class HotConstant {
|
||||
/** 点位类型:点位 */
|
||||
public final static String POINT_TYPE_EMPTY = "1";
|
||||
/** 点位类型:烘箱对接位 */
|
||||
public final static String POINT_TYPE_HOT_DOCKING = "5";
|
||||
/** 点位状态:空位 */
|
||||
public final static String POINT_STATUS_EMPTY = "1";
|
||||
/** 点位状态:待质检 */
|
||||
public final static String POINT_STATUS_WAIT_QUALITY = "3";
|
||||
|
||||
/** 烘箱点位(非对接位)状态 -空位 */
|
||||
public final static String HOT_STATUS_EMPTY = "01";
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package org.nl.wms.sch.task_manage.core.constant.raw;
|
||||
|
||||
/**
|
||||
* 生箔所使用的常量
|
||||
* @Author: lyd
|
||||
* @Date: 2024/10/28
|
||||
*/
|
||||
public class RawConstant {
|
||||
}
|
||||
@@ -6,19 +6,21 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.lucene.TagNameEnum;
|
||||
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
|
||||
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
|
||||
import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService;
|
||||
import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task_manage.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
|
||||
import org.nl.wms.sch.task_manage.core.constant.hot.HotConstant;
|
||||
import org.nl.wms.sch.task_manage.service.BakingOperationService;
|
||||
import org.nl.wms.sch.task_manage.tasks.hot.InHotDockingTrussTask;
|
||||
import org.nl.wms.sch.task_manage.tasks.hot.InHotTrussTask;
|
||||
import org.nl.wms.sch.task_manage.tasks.hot.OutHotToDockingTrussTask;
|
||||
import org.nl.wms.sch.task_manage.tasks.hot.OutHotTrussTask;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -51,6 +53,7 @@ public class BakingOperationServiceImpl implements BakingOperationService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject acsRequestOutHotTask(JSONObject param) {
|
||||
MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.ACS_OUT_HOT.getTag());
|
||||
log.info("acs请求出烘箱:{}", param);
|
||||
// device_code
|
||||
// 校验任务
|
||||
@@ -60,7 +63,7 @@ public class BakingOperationServiceImpl implements BakingOperationService {
|
||||
throw new BadRequestException("点位[" + deviceCode + "]已经存在任务!");
|
||||
}
|
||||
StIvtHotpointivt hotPoint = hotpointivtService.getPointByCode(deviceCode, false);
|
||||
if ("01".equals(hotPoint.getPoint_status())) {
|
||||
if (HotConstant.HOT_STATUS_EMPTY.equals(hotPoint.getPoint_status())) {
|
||||
throw new BadRequestException("烘箱「" + deviceCode + "」系统库存为空!");
|
||||
}
|
||||
param.put("config_code", "OutHotToDockingTrussTask");
|
||||
@@ -158,7 +161,7 @@ public class BakingOperationServiceImpl implements BakingOperationService {
|
||||
taskParam.put("config_code", "InHotDockingTrussTask");
|
||||
taskParam.put("create_mode", GeneralDefinition.ACS_CREATION);
|
||||
// 满卷的收卷辊编码放在AGV任务的载具2上
|
||||
// taskParam.put("vehicle_code", taskObj.getVehicle_code2());
|
||||
taskParam.put("vehicle_code", taskObj.getVehicle_code2());
|
||||
inHotDockingTrussTask.apply(taskParam);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
|
||||
@@ -22,9 +22,10 @@ import java.util.List;
|
||||
|
||||
import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus;
|
||||
import static org.nl.wms.util.TaskUtils.setUpdateByPC;
|
||||
import static org.nl.wms.sch.task_manage.core.constant.hot.HotConstant.*;
|
||||
|
||||
/**
|
||||
* 入烘箱对接位桁架任务类
|
||||
* 入烘箱对接位桁架任务类(等待修改信息)
|
||||
* @Author: lyd
|
||||
* @Date: 2024/9/5
|
||||
*/
|
||||
@@ -49,8 +50,8 @@ public class InHotDockingTrussTask extends AbstractTask {
|
||||
public void createCompletion(SchBaseTask task) {
|
||||
TaskUtils.taskLock(RegionConstant.REGION_A1_HXZC + "5", () -> {
|
||||
// 找个对接位(状态是空的,没有任务的)
|
||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint("A1", RegionConstant.REGION_A1_HXZC,
|
||||
"5", "1");
|
||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
|
||||
POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY);
|
||||
if (endPoints.size() == 0) {
|
||||
throw new BadRequestException("没有可用的烘箱对接位!");
|
||||
}
|
||||
@@ -75,6 +76,7 @@ public class InHotDockingTrussTask extends AbstractTask {
|
||||
SchBasePoint endPoint = pointService.getById(endPointCode);
|
||||
endPoint.setPoint_status("5");
|
||||
endPoint.setMaterial_code(orderCode);
|
||||
endPoint.setVehicle_code(taskObj.getVehicle_code());
|
||||
PointUtils.setUpdateByType(endPoint, taskFinishedType);
|
||||
pointService.updateById(endPoint);
|
||||
// 完成
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.nl.wms.sch.task_manage.tasks.hot;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
@@ -28,6 +27,7 @@ import java.util.List;
|
||||
import static org.nl.wms.sch.task_manage.core.constant.RegionConstant.REGION_A1_HXZC;
|
||||
import static org.nl.wms.util.PointUtils.hotClearPoint;
|
||||
import static org.nl.wms.util.TaskUtils.*;
|
||||
import static org.nl.wms.sch.task_manage.core.constant.hot.HotConstant.*;
|
||||
|
||||
/**
|
||||
* 出烘箱到对接位质检桁架任务
|
||||
@@ -55,8 +55,8 @@ public class OutHotToDockingTrussTask extends AbstractTask {
|
||||
public void createCompletion(SchBaseTask task) {
|
||||
TaskUtils.taskLock(REGION_A1_HXZC + "5", () -> {
|
||||
// 从烘箱对接位中找一个空位
|
||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint("A1", RegionConstant.REGION_A1_HXZC,
|
||||
"5", "1");
|
||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
|
||||
POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY);
|
||||
if (endPoints.size() == 0) {
|
||||
throw new BadRequestException("没有可用的烘箱对接位!");
|
||||
}
|
||||
@@ -91,8 +91,9 @@ public class OutHotToDockingTrussTask extends AbstractTask {
|
||||
SchBasePoint endPoint = pointService.getById(endPointCode);
|
||||
// 终点设置值
|
||||
endPoint.setMaterial_code(order.getContainer_name());
|
||||
endPoint.setVehicle_code(order.getWind_roll());
|
||||
endPoint.setSource_id(request.getString("workorder_id"));
|
||||
endPoint.setPoint_status("3");
|
||||
endPoint.setPoint_status(POINT_STATUS_WAIT_QUALITY);
|
||||
PointUtils.setUpdateByType(endPoint, taskFinishedType);
|
||||
pointService.updateById(endPoint);
|
||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||
|
||||
@@ -8,7 +8,6 @@ import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder;
|
||||
import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService;
|
||||
import org.nl.wms.pdm.ivt.raw.service.IstIvtSbpointivtService;
|
||||
import org.nl.wms.pdm.ivt.raw.service.dao.StIvtSbpointivt;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
@@ -28,6 +27,8 @@ import java.util.List;
|
||||
|
||||
import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus;
|
||||
import static org.nl.wms.util.TaskUtils.setUpdateByPC;
|
||||
import static org.nl.wms.sch.task_manage.core.constant.RegionConstant.A1;
|
||||
import static org.nl.wms.sch.task_manage.core.constant.hot.HotConstant.*;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
@@ -66,12 +67,12 @@ public class RawDownAGVTask extends AbstractTask {
|
||||
// 收卷辊库出口
|
||||
String startPointCode = requestObj.getString("start_point_code");
|
||||
// 查找烘箱对接位可用的位置(没货、没任务、没禁用)
|
||||
List<SchBasePoint> hxPoints = pointService.getHotNotTaskPoint("A1", HX_REGION,
|
||||
"1", "1");
|
||||
List<SchBasePoint> hxPoints = pointService.getHotNotTaskPoint(A1, HX_REGION, POINT_TYPE_EMPTY, POINT_STATUS_EMPTY);
|
||||
if (hxPoints.size() == 0) {
|
||||
throw new BadRequestException("烘箱没有可以用的对接位!");
|
||||
}
|
||||
SchBasePoint hxPoint = hxPoints.get(0);
|
||||
// flag由上游标记,用来判断创建四点还是两任务
|
||||
if ("1".equals(flag)) {
|
||||
// 创建四点任务:先去收卷辊出口在到生箔位,在从生箔到烘箱对接位
|
||||
// StIvtSbpointivt pointCode = sbpointivtService.getByPointCode(deviceCode, false);
|
||||
|
||||
@@ -94,7 +94,6 @@ public class SlitterUpTrussTask extends AbstractTask {
|
||||
|
||||
// 创建AGV任务
|
||||
log.info("点位{}更新完毕,创建AGV任务给分切机上料", startPointCode);
|
||||
PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(workorderId);
|
||||
JSONObject taskParam = new JSONObject();
|
||||
taskParam.put("device_code", endPointCode);
|
||||
taskParam.put("cut_point", requestObj.getString("device_code"));
|
||||
@@ -103,7 +102,7 @@ public class SlitterUpTrussTask extends AbstractTask {
|
||||
// 空轴的编码
|
||||
taskParam.put("vehicle_code", taskObj.getVehicle_code());
|
||||
// 满轴的载具号
|
||||
taskParam.put("vehicle_code2", order.getResource_name());
|
||||
taskParam.put("vehicle_code2", taskObj.getVehicle_code2());
|
||||
taskParam.put("workorder_id", workorderId);
|
||||
taskParam.put("config_code", "SlitterUpAGVTask");
|
||||
taskParam.put("up_task_code", taskObj.getTask_code());
|
||||
|
||||
@@ -387,4 +387,15 @@ public class TaskUtils {
|
||||
point.setUpdate_optname(SecurityUtils.getCurrentUsername());
|
||||
point.setUpdate_time(DateUtil.now());
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建虚拟的母卷号
|
||||
* @param rollCode 收卷辊编码
|
||||
* @param format 时间格式
|
||||
* @param pointCode 点位编码
|
||||
* @return
|
||||
*/
|
||||
public static String createVirtualContainer(String rollCode, String format, String pointCode) {
|
||||
return "R-" + pointCode + "-" + TaskUtils.getDateTime(format) + "-" + rollCode;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,12 +244,13 @@
|
||||
<el-table-column prop="status" label="工单状态" :min-width="flexWidth('status',crud.data,'工单状态')" :formatter="formatStatusName" />
|
||||
<el-table-column prop="container_name" label="母卷号" :min-width="flexWidth('container_name',crud.data,'母卷号')" />
|
||||
<el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('point_code',crud.data,'点位编码')" />
|
||||
<el-table-column prop="wind_roll" label="收卷辊编号" :min-width="flexWidth('wind_roll',crud.data,'收卷辊编号')" />
|
||||
<el-table-column prop="resource_name" label="机台编码" :min-width="flexWidth('resource_name',crud.data,'机台编码')" />
|
||||
<el-table-column prop="product_name" label="产品编码" :min-width="flexWidth('product_name',crud.data,'产品编码')" />
|
||||
<el-table-column prop="theory_height" label="理论长度" :min-width="flexWidth('theory_height',crud.data,'理论长度')" />
|
||||
<el-table-column prop="realstart_time" label="开始时间" :min-width="flexWidth('realstart_time',crud.data,'开始时间')" />
|
||||
<el-table-column prop="realend_time" label="结束时间" :min-width="flexWidth('realend_time',crud.data,'结束时间')" />
|
||||
<el-table-column prop="productin_qty" label="重量" :min-width="flexWidth('productin_qty',crud.data,'重量', 30)" :formatter="crud.formatNum3" />
|
||||
<!-- <el-table-column prop="productin_qty" label="重量" :min-width="flexWidth('productin_qty',crud.data,'重量', 30)" :formatter="crud.formatNum3" />-->
|
||||
<el-table-column prop="agvno" label="车号" :min-width="flexWidth('agvno',crud.data,'车号')" />
|
||||
<el-table-column prop="product_area" label="生产区域" :min-width="flexWidth('product_area',crud.data,'生产区域')" />
|
||||
<el-table-column prop="is_baking" label="请求烘烤" :min-width="flexWidth('is_baking',crud.data,'请求烘烤')" :formatter="formatBakeIsOrNot" />
|
||||
|
||||
Reference in New Issue
Block a user