rev 更新困料区只存库存得只有25个

This commit is contained in:
2023-04-18 19:25:36 +08:00
parent 78bc90e6c2
commit b8ead96f16
4 changed files with 34 additions and 33 deletions

View File

@@ -115,9 +115,9 @@ public class HandlingTask extends AbstractAcsTask {
jsonEnd.put("point_status", "1");
jsonEnd.put("update_time", DateUtil.now());
pointTab.update(jsonEnd);
log.info("手持任务完成,从混碾机到一号接驳位,终点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,从混碾机到一号接驳位,终点解锁成功,任务号:{}", jsonTask.getString("task_code"));
Map<String, String> ivtMap = new HashMap<>();
ivtMap.put(taskObj.getString("vehicle_code"), taskObj.getString("material_id"));
ivtMap.put(jsonTask.getString("vehicle_code"), jsonTask.getString("material_id"));
try {
KlhcqIvt.add(ivtMap);
} catch (InterruptedException e) {
@@ -125,9 +125,9 @@ public class HandlingTask extends AbstractAcsTask {
log.error("手持任务完成,从混碾机到一号接驳位更新困料区库存出现异常!" + e.getMessage());
}
//修改终点库存
ivtEnd.put("vehicle_type", taskObj.getString("vehicle_type"));
ivtEnd.put("vehicle_code", taskObj.getString("vehicle_code"));
ivtEnd.put("material_id", taskObj.getString("material_id"));
ivtEnd.put("vehicle_type", jsonTask.getString("vehicle_type"));
ivtEnd.put("vehicle_code", jsonTask.getString("vehicle_code"));
ivtEnd.put("material_id", jsonTask.getString("material_id"));
ivtEnd.put("instorage_time", DateUtil.now());
ivtTab.update(ivtEnd);
} else {
@@ -144,7 +144,7 @@ public class HandlingTask extends AbstractAcsTask {
jsonEnd.put("task_id", "");
jsonEnd.put("update_time", DateUtil.now());
pointTab.update(jsonEnd);
log.info("手持任务完成,从混碾机到空盅暂存区,终点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,从混碾机到空盅暂存区,终点解锁成功,任务号:{}", jsonTask.getString("task_code"));
}
jsonStart.put("vehicle_type", "");
jsonStart.put("vehicle_code", "");
@@ -174,10 +174,10 @@ public class HandlingTask extends AbstractAcsTask {
jsonEnd.put("point_status", "1");
jsonEnd.put("update_time", DateUtil.now());
pointTab.update(jsonEnd);
log.info("手持任务完成,从空盅缓存区到一号接驳位,终点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,从空盅缓存区到一号接驳位,终点解锁成功,任务号:{}", jsonTask.getString("task_code"));
Map<String, String> ivtMap = new HashMap<>();
ivtMap.put(taskObj.getString("vehicle_code"), taskObj.getString("material_id"));
ivtMap.put(jsonTask.getString("vehicle_code"), jsonTask.getString("material_id"));
try {
KlhcqIvt.add(ivtMap);
} catch (InterruptedException e) {
@@ -186,9 +186,9 @@ public class HandlingTask extends AbstractAcsTask {
}
//修改终点库存
ivtEnd.put("vehicle_type", taskObj.getString("vehicle_type"));
ivtEnd.put("vehicle_code", taskObj.getString("vehicle_code"));
ivtEnd.put("material_id", taskObj.getString("material_id"));
ivtEnd.put("vehicle_type", jsonTask.getString("vehicle_type"));
ivtEnd.put("vehicle_code", jsonTask.getString("vehicle_code"));
ivtEnd.put("material_id", jsonTask.getString("material_id"));
ivtEnd.put("instorage_time", DateUtil.now());
ivtTab.update(ivtEnd);
//修改起点库存
@@ -206,7 +206,7 @@ public class HandlingTask extends AbstractAcsTask {
jsonStart.put("material_id", "");
jsonStart.put("update_time", DateUtil.now());
pointTab.update(jsonStart);
log.info("手持任务完成,从空盅缓存区到一号接驳位,起点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,从空盅缓存区到一号接驳位,起点解锁成功,任务号:{}", jsonTask.getString("task_code"));
} else if (StrUtil.equals(region_codeE, RegionTypeEnum.YLJQ.getCode())) {
//修改起点库存
@@ -225,7 +225,7 @@ public class HandlingTask extends AbstractAcsTask {
jsonStart.put("material_id", "");
jsonStart.put("update_time", DateUtil.now());
pointTab.update(jsonStart);
log.info("手持任务完成,从满料盅区到压力机区,起点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,从满料盅区到压力机区,起点解锁成功,任务号:{}", jsonTask.getString("task_code"));
//修改终点库存 即空盅对接位因为压力机叫完料 放到空盅对接位才上报放货完成 此时需要修改空盅对接位的库存 即
ivtEnd.put("vehicle_type", jsonTask.getString("vehicle_type"));
@@ -266,7 +266,7 @@ public class HandlingTask extends AbstractAcsTask {
jsonStart.put("task_id", "");
jsonStart.put("update_time", DateUtil.now());
pointTab.update(jsonStart);
log.info("手持任务完成,到混碾区,起点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,到混碾区,起点解锁成功,任务号:{}", jsonTask.getString("task_code"));
} else if (StrUtil.equals(region_codeS, RegionTypeEnum.GT4.getCode())) {
log.info("手持创建任务,从redis删除对应的载具信息,载具号:{},物料信息:{}", jsonTask.getString("vehicle_code"), redisUtils.get(jsonTask.getString("vehicle_code")));
@@ -288,7 +288,7 @@ public class HandlingTask extends AbstractAcsTask {
jsonEnd.put("point_status", "2");
jsonEnd.put("update_time", DateUtil.now());
pointTab.update(jsonEnd);
log.info("手持任务完成,起点为GT04,终点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,起点为GT04,终点解锁成功,任务号:{}", jsonTask.getString("task_code"));
//修改起点库存
ivtStart.put("vehicle_type", "");
ivtStart.put("vehicle_code", "");
@@ -304,7 +304,7 @@ public class HandlingTask extends AbstractAcsTask {
jsonStart.put("point_status", "1");
jsonStart.put("update_time", DateUtil.now());
pointTab.update(jsonStart);
log.info("手持任务完成,起点为GT04,起点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,起点为GT04,起点解锁成功,任务号:{}", jsonTask.getString("task_code"));
} else if (StrUtil.equals(RegionTypeEnum.GT4.getCode(), region_codeE)
&& StrUtil.equals(RegionTypeEnum.MLZZCQ.getCode(), region_codeS)) {
//修改终点库存
@@ -323,7 +323,7 @@ public class HandlingTask extends AbstractAcsTask {
jsonEnd.put("point_status", "2");
jsonEnd.put("update_time", DateUtil.now());
pointTab.update(jsonEnd);
log.info("手持任务完成,从满料盅到GT04,终点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,从满料盅到GT04,终点解锁成功,任务号:{}", jsonTask.getString("task_code"));
//修改起点库存
// ivtStart.put("vehicle_type", "");
// ivtStart.put("vehicle_code", "");
@@ -339,7 +339,7 @@ public class HandlingTask extends AbstractAcsTask {
// jsonStart.put("point_status", "1");
jsonStart.put("update_time", DateUtil.now());
pointTab.update(jsonStart);
log.info("手持任务完成,从满料盅到GT04,起点解锁成功,任务号:{}", taskObj.getString("task_code"));
log.info("手持任务完成,从满料盅到GT04,起点解锁成功,任务号:{}", jsonTask.getString("task_code"));
}
}
}

View File

@@ -114,11 +114,11 @@ public class TimingSendMaterialTask extends AbstractAcsTask {
if (jsonEnd.getString("region_code").equals(RegionTypeEnum.GT1.getCode())) {
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
redisUtils.set(taskObj.getString("vehicle_code"), StrUtil.isEmpty(taskObj.getString("material_id")) ? "" : taskObj.getString("material_id"));
redisUtils.set(taskObj.getString("vehicle_code") + "-ivt_qty", "1");
log.info("定时任务到GT01,往redis中存载具信息:载具号:{},物料信息:{}", taskObj.getString("vehicle_code"), taskObj.getString("material_id"));
redisUtils.set(jsonTask.getString("vehicle_code"), StrUtil.isEmpty(jsonTask.getString("material_id")) ? "" : jsonTask.getString("material_id"));
redisUtils.set(jsonTask.getString("vehicle_code") + "-ivt_qty", "1");
log.info("定时任务到GT01,往redis中存载具信息:载具号:{},物料信息:{}", jsonTask.getString("vehicle_code"), jsonTask.getString("material_id"));
Map<String, String> ivtMap = new HashMap<>();
ivtMap.put(taskObj.getString("vehicle_code"), taskObj.getString("material_id"));
ivtMap.put(jsonTask.getString("vehicle_code"), jsonTask.getString("material_id"));
try {
KlhcqIvt.add(ivtMap);
} catch (InterruptedException e) {
@@ -127,9 +127,9 @@ public class TimingSendMaterialTask extends AbstractAcsTask {
}
//修改终点库存
JSONObject ivtEnd = ivtTab.query("point_code = '" + jsonEnd.getString("point_code") + "'").uniqueResult(0);
ivtEnd.put("vehicle_type", taskObj.getString("vehicle_type"));
ivtEnd.put("vehicle_code", taskObj.getString("vehicle_code"));
ivtEnd.put("material_id", taskObj.getString("material_id"));
ivtEnd.put("vehicle_type", jsonTask.getString("vehicle_type"));
ivtEnd.put("vehicle_code", jsonTask.getString("vehicle_code"));
ivtEnd.put("material_id", jsonTask.getString("material_id"));
ivtEnd.put("instorage_time", DateUtil.now());
ivtTab.update(ivtEnd);
}

View File

@@ -18,11 +18,12 @@ import java.util.stream.Collectors;
* @author: geng by
* @createDate: 2023/4/12
* @Des 只是为了在入库到GT01时更新困料区库存
* 困料区26不存信息
*/
public class KlhcqIvt {
private static ArrayBlockingQueue<Map<String, String>> ivtQueue = new ArrayBlockingQueue<>(27);
private static ArrayBlockingQueue<Map<String, String>> ivtQueue = new ArrayBlockingQueue<>(26);
//困料区+1号滚筒接驳机数量
private static final Integer MAX_NUM = 27;
private static final Integer MAX_NUM = 26;
private static final Integer MIN_NUM = 0;
/**
@@ -36,7 +37,7 @@ public class KlhcqIvt {
//如果入库到GT01时 队列的大小为0 就去数据库中查找困料区库存信息和GT01信息 将信息赋值给队列
if (ivtQueue.size() == MIN_NUM) {
WQLObject wo = WQLObject.getWQLObject("st_ivt_structivt");
JSONArray resultJSONArray = wo.query("region_code = '" + RegionTypeEnum.KLZCQ.getCode() + "'", "point_code").getResultJSONArray(0);
JSONArray resultJSONArray = wo.query("region_code = '" + RegionTypeEnum.KLZCQ.getCode() + "' and point_code <> 'KLZC26'", "point_code").getResultJSONArray(0);
List<StructivtDto> structivtDtos = resultJSONArray.toJavaList(StructivtDto.class);
Map<String, String> ivt;
for (int i = 0; i < structivtDtos.size(); i++) {
@@ -51,7 +52,7 @@ public class KlhcqIvt {
ivt.put(structivtDto.getVehicle_code(), ObjectUtil.isEmpty(structivtDto.getMaterial_id()) ? "" : structivtDto.getMaterial_id().toString());
ivtQueue.put(ivt);
}
//此时队列中的数量为27个 可能困料区和GT01会存在空位的情况 执行此方法
//此时队列中的数量为26个 可能困料区和GT01会存在空位的情况 执行此方法
updateHasEmptyInMiddle();
//如果说困料区或GT01有空位 则不会执行该逻辑 不会从队列头部取出 因为此时队列的个数小于最大队列数
//如果说没有空位 则会执行该逻辑,从队列中取出头部的数据
@@ -69,10 +70,10 @@ public class KlhcqIvt {
*/
public static void updateIvt() {
WQLObject wo = WQLObject.getWQLObject("st_ivt_structivt");
JSONArray resultJSONArray = wo.query("region_code = '" + RegionTypeEnum.KLZCQ.getCode() + "'", "point_code").getResultJSONArray(0);
JSONArray resultJSONArray = wo.query("region_code = '" + RegionTypeEnum.KLZCQ.getCode() + "'and point_code <> 'KLZC26'", "point_code").getResultJSONArray(0);
List<StructivtDto> structivtDtos = resultJSONArray.toJavaList(StructivtDto.class);
List<Map<String, String>> ivtList = ivtQueue.stream().collect(Collectors.toList());
//因为队列大小是27 而困料区大小为26 队列的前26个为困料区信息 所以-1 防止索引越界
//因为队列大小是26 而困料区大小为25 队列的前25个为困料区信息 所以-1 防止索引越界
for (int i = 0; i < ivtList.size() - 1; i++) {
Map<String, String> ivt = ivtList.get(i);
for (Map.Entry<String, String> ivtEntry : ivt.entrySet()) {
@@ -96,7 +97,7 @@ public class KlhcqIvt {
/**
* 如果困料区26包括到GT01包括修改队列中的信息
* 如果困料区25包括到GT01包括修改队列中的信息
* 比如 困料区03中手动吊出来了 通过库存管理或者出库确认 修改了困料区03的库存信息为空了
* 此时队列信息会被清空 当下次入到GT01更新队列信息时 从数据库查询困料区库存更新到队列中时
* 困料区03中队列信息为载具号为空 因此入库更新库存时 不应该更新困料区03不包括到困料区01包括的库存

View File

@@ -2,7 +2,7 @@ spring:
freemarker:
check-template-location: false
profiles:
active: dev
active: prod
jackson:
time-zone: GMT+8
data: