fix: 手持货架清空问题,组盘位置改为分情况不同位置
This commit is contained in:
@@ -41,6 +41,6 @@ public class LogMessageConstant {
|
||||
/** 背景颜色:黄色 */
|
||||
public final static String BACKGROUND_YELLOW = "\u001B[43m";
|
||||
/** 索引路径 */
|
||||
public final static String INDEX_DIR = "E:\\lucene\\index";
|
||||
public final static String INDEX_DIR = "D:\\lucene\\index";
|
||||
|
||||
}
|
||||
|
||||
@@ -595,23 +595,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
}
|
||||
// 泥料
|
||||
// todo: 暂时写死
|
||||
// String rawMaterialCode = productionTask.getRaw_material_code();
|
||||
String rawMaterialCode = one.getRedundance_material_code();
|
||||
String rawMaterialCode = productionTask.getRaw_material_code();
|
||||
// String rawMaterialCode = one.getRedundance_material_code();
|
||||
if (!rawMaterialCode.equals(one.getRedundance_material_code())) {
|
||||
throw new BadRequestException("物料不一样!");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(basePoint)) {
|
||||
// 记录当前位置
|
||||
one.setPoint_code(basePoint.getPoint_code()); // 当前位置
|
||||
one.setPoint_name(basePoint.getPoint_name());
|
||||
one.setMove_way(one.getMove_way() + " -> " + basePoint.getPoint_code());
|
||||
}
|
||||
// 判断是否静置完成
|
||||
if (CommonUtils.isStandingFinish(one.getInstorage_time(), one.getStanding_time())) {
|
||||
if (ObjectUtil.isNotEmpty(basePoint)) {
|
||||
// 记录当前位置
|
||||
one.setPoint_code(basePoint.getPoint_code()); // 当前位置
|
||||
one.setPoint_name(basePoint.getPoint_name());
|
||||
one.setMove_way(one.getMove_way() + " -> " + basePoint.getPoint_code());
|
||||
}
|
||||
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
TaskUtils.setGroupUpdateByAcs(one);
|
||||
vehiclematerialgroupService.updateById(one);
|
||||
// 记录泥料
|
||||
MesMudConsumptionDto mesMudConsumptionDto = new MesMudConsumptionDto();
|
||||
mesMudConsumptionDto.setMSGID(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
@@ -641,14 +638,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
taskResponse.setIs_standing_finish(GeneralDefinition.YES);
|
||||
taskResponse.setMessage("静置完成");
|
||||
taskResponse.setWeight(one.getMaterial_weight().toString());
|
||||
return taskResponse;
|
||||
} else {
|
||||
taskResponse.setIs_standing_finish(GeneralDefinition.NO);
|
||||
// taskResponse.setMessage("静置未完成,预计静置完成时间:");
|
||||
taskResponse.setMessage(CommonUtils.remainStandingFinishTime(one.getInstorage_time(),
|
||||
one.getStanding_time()));
|
||||
return taskResponse;
|
||||
}
|
||||
TaskUtils.setGroupUpdateByAcs(one);
|
||||
vehiclematerialgroupService.updateById(one);
|
||||
return taskResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -364,9 +364,11 @@ public class PdaServiceImpl implements PdaService {
|
||||
if (ObjectUtil.isNotEmpty(basePoint.getVehicle_code())) {
|
||||
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(basePoint.getVehicle_code(),
|
||||
GeneralDefinition.STEEL_TRAY, GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||
TaskUtils.setGroupUpdateByPC(groupInfo);
|
||||
groupInfo.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
vehiclematerialgroupService.updateById(groupInfo);
|
||||
if (ObjectUtil.isNotEmpty(groupInfo)) {
|
||||
TaskUtils.setGroupUpdateByPC(groupInfo);
|
||||
groupInfo.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
vehiclematerialgroupService.updateById(groupInfo);
|
||||
}
|
||||
}
|
||||
// 空位
|
||||
PointUtils.clearPoint(basePoint);
|
||||
|
||||
@@ -294,14 +294,14 @@ public abstract class AbstractTask {
|
||||
task.setWorkshop_code(taskConfig.getWorkshop_code()); // 车间编码
|
||||
// 设置起/终点
|
||||
this.setTaskPoint(taskConfig, task, apply_point_code);
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(this.setGroupPlate(param));
|
||||
task.setRequest_param(JSONObject.toJSONString(param));
|
||||
TaskUtils.setCreateByAcsOrPda(task, param); // 设置创建人信息
|
||||
// 3、判断是否直接找点下发
|
||||
if (taskConfig.getIs_immediate_create()) {
|
||||
if (taskConfig.getIs_immediate_create()) { // 立即创建吧组盘放到具体位置,免得重复创建
|
||||
this.createCompletion(task);
|
||||
} else {
|
||||
} else { // 不需要立即创建,需要立马组盘
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(this.setGroupPlate(param));
|
||||
taskService.save(task); // 创建一条单点任务。
|
||||
this.create();
|
||||
}
|
||||
|
||||
@@ -58,14 +58,16 @@ public class CTQKTask extends AbstractTask {
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
for (SchBaseTask task : tasks) {
|
||||
TaskUtils.setUpdateByAcs(task); // 修改修改者
|
||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList());
|
||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(","))
|
||||
.collect(Collectors.toList());
|
||||
// 找起点
|
||||
SchBasePoint point = findStartPoint(startRegionStr);
|
||||
if (ObjectUtil.isEmpty(point)) {
|
||||
task.setRemark("暂无托盘!");
|
||||
taskService.updateById(task);
|
||||
// 消息通知
|
||||
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
||||
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getPoint_code2(),
|
||||
NoticeTypeEnum.WARN.getCode());
|
||||
continue;
|
||||
}
|
||||
// 设置终点并修改创建成功状态
|
||||
@@ -74,14 +76,11 @@ public class CTQKTask extends AbstractTask {
|
||||
task.setVehicle_qty(point.getVehicle_qty());
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
taskService.updateById(task);
|
||||
|
||||
// 点位信息更新
|
||||
point.setIng_task_code(task.getTask_code());
|
||||
pointService.update(point);
|
||||
PointUtils.setUpdateByAcs(point);
|
||||
pointService.updateById(point);
|
||||
|
||||
//下发
|
||||
//this.renotifyAcs(task);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,8 +90,9 @@ public class CTQKTask extends AbstractTask {
|
||||
// 配置信息
|
||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
TaskUtils.setUpdateByAcs(task); // 修改修改者
|
||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList());
|
||||
TaskUtils.setUpdateByAcs(task);
|
||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(","))
|
||||
.collect(Collectors.toList());
|
||||
// 找起点
|
||||
SchBasePoint point = findStartPoint(startRegionStr);
|
||||
if (ObjectUtil.isEmpty(point)) {
|
||||
@@ -107,7 +107,7 @@ public class CTQKTask extends AbstractTask {
|
||||
task.setVehicle_qty(point.getVehicle_qty());
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
taskService.save(task);
|
||||
|
||||
// 点位更新
|
||||
point.setIng_task_code(task.getTask_code());
|
||||
pointService.update(point);
|
||||
PointUtils.setUpdateByAcs(point);
|
||||
@@ -135,7 +135,6 @@ public class CTQKTask extends AbstractTask {
|
||||
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||
throw new BadRequestException("该任务已取消!");
|
||||
}
|
||||
|
||||
// 根据传来的类型去对任务进行操作
|
||||
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||
@@ -168,12 +167,11 @@ public class CTQKTask extends AbstractTask {
|
||||
}
|
||||
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||
}
|
||||
|
||||
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||
// 获取参数
|
||||
String startPoint = taskObj.getPoint_code1(); // 获取起点
|
||||
String endPoint = taskObj.getPoint_code2(); // 获取起点
|
||||
SchBasePoint startPointObj = pointService.getById(startPoint);
|
||||
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||
SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1());
|
||||
SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2());
|
||||
// 起点清空
|
||||
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
||||
PointUtils.setUpdateByType(startPointObj, taskFinishedType);
|
||||
@@ -193,10 +191,10 @@ public class CTQKTask extends AbstractTask {
|
||||
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||
taskService.updateById(taskObj);
|
||||
}
|
||||
|
||||
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||
// 获取参数
|
||||
String startPoint = taskObj.getPoint_code1(); // 获取起点
|
||||
SchBasePoint startPointObj = pointService.getById(startPoint);
|
||||
SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1());
|
||||
// 起点解锁
|
||||
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
||||
startPointObj.setIng_task_code("");
|
||||
|
||||
@@ -48,7 +48,6 @@ public class DTSKTask extends AbstractTask {
|
||||
@Autowired
|
||||
private DTKMapper dtkMapper;
|
||||
|
||||
|
||||
@Override
|
||||
protected void create() throws BadRequestException {
|
||||
// 获取任务
|
||||
@@ -66,7 +65,7 @@ public class DTSKTask extends AbstractTask {
|
||||
task.setRemark("未找到所需点位!");
|
||||
taskService.updateById(task);
|
||||
// 消息通知
|
||||
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(),
|
||||
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getPoint_code1(),
|
||||
NoticeTypeEnum.WARN.getCode());
|
||||
continue;
|
||||
}
|
||||
@@ -80,9 +79,6 @@ public class DTSKTask extends AbstractTask {
|
||||
point.setIng_task_code(task.getTask_code());
|
||||
PointUtils.setUpdateByAcs(point);
|
||||
pointService.updateById(point);
|
||||
|
||||
//下发
|
||||
//this.renotifyAcs(task);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,5 +11,11 @@ import java.util.List;
|
||||
*/
|
||||
public interface DTKMapper {
|
||||
List<SchBasePoint> findPointForDTSK(List<String> regionCode);
|
||||
|
||||
/**
|
||||
* 拆盘机找空盘
|
||||
* @param regionCode
|
||||
* @return
|
||||
*/
|
||||
List<SchBasePoint> findPointForCTQK(List<String> regionCode);
|
||||
}
|
||||
|
||||
@@ -101,23 +101,8 @@ public class FJMKTask extends AbstractTask {
|
||||
continue;
|
||||
}
|
||||
task.setPoint_code2(packagePoint.getPoint_code()); // 包装线
|
||||
List<ApplyDeviceDto> list = JSONArray.parseArray(jsonObject.getString("list"), ApplyDeviceDto.class);
|
||||
// 1 获取点位相应数量
|
||||
int sum = 0;
|
||||
for (ApplyDeviceDto applyDeviceDto : list) {
|
||||
sum += Integer.parseInt(applyDeviceDto.getQty());
|
||||
}
|
||||
// 2 获取剩余量 surplusNumber
|
||||
int surplusNumber = fjMapper.getInventoryQuantity(workorder.getMaterial_id());
|
||||
// 3 现有总数 total
|
||||
int total = sum + surplusNumber;
|
||||
// 4 获取木托盘需要多少块 needFullNumber
|
||||
String needFullNumberStr = fjMapper.getNeedFullNumber(workorder.getMaterial_id());
|
||||
int needFullNumber = TaskUtils.convertMultiply(needFullNumberStr);
|
||||
// 大于两托正常,大于1托给1,小于1托给2
|
||||
// 5 校验是否够码满一托/两托
|
||||
// 大于等于2就可以码
|
||||
if (total / needFullNumber >= 2) {
|
||||
if (jsonObject.getInteger("special_param") == 0) {
|
||||
/** 覆膜机木托盘位 */
|
||||
SchBasePoint LaminatePoint = findStartPoint(startRegionStr, jsonObject);
|
||||
if (ObjectUtil.isEmpty(LaminatePoint)) {
|
||||
@@ -133,7 +118,6 @@ public class FJMKTask extends AbstractTask {
|
||||
response = JSON.parseObject(responseParam);
|
||||
}
|
||||
response.put("fmj_device", LaminatePoint.getPoint_code());
|
||||
// 生产木托盘编码
|
||||
// 设置终点并修改创建成功状态
|
||||
task.setPoint_code3(LaminatePoint.getParent_point_code());
|
||||
task.setPoint_code4(startPoint);
|
||||
@@ -165,12 +149,12 @@ public class FJMKTask extends AbstractTask {
|
||||
.collect(Collectors.toList());
|
||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(","))
|
||||
.collect(Collectors.toList());
|
||||
String requestParam = task.getRequest_param();// 任务的其他数据
|
||||
JSONObject jsonObject = JSONObject.parseObject(requestParam);
|
||||
JSONObject jsonObject = JSONObject.parseObject(task.getRequest_param());
|
||||
String startPoint = task.getPoint_code1();
|
||||
// 获取起点 回写载具编码
|
||||
SchBasePoint startPointObj = pointService.getById(startPoint);
|
||||
task.setVehicle_code(startPointObj.getVehicle_code()); // 起点的木托盘编码
|
||||
// 起点的木托盘编码
|
||||
task.setVehicle_code(startPointObj.getVehicle_code());
|
||||
// 找终点
|
||||
/** 包装位 */
|
||||
SchBasePoint packagePoint = findNextPoint(nextRegionStr, jsonObject);
|
||||
@@ -180,7 +164,9 @@ public class FJMKTask extends AbstractTask {
|
||||
NoticeTypeEnum.WARN.getCode());
|
||||
throw new BadRequestException("包装线不可用!");
|
||||
}
|
||||
task.setPoint_code2(packagePoint.getPoint_code()); // 包装线
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(setGroupPlate(jsonObject));
|
||||
task.setPoint_code2(packagePoint.getPoint_code());
|
||||
// 大于等于2就可以码
|
||||
if (jsonObject.getInteger("special_param") == 0) {
|
||||
/** 覆膜机木托盘位 */
|
||||
|
||||
@@ -106,6 +106,10 @@ public class FJQZRKTask extends AbstractTask {
|
||||
NoticeTypeEnum.WARN.getCode());
|
||||
throw new BadRequestException("找不到可用的包装位!");
|
||||
}
|
||||
String requestParam = task.getRequest_param();
|
||||
JSONObject jsonObject = JSONObject.parseObject(requestParam);
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(setGroupPlate(jsonObject));
|
||||
// 设置终点并修改创建成功状态
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
|
||||
@@ -153,6 +153,8 @@ public class FJRKTask extends AbstractTask {
|
||||
PointUtils.setUpdateByAcs(basePoint);
|
||||
pointService.updateById(basePoint);
|
||||
}
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(setGroupPlate(jsonObject));
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
task.setRemark("");
|
||||
taskService.save(task);
|
||||
|
||||
@@ -110,6 +110,10 @@ public class FJSKTask extends AbstractTask {
|
||||
NoticeTypeEnum.WARN.getCode());
|
||||
throw new BadRequestException("叠盘架位置不可用!");
|
||||
}
|
||||
String requestParam = task.getRequest_param();
|
||||
JSONObject jsonObject = JSONObject.parseObject(requestParam);
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(setGroupPlate(jsonObject));
|
||||
// 设置终点并修改创建成功状态
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
task.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||
|
||||
@@ -113,6 +113,8 @@ public class FJSLTask extends AbstractTask {
|
||||
NoticeTypeEnum.WARN.getCode());
|
||||
throw new BadRequestException("分拣机械手[" + task.getPoint_code1() + "]未找到所需点位!");
|
||||
}
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(setGroupPlate(jsonObject));
|
||||
// 设置终点并修改创建成功状态
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
|
||||
@@ -194,6 +194,7 @@ public class HNMLTask extends AbstractTask {
|
||||
// *: 混碾无工单
|
||||
String materialCode = requestParam.getString("material_code"); // 混碾编码
|
||||
Assert.notNull(materialCode, "物料编码不能为空!");
|
||||
materialCode = materialCode.substring(0, 12);
|
||||
// 根据工单物料标识寻找点位
|
||||
List<SchBasePoint> points = hnMapper.findPointForHNMLAndWorkOrder(nextRegionStr, materialCode);
|
||||
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
|
||||
|
||||
@@ -110,7 +110,7 @@ public class CYZCTask extends AbstractTask {
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
|
||||
// 找终点
|
||||
String extGroupData = task.getExt_group_data();
|
||||
String extGroupData = task.getRequest_param();
|
||||
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
||||
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
||||
if (ObjectUtil.isEmpty(point)) {
|
||||
@@ -119,6 +119,8 @@ public class CYZCTask extends AbstractTask {
|
||||
NoticeTypeEnum.WARN.getCode());
|
||||
throw new BadRequestException("未找到钢托盘缓存区域空位!");
|
||||
}
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(setGroupPlate(jsonObject));
|
||||
// 设置终点并修改创建成功状态
|
||||
task.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
|
||||
@@ -131,6 +131,8 @@ public class YZSLTask extends AbstractTask {
|
||||
NoticeTypeEnum.WARN.getCode());
|
||||
throw new BadRequestException("压机[" + task.getPoint_code1() + "]未找到所需点位!");
|
||||
}
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(setGroupPlate(jsonObject));
|
||||
// 设置终点并修改创建成功状态
|
||||
task.setPoint_code2(point.getPoint_code());
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
|
||||
Reference in New Issue
Block a user