opt: 备货区未创建AGV任务导致拔轴机构停住
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
package org.nl.b_lms.bst.ivt.papervehicle.service;
|
package org.nl.b_lms.bst.ivt.papervehicle.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
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 org.nl.common.domain.query.PageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle;
|
import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle;
|
||||||
@@ -49,4 +52,8 @@ public interface IMdPbPapervehicleService extends IService<MdPbPapervehicle> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<MdPbPapervehicle> getGXs(String pointLocation, List<String> tubes);
|
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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle;
|
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;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -12,4 +15,8 @@ import java.util.List;
|
|||||||
public interface MdPbPapervehicleMapper extends BaseMapper<MdPbPapervehicle> {
|
public interface MdPbPapervehicleMapper extends BaseMapper<MdPbPapervehicle> {
|
||||||
|
|
||||||
List<MdPbPapervehicle> getGXs(String pointLocation, List<String> tubes);
|
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 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')
|
AND (t.point_code1 = bs.point_code OR t.point_code2 = bs.point_code) AND t.is_delete = '0')
|
||||||
</select>
|
</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>
|
</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.IMdPbPapervehicleService;
|
||||||
import org.nl.b_lms.bst.ivt.papervehicle.service.dao.MdPbPapervehicle;
|
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.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.domain.query.PageQuery;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
@@ -82,4 +85,14 @@ public class MdPbPapervehicleServiceImpl extends ServiceImpl<MdPbPapervehicleMap
|
|||||||
return mdPbPapervehicleMapper.getGXs(pointLocation, tubes);
|
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.lang.Assert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.hutool.http.HttpStatus;
|
import cn.hutool.http.HttpStatus;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
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.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService;
|
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.constant.SlitterEnum;
|
||||||
import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper;
|
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.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.service.SlitterService;
|
||||||
import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil;
|
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.SecurityUtils;
|
||||||
import org.nl.common.utils.TaskUtils;
|
import org.nl.common.utils.TaskUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
@@ -60,7 +62,10 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
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.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
@@ -153,21 +158,37 @@ public class SlitterServiceImpl implements SlitterService {
|
|||||||
.filter(ObjectUtil::isNotEmpty)
|
.filter(ObjectUtil::isNotEmpty)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
// 判断是否存在纸管(查找三点位是否有所需的管芯)
|
// 判断是否存在纸管(查找三点位是否有所需的管芯)
|
||||||
List<MdPbPapervehicle> list = papervehicleService.list(new LambdaQueryWrapper<MdPbPapervehicle>()
|
// List<MdPbPapervehicle> list = papervehicleService.list(new LambdaQueryWrapper<MdPbPapervehicle>()
|
||||||
.in(MdPbPapervehicle::getMaterial_code, tubes)
|
// .in(MdPbPapervehicle::getMaterial_code, tubes)
|
||||||
.gt(MdPbPapervehicle::getQty, 0));
|
// .gt(MdPbPapervehicle::getQty, 0));
|
||||||
// List<MdPbPapervehicle> list = papervehicleService.getGXs(point.getPoint_location(), tubes);
|
List<GxQtyDto> gxQtyList = papervehicleService.getGxPoints(point.getPoint_location(), tubes);
|
||||||
// point.getTube_code1() 编码 , getTube_name1() : 纸制筒管|纸管|6英寸|1300 or 纸制筒管|纸管|3英寸|12|650
|
// point.getTube_code1() 编码 , getTube_name1() : 纸制筒管|纸管|6英寸|1300 or 纸制筒管|纸管|3英寸|12|650
|
||||||
res.put("device_code", deviceCode);
|
res.put("device_code", deviceCode);
|
||||||
res.put("data", con);
|
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");
|
con.put("is_bushing", "2");
|
||||||
} else {
|
} else {
|
||||||
int sum = list.stream()
|
// int sum = list.stream()
|
||||||
.mapToInt(e -> e.getQty().intValue())
|
// .mapToInt(e -> e.getQty().intValue())
|
||||||
.sum();
|
// .sum();
|
||||||
// 需要求和判断当前数量和所需数
|
// // 需要求和判断当前数量和所需数
|
||||||
con.put("is_bushing", sum >= tubes.size() ? SlitterConstant.SLITTER_YES : SlitterConstant.SLITTER_NO);
|
// 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("left", point.getTube_code1());
|
||||||
con.put("leftSize", ObjectUtil.isNotEmpty(point.getTube_name1())
|
con.put("leftSize", ObjectUtil.isNotEmpty(point.getTube_name1())
|
||||||
|
|||||||
Reference in New Issue
Block a user