Merge remote-tracking branch 'origin/master_merge' into master_merge

This commit is contained in:
zhouz
2024-07-04 15:31:19 +08:00
14 changed files with 318 additions and 194 deletions

View File

@@ -12,7 +12,7 @@
AND bic.point_location = #{area} AND bic.point_location = #{area}
AND 0 = (SELECT COUNT(*) AND 0 = (SELECT COUNT(*)
FROM sch_base_task t FROM sch_base_task t
WHERE t.task_status <![CDATA[ < ]]> '07' WHERE t.task_status <![CDATA[ <= ]]> '071' AND t.task_status <![CDATA[ <> ]]> '07'
AND (t.point_code1 = bic.point_code OR t.point_code2 = bic.point_code AND (t.point_code1 = bic.point_code OR t.point_code2 = bic.point_code
OR t.point_code1 = bic.truss_point_code1 oR t.point_code2 = bic.truss_point_code1 OR t.point_code1 = bic.truss_point_code1 oR t.point_code2 = bic.truss_point_code1
OR t.point_code1 = bic.truss_point_code2 oR t.point_code2 = bic.truss_point_code2) OR t.point_code1 = bic.truss_point_code2 oR t.point_code2 = bic.truss_point_code2)

View File

@@ -360,11 +360,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
boxInfo.put("device_code", deviceCode); boxInfo.put("device_code", deviceCode);
boxInfo.put("material_code", boxType); boxInfo.put("material_code", boxType);
boxInfo.put("num", workIdList.size()); boxInfo.put("num", workIdList.size());
//String boxSn = outBoxManageService.outBox(boxInfo); String boxSn = outBoxManageService.outBox(boxInfo);
stopWatch.stop(); stopWatch.stop();
System.out.println("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis()); System.out.println("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis());
log.info("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis()); log.info("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis());
String boxSn = "MX230118000013"; //String boxSn = "MX230118000013";
StopWatch stopWatch1 = new StopWatch(); StopWatch stopWatch1 = new StopWatch();
stopWatch1.start(); stopWatch1.start();
//更新及子卷包装状态已分配规格及木箱规格组 //更新及子卷包装状态已分配规格及木箱规格组
@@ -866,7 +866,8 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
stopWatch.stop(); stopWatch.stop();
System.out.println("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis()); System.out.println("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis());
log.info("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis()); log.info("木箱出库代码执行花费时间------------------------------------------------------------------------------------------*************************************************************************************************= totalTime = " + stopWatch.getTotalTimeMillis());
//String boxSn = "MX240703000118"; //空木箱出库测试
//String boxSn = "33333";
StopWatch stopWatch1 = new StopWatch(); StopWatch stopWatch1 = new StopWatch();
stopWatch1.start(); stopWatch1.start();
//更新及子卷包装状态已分配规格及木箱规格组 //更新及子卷包装状态已分配规格及木箱规格组

View File

@@ -3,6 +3,7 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
@@ -15,19 +16,25 @@ import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.manage.TaskStatusEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class AutoExecuteWaitTask { public class AutoExecuteWaitTask {
private final String THIS_CLASS = AutoExecuteWaitTask.class.getName();
@Resource
private RedissonClient redissonClient;
@Resource @Resource
private MzhcwTask mzhcwTask; private MzhcwTask mzhcwTask;
@@ -47,13 +54,18 @@ public class AutoExecuteWaitTask {
/** /**
* 放满与取空桁架任务 * 放满与取空桁架任务
*/ */
void executeWaitTask() { @SneakyThrows
public void executeWaitTask() {
RLock lock = redissonClient.getLock(THIS_CLASS);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
List<SchBaseTask> taskList = taskService.list( List<SchBaseTask> taskList = taskService.list(
new LambdaQueryWrapper<SchBaseTask>() new LambdaQueryWrapper<SchBaseTask>()
.or(r -> r.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode()) .or(r -> r.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode())
.and(w -> w.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")))) .and(w -> w.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))))
.or(r -> r.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode()) .or(r -> r.eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_START.getCode())
.and(w -> w.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")))) .and(w -> w.eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code(""))))
); );
for (SchBaseTask task : taskList) { for (SchBaseTask task : taskList) {
if (task != null) { if (task != null) {
@@ -99,6 +111,14 @@ public class AutoExecuteWaitTask {
} }
} }
} }
} else {
log.info("放满与取空桁架任务正在创建被锁住。");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
} }
//校验相同子卷号的任务 //校验相同子卷号的任务

View File

@@ -2,16 +2,20 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.tasks.first_floor_area.GzqTask; import org.nl.b_lms.sch.tasks.first_floor_area.GzqTask;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -20,6 +24,9 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class AutoSendDjqToGzq { public class AutoSendDjqToGzq {
private final String THIS_CLASS = AutoSendDjqToGzq.class.getName();
@Resource
private RedissonClient redissonClient;
@Resource @Resource
private GzqTask gzqTask; private GzqTask gzqTask;
@@ -35,7 +42,12 @@ public class AutoSendDjqToGzq {
/** /**
* 普通任务 * 普通任务
*/ */
void sendDjqToGzq() { @SneakyThrows
public void sendDjqToGzq() {
RLock lock = redissonClient.getLock(THIS_CLASS);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
//待检区有管制品且过滤未完成任务 //待检区有管制品且过滤未完成任务
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("管制品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), ""); List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("管制品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("升序"), "");
if (CollectionUtils.isEmpty(djqPackageinfoivtList)) { if (CollectionUtils.isEmpty(djqPackageinfoivtList)) {
@@ -52,6 +64,14 @@ public class AutoSendDjqToGzq {
task.put("point_code1", djqPackageinfoivtList.get(0).getPoint_code()); task.put("point_code1", djqPackageinfoivtList.get(0).getPoint_code());
task.put("point_code2", gzqPackageinfoivtList.get(0).getPoint_code()); task.put("point_code2", gzqPackageinfoivtList.get(0).getPoint_code());
gzqTask.createTask(task); gzqTask.createTask(task);
} else {
log.info("放满与取空桁架任务正在创建被锁住。");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
} }

View File

@@ -2,16 +2,20 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask; import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -20,6 +24,9 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class AutoSendGzqToDjq { public class AutoSendGzqToDjq {
private final String THIS_CLASS = AutoSendGzqToDjq.class.getName();
@Resource
private RedissonClient redissonClient;
@Resource @Resource
private DjqTask djqTask; private DjqTask djqTask;
@@ -35,8 +42,12 @@ public class AutoSendGzqToDjq {
/** /**
* 普通任务 * 普通任务
*/ */
@SneakyThrows
void sendGzqToDjq() { public void sendGzqToDjq() {
RLock lock = redissonClient.getLock(THIS_CLASS);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
//管制区有合格品且过滤未完成任务 //管制区有合格品且过滤未完成任务
List<BstIvtPackageinfoivt> gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); List<BstIvtPackageinfoivt> gzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("管制区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
if (CollectionUtils.isEmpty(gzqPackageinfoivtList)) { if (CollectionUtils.isEmpty(gzqPackageinfoivtList)) {
@@ -53,6 +64,14 @@ public class AutoSendGzqToDjq {
task.put("point_code1", gzqPackageinfoivtList.get(0).getPoint_code()); task.put("point_code1", gzqPackageinfoivtList.get(0).getPoint_code());
task.put("point_code2", djqPackageinfoivtList.get(0).getPoint_code()); task.put("point_code2", djqPackageinfoivtList.get(0).getPoint_code());
djqTask.createTask(task); djqTask.createTask(task);
} else {
log.info("放满与取空桁架任务正在创建被锁住。");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
} }

View File

@@ -2,16 +2,20 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask; import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -20,6 +24,9 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class AutoSendMzToDjq { public class AutoSendMzToDjq {
private final String THIS_CLASS = AutoSendMzToDjq.class.getName();
@Resource
private RedissonClient redissonClient;
@Resource @Resource
private DjqTask djqTask; private DjqTask djqTask;
@@ -52,8 +59,13 @@ public class AutoSendMzToDjq {
djqTask.createTask(toDjqTask); djqTask.createTask(toDjqTask);
} }
void sendMzqToDjq2() {
@SneakyThrows
public void sendMzqToDjq2() {
RLock lock = redissonClient.getLock(THIS_CLASS);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try { try {
if (tryLock) {
String pointCode2 = null; String pointCode2 = null;
JSONObject task = new JSONObject(); JSONObject task = new JSONObject();
//满轴有子卷且过滤未完成任务 //满轴有子卷且过滤未完成任务
@@ -74,9 +86,13 @@ public class AutoSendMzToDjq {
task.put("point_code3", mzqPackageinfoivtList.get(0).getPoint_code()); task.put("point_code3", mzqPackageinfoivtList.get(0).getPoint_code());
task.put("point_code2", pointCode2); task.put("point_code2", pointCode2);
djqTask.createTask(task); djqTask.createTask(task);
} else {
} catch (Exception ex) { log.info("满轴->待检区agv自动搬运任务正在创建被锁住。");
log.error("sendMzqToDjq1 error:{}", ex.getMessage()); }
} finally {
if (tryLock) {
lock.unlock();
}
} }
} }

View File

@@ -2,19 +2,21 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService; import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.tasks.first_floor_area.DjqToKzjhcwTask;
import org.nl.b_lms.sch.tasks.first_floor_area.GzqToKzjhcwTask;
import org.nl.b_lms.sch.tasks.first_floor_area.SendDjqKzjTask; import org.nl.b_lms.sch.tasks.first_floor_area.SendDjqKzjTask;
import org.nl.b_lms.sch.tasks.first_floor_area.SendGzqKzjTask; import org.nl.b_lms.sch.tasks.first_floor_area.SendGzqKzjTask;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -22,7 +24,9 @@ import java.util.stream.Collectors;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class AutoSendVehicleToDjq { public class AutoSendVehicleToDjq {
private final String THIS_CLASS = AutoSendVehicleToDjq.class.getName();
@Resource
private RedissonClient redissonClient;
@Resource @Resource
private SendDjqKzjTask sendDjqKzjTask; private SendDjqKzjTask sendDjqKzjTask;
@Resource @Resource
@@ -37,8 +41,12 @@ public class AutoSendVehicleToDjq {
this.sendVehicleToDjqOrGzq1(); this.sendVehicleToDjqOrGzq1();
} }
@SneakyThrows
public void sendVehicleToDjqOrGzq1() { public void sendVehicleToDjqOrGzq1() {
RLock lock = redissonClient.getLock(THIS_CLASS);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
//存在装箱区有空载具的点位 //存在装箱区有空载具的点位
String pointCode2 = null; String pointCode2 = null;
JSONObject task = new JSONObject(); JSONObject task = new JSONObject();
@@ -71,6 +79,14 @@ public class AutoSendVehicleToDjq {
sendGzqKzjTask.createTask(task); sendGzqKzjTask.createTask(task);
} }
} }
} else {
log.info("装箱区->待检区或管制区补空载具任务正在创建被锁住。");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
} }

View File

@@ -2,6 +2,7 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
@@ -9,14 +10,15 @@ import org.nl.b_lms.sch.point.service.IbstIvtPackageinfoivtService;
import org.nl.b_lms.sch.tasks.first_floor_area.DjqToKzjhcwTask; import org.nl.b_lms.sch.tasks.first_floor_area.DjqToKzjhcwTask;
import org.nl.b_lms.sch.tasks.first_floor_area.GzqToKzjhcwTask; import org.nl.b_lms.sch.tasks.first_floor_area.GzqToKzjhcwTask;
import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.common.enums.PackageInfoIvtEnum;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -25,6 +27,9 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class AutoSendVehicleToKzj { public class AutoSendVehicleToKzj {
private final String THIS_CLASS = AutoSendVehicleToKzj.class.getName();
@Resource
private RedissonClient redissonClient;
@Resource @Resource
private DjqToKzjhcwTask djqToKzjhcwTask; private DjqToKzjhcwTask djqToKzjhcwTask;
@Resource @Resource
@@ -39,6 +44,7 @@ public class AutoSendVehicleToKzj {
} }
@SneakyThrows
public void toKzjHcw() { public void toKzjHcw() {
//存在空载具缓存位无空载具的点位 //存在空载具缓存位无空载具的点位
List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), ""); List<BstIvtPackageinfoivt> kzjIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code(""), PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
@@ -72,7 +78,12 @@ public class AutoSendVehicleToKzj {
/** /**
* 二次分配任务 * 二次分配任务
*/ */
@SneakyThrows
public void toKzjHcw2() { public void toKzjHcw2() {
RLock lock = redissonClient.getLock(THIS_CLASS);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
//存在空载具缓存位无空载具的点位 //存在空载具缓存位无空载具的点位
String pointCode1 = null; String pointCode1 = null;
JSONObject task = new JSONObject(); JSONObject task = new JSONObject();
@@ -121,6 +132,14 @@ public class AutoSendVehicleToKzj {
gzqToKzjhcwTask.createTask(task); gzqToKzjhcwTask.createTask(task);
} }
} }
} else {
log.info("待检区或管制区->空载具缓存位补空任务正在创建被锁住。");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
} }
/** /**

View File

@@ -33,7 +33,7 @@ public class ManualSendToZxq {
/** /**
* 普通任务 * 普通任务
*/ */
void sendDjqToZxq() { public void sendDjqToZxq() {
JSONObject toDjqTask = new JSONObject(); JSONObject toDjqTask = new JSONObject();
//待检区有子卷且过滤未完成任务 //待检区有子卷且过滤未完成任务
List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", ""); List<BstIvtPackageinfoivt> djqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", "");

View File

@@ -8,6 +8,7 @@ import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMap
import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.dao.SchBaseTask;
import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.task.service.IschBaseTaskService;
import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask; import org.nl.b_lms.sch.tasks.first_floor_area.ZxqTask;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.common.utils.RedisUtils;
import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -61,9 +62,15 @@ public class TaskQueue {
private void executeTask(SchBaseTask task, String pointCode) { private void executeTask(SchBaseTask task, String pointCode) {
if (task != null) { if (task != null) {
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>().eq(SchBaseTask::getTask_id, task.getTask_id())
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("")).lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
//被取消或删除的任务不再执行
//if (CollectionUtils.isEmpty(taskList)) {
task.setPoint_code2(pointCode); task.setPoint_code2(pointCode);
task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode()); task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
taskService.updateById(task); taskService.updateById(task);
zxqTask.immediateNotifyAcs(null);
//}
//同步删除子卷包装关系 //同步删除子卷包装关系
LambdaQueryWrapper<PdmBiSubpackagerelation> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PdmBiSubpackagerelation> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PdmBiSubpackagerelation::getContainer_name, task.getVehicle_code()); queryWrapper.eq(PdmBiSubpackagerelation::getContainer_name, task.getVehicle_code());

View File

@@ -316,12 +316,15 @@ public class AutoCallAirShaftTask {
device.put("device_code", shafttubeivt.getPoint_code()); device.put("device_code", shafttubeivt.getPoint_code());
array.add(device); array.add(device);
JSONObject pointStatus = wmsToAcsService.getPointStatus(array); JSONObject pointStatus = wmsToAcsService.getPointStatus(array);
log.info("ACS反馈气胀轴库信息{}", pointStatus);
JSONArray data = pointStatus.getJSONArray("data"); JSONArray data = pointStatus.getJSONArray("data");
JSONObject jsonObject = data.getJSONObject(0); JSONObject jsonObject = data.getJSONObject(0);
if (jsonObject.getInteger("qty") == 0) { if (jsonObject.getInteger("qty") == 0) {
// 没有货 // 没有货
log.info("ACS告知无气胀轴申请从气胀轴密集库出气胀轴");
toCreatShaftCacheTask(qzzSize, location, empty); toCreatShaftCacheTask(qzzSize, location, empty);
} else { } else {
log.info("开始给ACS写信号出气胀轴");
JSONArray acsParam = new JSONArray(); JSONArray acsParam = new JSONArray();
JSONObject acsQzz = new JSONObject(); JSONObject acsQzz = new JSONObject();
acsQzz.put("device_code", shafttubeivt.getPoint_code()); acsQzz.put("device_code", shafttubeivt.getPoint_code());

View File

@@ -53,7 +53,7 @@
AND bcp.point_location = #{location} AND bcp.point_location = #{location}
AND 0 = ( AND 0 = (
SELECT COUNT(*) FROM sch_base_task t SELECT COUNT(*) FROM sch_base_task t
WHERE t.task_status <![CDATA[ < ]]> '07' AND (t.point_code2 = bcp.point_code OR t.point_code2 = bcp.truss_point_code1 WHERE t.task_status <![CDATA[ <= ]]> '071' AND t.task_status <![CDATA[ <> ]]> '07' AND (t.point_code2 = bcp.point_code OR t.point_code2 = bcp.truss_point_code1
OR t.point_code4 = bcp.truss_point_code1 OR t.point_code2 = bcp.truss_point_code2 OR t.point_code4 = bcp.truss_point_code2) OR t.point_code4 = bcp.truss_point_code1 OR t.point_code2 = bcp.truss_point_code2 OR t.point_code4 = bcp.truss_point_code2)
) )
ORDER BY ABS(bcp.sort_seq - #{sortSeq}) ORDER BY ABS(bcp.sort_seq - #{sortSeq})

View File

@@ -64,13 +64,13 @@ public class SysNoticeController {
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@Log("获取未读的接收消息条数") // @Log("获取未读的接收消息条数")
@GetMapping("/countByReceiveNotRead") @GetMapping("/countByReceiveNotRead")
public ResponseEntity<Object> countByReceiveNotRead() { public ResponseEntity<Object> countByReceiveNotRead() {
return new ResponseEntity<>(noticeService.countByReceiveNotRead(), HttpStatus.OK); return new ResponseEntity<>(noticeService.countByReceiveNotRead(), HttpStatus.OK);
} }
@Log("接收消息分页") // @Log("接收消息分页")
@GetMapping("/pageByReceive") @GetMapping("/pageByReceive")
public ResponseEntity<Object> pageByReceive() { public ResponseEntity<Object> pageByReceive() {
return new ResponseEntity<>(noticeService.pageByReceive(), HttpStatus.OK); return new ResponseEntity<>(noticeService.pageByReceive(), HttpStatus.OK);

View File

@@ -31,6 +31,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Consumer;
/** /**
* <p> * <p>
@@ -57,7 +58,9 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> impleme
LambdaQueryWrapper<SysLog> lam = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysLog> lam = new LambdaQueryWrapper<>();
lam.eq(ObjectUtil.isNotEmpty(log_type), SysLog::getLog_type, log_type) lam.eq(ObjectUtil.isNotEmpty(log_type), SysLog::getLog_type, log_type)
.eq(ObjectUtil.isNotEmpty(username), SysLog::getUsername, username) .eq(ObjectUtil.isNotEmpty(username), SysLog::getUsername, username)
.like(ObjectUtil.isNotEmpty(blurry), SysLog::getDescription, blurry) .and(ObjectUtil.isNotEmpty(blurry), la -> la.like(SysLog::getDescription, blurry)
.or()
.like(SysLog::getParams, blurry))
.le(ObjectUtil.isNotEmpty(end_time), SysLog::getCreate_time, end_time) .le(ObjectUtil.isNotEmpty(end_time), SysLog::getCreate_time, end_time)
.ge(ObjectUtil.isNotEmpty(begin_time), SysLog::getCreate_time, begin_time) .ge(ObjectUtil.isNotEmpty(begin_time), SysLog::getCreate_time, begin_time)
.orderByDesc(SysLog::getCreate_time); .orderByDesc(SysLog::getCreate_time);