fix: 呼叫气胀轴查询acs,气胀轴库没货则生成任务

This commit is contained in:
2024-07-02 15:37:10 +08:00
parent 2f6cbfd9c1
commit 03a94a7179
6 changed files with 80 additions and 17 deletions

View File

@@ -23,7 +23,9 @@ public interface BstIvtShafttubeivtMapper extends BaseMapper<BstIvtShafttubeivt>
* @param location 位置(上下)
* @return /
*/
List<BstIvtShafttubeivt> getNotTaskShaftCache(String qzzSize, String specification, String location);
List<BstIvtShafttubeivt> getNotTaskShaftCache(@Param("qzzSize") String qzzSize,
@Param("specification") String specification,
@Param("location") String location);
/**
* 获取空气胀轴的气胀轴暂存位

View File

@@ -29,7 +29,9 @@
WHERE b.have_qzz = '1'
AND b.point_type = '6'
AND b.qzz_size = #{qzzSize}
AND b.qzz_generation = #{specification}
<if test="qzzSize != 6">
AND b.qzz_generation = #{specification}
</if>
AND b.point_location = #{location}
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[ < ]]> '07' AND t.point_code1 = b.point_code)
ORDER BY b.sort_seq DESC

View File

@@ -301,30 +301,37 @@ public class AutoCallAirShaftTask {
throw new BadRequestException("气胀轴库找不到[" + qzzSize + "]规格的气涨轴");
}
BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0);
// todo: 访问acs判断有无气涨轴
JSONArray acsParam = new JSONArray();
JSONObject acsQzz = new JSONObject();
acsQzz.put("device_code", shafttubeivt.getPoint_code());
acsQzz.put("code", "to_command");
acsQzz.put("value", "1");
acsQzz.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
acsParam.add(acsQzz);
wmsToAcsService.action(acsParam);
// 访问acs判断有无气涨轴
JSONArray array = new JSONArray();
JSONObject device = new JSONObject();
device.put("device_code", shafttubeivt.getPoint_code());
array.add(device);
JSONObject pointStatus = wmsToAcsService.getPointStatus(array);
if (pointStatus.getInteger("qty") == 0) {
// 没有货
toCreatShaftCacheTask(qzzSize, location, empty);
} else {
JSONArray acsParam = new JSONArray();
JSONObject acsQzz = new JSONObject();
acsQzz.put("device_code", shafttubeivt.getPoint_code());
acsQzz.put("code", "to_command");
acsQzz.put("value", "1");
acsQzz.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
acsParam.add(acsQzz);
wmsToAcsService.action(acsParam);
}
}
/**
* todo: 预留
* 创建气涨轴缓存的桁架任务
*
* @param qzzSize 气涨轴尺寸
* @param specification 标箔、锂电(1,2)
* @param location 位置:上半部分还是下半部分
* @param empty 套拔轴点位
*/
@Deprecated
private void toCreatShaftCacheTask(String qzzSize, String specification, String location, BstIvtShafttubeivt empty) {
private void toCreatShaftCacheTask(String qzzSize, String location, BstIvtShafttubeivt empty) {
// 获取气涨轴缓存没有任务的点位
List<BstIvtShafttubeivt> shafttubeivts = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, specification, location);
List<BstIvtShafttubeivt> shafttubeivts = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, empty.getQzz_generation(), location);
if (shafttubeivts.size() == 0) {
throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位");
}

View File

@@ -44,6 +44,13 @@ public interface SlitterService {
*/
JSONObject acsSendShaftToCache(JSONObject param);
/**
* ACS申请从气涨轴暂存位呼叫气胀轴
* @param param /
* @return /
*/
JSONObject acsCallShaftFromCache(JSONObject param);
/**
* 分切机下料
* @param param

View File

@@ -399,6 +399,40 @@ public class SlitterServiceImpl implements SlitterService {
return res;
}
@Override
public JSONObject acsCallShaftFromCache(JSONObject param) {
log.info("ACS申请从气涨轴暂存位呼叫气胀轴的输入参数为{}", param);
JSONObject res = new JSONObject();
String deviceCode = param.getString("device_code");
String qzzSize = param.getString("size");
// 判断是否有未完成的任务
List<SchBaseTask> list = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getPoint_code1, deviceCode)
.lt(SchBaseTask::getTask_status, "07"));
if (list.size() > 0) {
throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!");
}
BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false);
// 获取气涨轴缓存没有任务的点位
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize,
startPoint.getQzz_generation(), startPoint.getPoint_location());
if (shafttubeivts.size() == 0) {
throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位");
}
BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0);
JSONObject taskParam = new JSONObject();
taskParam.put("point_code1", shafttubeivt.getPoint_code());
taskParam.put("point_code2", startPoint.getPoint_code());
taskParam.put("is_bushing", SlitterConstant.SLITTER_YES);
taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位"));
taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
taskParam.put("qzz_size", qzzSize);
trussCallShaftCacheTask.createTask(taskParam);
res.put("status", HttpStatus.HTTP_OK);
res.put("message", "请求成功");
return res;
}
@SneakyThrows
@Override
// @Transactional(rollbackFor = Exception.class)

View File

@@ -9,6 +9,8 @@ import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt;
import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.mapper.BstIvtShafttubeivtMapper;
import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation;
import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper;
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
@@ -19,6 +21,7 @@ import org.nl.common.enums.ContainerLevelEnum;
import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.system.service.param.ISysParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@@ -29,8 +32,8 @@ import java.util.stream.Stream;
@Slf4j
@ExtendWith(SpringExtension.class)
@SpringBootTest
@DisplayName("event test")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class EventTest {
@Resource
@@ -57,6 +60,14 @@ public class EventTest {
@Resource
private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper;
@Autowired
private BstIvtShafttubeivtMapper bstIvtShafttubeivtMapper;
@Test
public void sl() {
List<BstIvtShafttubeivt> notTaskShaftCache = bstIvtShafttubeivtMapper.getNotTaskShaftCache("3", "4", "0");
System.out.println(notTaskShaftCache);
}
/**
* 装箱区->空载具缓存位补空