diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java index 276892380..b7d0a1bf5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/IMdPbPapervehicleService.java @@ -5,6 +5,7 @@ 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; +import java.util.List; import java.util.Map; import java.util.Set; @@ -40,4 +41,12 @@ public interface IMdPbPapervehicleService extends IService { * @param ids / */ void deleteAll(Set ids); + + /** + * 获取管芯 + * @param pointLocation + * @param tubes + * @return + */ + List getGXs(String pointLocation, List tubes); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.java index a206284ce..fc7083b12 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.java @@ -3,10 +3,13 @@ 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 java.util.List; + /** * @author lyd * @date 2024-06-04 **/ public interface MdPbPapervehicleMapper extends BaseMapper { + List getGXs(String pointLocation, List tubes); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml index 88f38812e..af069f623 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/dao/mapper/MdPbPapervehicleMapper.xml @@ -2,4 +2,20 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java index bec262a5b..61081e92b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/papervehicle/service/impl/MdPbPapervehicleServiceImpl.java @@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; import java.util.Map; import java.util.Set; @@ -76,4 +77,9 @@ public class MdPbPapervehicleServiceImpl extends ServiceImpl getGXs(String pointLocation, List tubes) { + return mdPbPapervehicleMapper.getGXs(pointLocation, tubes); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java index c713a71ec..2b760d5ab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/stockingivt/service/impl/BstIvtStockingivtServiceImpl.java @@ -30,6 +30,7 @@ import org.nl.wms.ext.acs.service.WmsToAcsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.*; @@ -144,10 +145,13 @@ public class BstIvtStockingivtServiceImpl extends ServiceImpl stockingivts = bstIvtStockingivtMapper.selectList(new LambdaQueryWrapper() + .eq(BstIvtStockingivt::getVehicle_code, vehicle_code) + .ne(BstIvtStockingivt::getPoint_code, point_code)); + if (stockingivts.size() > 1) { + throw new BadRequestException("该托盘绑定了多个位置!"); + } + if (stockingivts.size() > 0) { + BstIvtStockingivt bstIvtStockingivt = stockingivts.get(0); + bstIvtStockingivt.setVehicle_code(""); + bstIvtStockingivtMapper.updateById(bstIvtStockingivt); + } + BstIvtStockingivt currentStock = bstIvtStockingivtMapper.selectOne(new LambdaQueryWrapper() + .eq(BstIvtStockingivt::getPoint_code, point_code)); + currentStock.setVehicle_code(vehicle_code); + currentStock.setIvt_status("1"); + bstIvtStockingivtMapper.updateById(currentStock); } if (type.equals("2")) { diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index 9ee840cee..d75fcdaa1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -166,7 +166,7 @@ public class AutoCallAirShaftTask { "1", location, "0"); stepStr += ",6"; // 如果满了就只做拔轴 预留一个货位?,防止套轴直接站满 - if (emptyShaftPoint.size() <= 1) { + if (emptyShaftPoint.size() < 1) { log.info("暂存位没有空位!正在检测是否存在半个点位!"); // 校验是否存在半个位置,且有分切计划 // 获取只有一个位置的点位 @@ -252,15 +252,16 @@ public class AutoCallAirShaftTask { stepStr += ",16"; //若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可 // 要先判断AGV任务,才能去呼叫出轴 - if (!toCallAgvMovePaperTube(needPlans, location, empty)) { - log.error("呼叫AGV失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); - return; - } +// if (!toCallAgvMovePaperTube(needPlans, location, empty)) { +// log.error("呼叫AGV失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); +// return; +// } // 调用ACS滚条气涨轴下来 if (!toAcsOutShaft(qzzSize,location, empty)) { log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); return; } + toCallAgvMovePaperTube(needPlans, location, empty); // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 saveCutPlanMessage(empty, needPlans, qzzSize); stepStr += ",97"; @@ -323,10 +324,10 @@ public class AutoCallAirShaftTask { param.put("qzz_size", needPlan.getQzz_size()); // 所需的纸管规格 SlitterTaskUtil.putNeedPaperSpec(param, needPlans); - if (!toCallAgvMovePaperTube(needPlans, location, empty)) { - log.error("呼叫AGV失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); - return; - } +// if (!toCallAgvMovePaperTube(needPlans, location, empty)) { +// log.error("呼叫AGV失败-穿拔轴{}不进行套轴,跳过!", empty.getPoint_code()); +// return; +// } // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 saveCutPlanMessage(empty, needPlans, qzzSize); // 设置是否套轴:1:正常套轴,2:待定(到后面还会申请套轴) @@ -344,7 +345,7 @@ public class AutoCallAirShaftTask { // 拔管数量 param.put("pullCount", oldPlans.size()); param.put("containers", oldPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); - + toCallAgvMovePaperTube(needPlans, location, empty); stepStr += ",36"; trussCallAirShaftTask.createTask(param); stepStr += ",37"; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 34b3b742c..a4ab0dbd8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -137,42 +137,43 @@ AND 0 = ABS(bcp.sort_seq - #{sortSeq}) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java index b45fb644e..7f88b3938 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/dto/CallPlanViewVO.java @@ -44,4 +44,5 @@ public class CallPlanViewVO implements Serializable { */ private String qzz_generation; private String start_time; + private String is_paper_ok; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index cdfd42e5b..1241692a7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -124,6 +124,7 @@ public class SlitterServiceImpl implements SlitterService { @Override public JSONObject acsRequestShaftLoadTube(JSONObject param) { + // hint: 现在的考虑都是基于B1,B2的车间,后续的B3、B4需要再次修改 log.info("acs申请套轴的输入参数为:{}", param); JSONObject res = new JSONObject(); JSONObject con = new JSONObject(); @@ -144,17 +145,22 @@ public class SlitterServiceImpl implements SlitterService { List tubes = Stream.of(point.getTube_code1(), point.getTube_code2()) .filter(ObjectUtil::isNotEmpty) .collect(Collectors.toList()); - // 判断是否存在纸管 - List list = papervehicleService.list(new LambdaQueryWrapper() - .in(MdPbPapervehicle::getMaterial_code, tubes) - .gt(MdPbPapervehicle::getQty, 0)); + // 判断是否存在纸管(查找三点位是否有所需的管芯) +// List list = papervehicleService.list(new LambdaQueryWrapper() +// .in(MdPbPapervehicle::getMaterial_code, tubes) +// .gt(MdPbPapervehicle::getQty, 0)); + List list = papervehicleService.getGXs(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) { con.put("is_bushing", "2"); } else { - con.put("is_bushing", list.size() > 0 ? 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); } con.put("left", point.getTube_code1()); con.put("leftSize", ObjectUtil.isNotEmpty(point.getTube_name1()) @@ -1060,7 +1066,7 @@ public class SlitterServiceImpl implements SlitterService { // List areaEmptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", // "1", "0", "2"); List areaEmptyNotTaskPoint = bcutpointivtService.getNBJCanUsePoint("1", "1", "0", "2"); - if (areaEmptyNotTaskPoint.size() == 0) { + if (areaEmptyNotTaskPoint.size() <= 1) { throw new BadRequestException("请求搬运失败,内包间没有可存放位置!"); } BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0);