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)