opt: 备货区未创建AGV任务导致拔轴机构停住
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package org.nl.b_lms.bst.ivt.papervehicle.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.tasks.slitter.mapper.dto.GxQtyDto;
|
||||
import org.nl.b_lms.sch.tasks.slitter.service.impl.SlitterServiceImpl;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle;
|
||||
@@ -49,4 +52,8 @@ public interface IMdPbPapervehicleService extends IService<MdPbPapervehicle> {
|
||||
* @return
|
||||
*/
|
||||
List<MdPbPapervehicle> getGXs(String pointLocation, List<String> tubes);
|
||||
|
||||
List<GxQtyDto> getGxPoints(String pointLocation, List<String> tubes);
|
||||
|
||||
Integer checkHaveTaskByPoints(List<String> pointCodes);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@ package org.nl.b_lms.bst.ivt.papervehicle.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.tasks.slitter.mapper.dto.GxQtyDto;
|
||||
import org.nl.b_lms.sch.tasks.slitter.service.impl.SlitterServiceImpl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -12,4 +15,8 @@ import java.util.List;
|
||||
public interface MdPbPapervehicleMapper extends BaseMapper<MdPbPapervehicle> {
|
||||
|
||||
List<MdPbPapervehicle> getGXs(String pointLocation, List<String> tubes);
|
||||
|
||||
List<GxQtyDto> getGxPoints(String pointLocation, List<String> tubes);
|
||||
|
||||
Integer checkHaveTaskByPoints(List<String> pointCodes);
|
||||
}
|
||||
|
||||
@@ -18,4 +18,46 @@
|
||||
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[ < ]]> '07'
|
||||
AND (t.point_code1 = bs.point_code OR t.point_code2 = bs.point_code) AND t.is_delete = '0')
|
||||
</select>
|
||||
<select id="getGxPoints" resultType="org.nl.b_lms.sch.tasks.slitter.mapper.dto.GxQtyDto">
|
||||
SELECT
|
||||
bs.point_code,
|
||||
bs.point_type,
|
||||
SUM( mp.qty ) AS qty
|
||||
FROM
|
||||
md_pb_papervehicle mp
|
||||
LEFT JOIN bst_ivt_stockingivt bs ON bs.vehicle_code = mp.vehicle_code
|
||||
WHERE
|
||||
mp.material_code IN
|
||||
<foreach item="code" collection="tubes" open="(" separator="," close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
AND mp.qty > 0
|
||||
AND bs.point_location = '0'
|
||||
GROUP BY bs.point_code, bs.point_type
|
||||
</select>
|
||||
<select id="checkHaveTaskByPoints" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
sch_base_task
|
||||
WHERE
|
||||
is_delete = '0'
|
||||
AND task_status <![CDATA[ < ]]> '07'
|
||||
AND (
|
||||
(
|
||||
task_type = '010807'
|
||||
AND point_code3 IN
|
||||
<foreach item="code" collection="pointCodes" open="(" separator="," close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
)
|
||||
OR (
|
||||
task_type = '010808'
|
||||
AND point_code1 IN
|
||||
<foreach item="code" collection="pointCodes" open="(" separator="," close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
)
|
||||
)
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -10,6 +10,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.bst.ivt.papervehicle.service.IMdPbPapervehicleService;
|
||||
import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle;
|
||||
import org.nl.b_lms.bst.ivt.papervehicle.service.dao.mapper.MdPbPapervehicleMapper;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.tasks.slitter.mapper.dto.GxQtyDto;
|
||||
import org.nl.b_lms.sch.tasks.slitter.service.impl.SlitterServiceImpl;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -82,4 +85,14 @@ public class MdPbPapervehicleServiceImpl extends ServiceImpl<MdPbPapervehicleMap
|
||||
return mdPbPapervehicleMapper.getGXs(pointLocation, tubes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<GxQtyDto> getGxPoints(String pointLocation, List<String> tubes) {
|
||||
return mdPbPapervehicleMapper.getGxPoints(pointLocation, tubes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer checkHaveTaskByPoints(List<String> pointCodes) {
|
||||
return mdPbPapervehicleMapper.checkHaveTaskByPoints(pointCodes);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package org.nl.b_lms.sch.tasks.slitter.mapper.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/4/29
|
||||
*/
|
||||
@Data
|
||||
public class GxQtyDto {
|
||||
private String point_code;
|
||||
private String point_type;
|
||||
private Integer qty;
|
||||
}
|
||||
@@ -5,7 +5,6 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -13,6 +12,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService;
|
||||
@@ -41,9 +43,9 @@ import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant;
|
||||
import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum;
|
||||
import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper;
|
||||
import org.nl.b_lms.sch.tasks.slitter.mapper.dto.CallPlanViewVO;
|
||||
import org.nl.b_lms.sch.tasks.slitter.mapper.dto.GxQtyDto;
|
||||
import org.nl.b_lms.sch.tasks.slitter.service.SlitterService;
|
||||
import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil;
|
||||
import org.nl.common.enums.NoticeTypeEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.TaskUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
@@ -60,7 +62,10 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -153,21 +158,37 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
.filter(ObjectUtil::isNotEmpty)
|
||||
.collect(Collectors.toList());
|
||||
// 判断是否存在纸管(查找三点位是否有所需的管芯)
|
||||
List<MdPbPapervehicle> list = papervehicleService.list(new LambdaQueryWrapper<MdPbPapervehicle>()
|
||||
.in(MdPbPapervehicle::getMaterial_code, tubes)
|
||||
.gt(MdPbPapervehicle::getQty, 0));
|
||||
// List<MdPbPapervehicle> list = papervehicleService.getGXs(point.getPoint_location(), tubes);
|
||||
// List<MdPbPapervehicle> list = papervehicleService.list(new LambdaQueryWrapper<MdPbPapervehicle>()
|
||||
// .in(MdPbPapervehicle::getMaterial_code, tubes)
|
||||
// .gt(MdPbPapervehicle::getQty, 0));
|
||||
List<GxQtyDto> gxQtyList = papervehicleService.getGxPoints(point.getPoint_location(), tubes);
|
||||
// point.getTube_code1() 编码 , getTube_name1() : 纸制筒管|纸管|6英寸|1300 or 纸制筒管|纸管|3英寸|12|650
|
||||
res.put("device_code", deviceCode);
|
||||
res.put("data", con);
|
||||
if ("1".equals(autoSendEmpty.getValue()) && list.size() == 0) {
|
||||
if ("1".equals(autoSendEmpty.getValue()) && gxQtyList.size() == 0) {
|
||||
con.put("is_bushing", "2");
|
||||
} else {
|
||||
int sum = list.stream()
|
||||
.mapToInt(e -> e.getQty().intValue())
|
||||
.sum();
|
||||
// 需要求和判断当前数量和所需数
|
||||
con.put("is_bushing", sum >= tubes.size() ? SlitterConstant.SLITTER_YES : SlitterConstant.SLITTER_NO);
|
||||
// int sum = list.stream()
|
||||
// .mapToInt(e -> e.getQty().intValue())
|
||||
// .sum();
|
||||
// // 需要求和判断当前数量和所需数
|
||||
// con.put("is_bushing", sum >= tubes.size() ? SlitterConstant.SLITTER_YES : SlitterConstant.SLITTER_NO);
|
||||
List<GxQtyDto> hasNeedPoint = gxQtyList.stream()
|
||||
.filter(gx -> "1".equals(gx.getPoint_type()) && gx.getQty() >= tubes.size())
|
||||
.collect(Collectors.toList());
|
||||
if (hasNeedPoint.size() > 0) {
|
||||
// 1、判断点位类型有没有=1,且数量大于等于所需数
|
||||
con.put("is_bushing", SlitterConstant.SLITTER_YES);
|
||||
} else {
|
||||
// 2、判断点位有没有任务(010807->point3, 010808->point1)
|
||||
List<String> pointCodes = gxQtyList.stream()
|
||||
.map(GxQtyDto::getPoint_code)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
Integer tasks = papervehicleService.checkHaveTaskByPoints(pointCodes);
|
||||
con.put("is_bushing", tasks > 0 ? SlitterConstant.SLITTER_YES : SlitterConstant.SLITTER_NO);
|
||||
}
|
||||
|
||||
}
|
||||
con.put("left", point.getTube_code1());
|
||||
con.put("leftSize", ObjectUtil.isNotEmpty(point.getTube_name1())
|
||||
|
||||
Reference in New Issue
Block a user