Merge remote-tracking branch 'origin/master_merge' into master_merge

# Conflicts:
#	lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java
This commit is contained in:
zhouz
2024-07-09 19:13:48 +08:00
7 changed files with 37 additions and 19 deletions

View File

@@ -91,6 +91,15 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
return bstIvtPackageinfoivtMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), queryWrapper); return bstIvtPackageinfoivtMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), queryWrapper);
} }
/**
* 查询没有搬运任务的空的目标点位
* @param ivtType 点位类型
* @param ivtStatus 库存状态
* @param pointCode 取货还是放货
* @param sortType 点位排序规则1升序2降序
* @param taskType 任务类型
* @return List<BstIvtPackageinfoivt>
*/
@Override @Override
public List<BstIvtPackageinfoivt> checkEndPointTask(String ivtType, String ivtStatus, String pointCode, String sortType, String taskType) { public List<BstIvtPackageinfoivt> checkEndPointTask(String ivtType, String ivtStatus, String pointCode, String sortType, String taskType) {
List<BstIvtPackageinfoivt> packageinfoivtList = getBstIvtPackageinfoivts(ivtType, ivtStatus, sortType); List<BstIvtPackageinfoivt> packageinfoivtList = getBstIvtPackageinfoivts(ivtType, ivtStatus, sortType);
@@ -132,7 +141,6 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
.collect(Collectors.toSet()); .collect(Collectors.toSet());
} else { } else {
pointSets = taskList.stream() pointSets = taskList.stream()
// 对每个任务应用映射操作将point_code字段添加到Stream中
.flatMap(task -> Stream.of( .flatMap(task -> Stream.of(
task.getPoint_code1(), task.getPoint_code1(),
task.getPoint_code2(), task.getPoint_code2(),
@@ -412,6 +420,11 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
} }
} }
/**
* @param actionType 分配类型-取货分配/放货分配
* @param taskPointType 任务类型
* @param baseTask 任务信息
*/
private BstIvtPackageinfoivt getBstIvtPackageinfoivt(String actionType, String taskPointType, SchBaseTask baseTask) { private BstIvtPackageinfoivt getBstIvtPackageinfoivt(String actionType, String taskPointType, SchBaseTask baseTask) {
BstIvtPackageinfoivt newPoint; BstIvtPackageinfoivt newPoint;
//1取货任务2放货任务 //1取货任务2放货任务
@@ -422,7 +435,11 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
} else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) { } else if (PackageInfoIvtEnum.TASK_ACTION_TYPE.code("放货分配").equals(actionType)) {
queryWrapper.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code4()); queryWrapper.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code4());
taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务"); taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("放货任务");
} else if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线->满轴缓存位"))) {
//放满轴任务不判断终点是否有任务
taskPointType = PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务放货");
} }
BstIvtPackageinfoivt bstIvtPackageinfoivt = bstIvtPackageinfoivtMapper.selectOne(queryWrapper); BstIvtPackageinfoivt bstIvtPackageinfoivt = bstIvtPackageinfoivtMapper.selectOne(queryWrapper);
//根据任务类型返回点位分配规则 //根据任务类型返回点位分配规则
BstIvtPackageinfoivt ivtInfo = getIvtInfoFromRegion(baseTask.getTask_type(), actionType); BstIvtPackageinfoivt ivtInfo = getIvtInfoFromRegion(baseTask.getTask_type(), actionType);

View File

@@ -78,7 +78,6 @@ public class DjqTask extends AbstractAcsTask {
.product_area(r.getProduct_area()) .product_area(r.getProduct_area())
.agv_action_type(r.getVehicle_code2()) .agv_action_type(r.getVehicle_code2())
.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼诺宝任务")) .agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼诺宝任务"))
.interaction_json(JSON.parseObject(r.getRequest_param()))
.build(); .build();
resultList.add(dto); resultList.add(dto);
}); });

View File

@@ -73,7 +73,6 @@ public class GzqTask extends AbstractAcsTask {
.agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼诺宝任务")) .agv_system_type(PackageInfoIvtEnum.AGV_SYSTEM_TYPE.code("1楼诺宝任务"))
//.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务")) //.truss_type(PackageInfoIvtEnum.TRUSS_TYPE.code("点对点任务"))
//.dtl_type(r.getDtl_type()) //.dtl_type(r.getDtl_type())
.interaction_json(JSON.parseObject(r.getRequest_param()))
.build(); .build();
resultList.add(dto); resultList.add(dto);
}); });

View File

@@ -27,6 +27,7 @@
FROM `bst_ivt_cutpointivt` bct FROM `bst_ivt_cutpointivt` bct
WHERE bct.point_type = '3' WHERE bct.point_type = '3'
AND bct.point_status = '3' AND bct.point_status = '3'
AND bct.product_area = 'B2'
AND bct.is_used = '1' AND bct.is_used = '1'
AND 0 = (SELECT COUNT(*) AND 0 = (SELECT COUNT(*)
FROM sch_base_task t FROM sch_base_task t

View File

@@ -445,7 +445,7 @@ public class SlitterServiceImpl implements SlitterService {
public JSONObject mesSlittingMachineSendMaterial(JSONObject param) { public JSONObject mesSlittingMachineSendMaterial(JSONObject param) {
log.info("分切机下料的输入参数为:{}", param); log.info("分切机下料的输入参数为:{}", param);
JSONObject res = new JSONObject(); JSONObject res = new JSONObject();
// todo: 获取子卷号数组 // 获取子卷号数组
JSONArray containers = param.getJSONArray("container"); JSONArray containers = param.getJSONArray("container");
List<String> containerList = containers.toJavaList(String.class); List<String> containerList = containers.toJavaList(String.class);
if (containerList.size() == 0) { if (containerList.size() == 0) {
@@ -955,7 +955,7 @@ public class SlitterServiceImpl implements SlitterService {
try { try {
openLock = open.tryLock(0, TimeUnit.SECONDS); openLock = open.tryLock(0, TimeUnit.SECONDS);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new BadRequestException("获取锁异常");
} }
try { try {
if (openLock) { if (openLock) {
@@ -975,7 +975,7 @@ public class SlitterServiceImpl implements SlitterService {
try { try {
tryLock = lock.tryLock(0, TimeUnit.SECONDS); tryLock = lock.tryLock(0, TimeUnit.SECONDS);
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new BadRequestException("获取锁异常");
} }
try { try {
if (tryLock) { if (tryLock) {

View File

@@ -305,13 +305,15 @@ public class StIvtIostorinvdtlServiceImpl extends ServiceImpl<StIvtIostorinvdtlM
this.updateById(dtlDao); this.updateById(dtlDao);
// 更新此木箱中所有的明细状态 // 更新此木箱中所有的明细状态 (如果此明细的木箱不为空)
this.update( if (ObjectUtil.isNotEmpty(dtlDao.getBox_no())) {
new UpdateWrapper<StIvtIostorinvdtl>().lambda() this.update(
.set(StIvtIostorinvdtl::getBill_status, dtlDao.getBill_status()) new UpdateWrapper<StIvtIostorinvdtl>().lambda()
.eq(StIvtIostorinvdtl::getIostorinv_id, dtlDao.getIostorinv_id()) .set(StIvtIostorinvdtl::getBill_status, dtlDao.getBill_status())
.eq(StIvtIostorinvdtl::getBox_no, dtlDao.getBox_no()) .eq(StIvtIostorinvdtl::getIostorinv_id, dtlDao.getIostorinv_id())
); .eq(StIvtIostorinvdtl::getBox_no, dtlDao.getBox_no())
);
}
} }
/** /**

View File

@@ -5,7 +5,6 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
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 lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.hibernate.annotations.Source; import org.hibernate.annotations.Source;
@@ -69,8 +68,6 @@ public class LashManageServiceImpl implements LashManageService {
*/ */
private final TwoLashTask twoLashTask; private final TwoLashTask twoLashTask;
private final TwoOutHeapTask twoOutHeapTask;
/** /**
* 木箱类型信息服务 * 木箱类型信息服务
*/ */
@@ -94,8 +91,11 @@ public class LashManageServiceImpl implements LashManageService {
throw new BadRequestException("没有此木箱信息:"+whereJson.getString("vehicle_code")); throw new BadRequestException("没有此木箱信息:"+whereJson.getString("vehicle_code"));
} }
//查询该木箱的堆叠模版信息 // 获取次木箱对应的木箱类型
MdpbBoxtype boxtype = iMdpbBoxtypeService.getOne(new LambdaQueryWrapper<MdpbBoxtype>().eq(MdpbBoxtype::getBox_type, boxDao.getMaterial_code())); MdpbBoxtype boxTypeDao = iMdpbBoxtypeService.getById(boxDao.getMaterial_code());
if (ObjectUtil.isEmpty(boxTypeDao)) {
throw new BadRequestException("木箱类型不存在!"+boxDao.getMaterial_code());
}
JSONObject jsonSub = WQLObject.getWQLObject("pdm_bi_subpackagerelation") JSONObject jsonSub = WQLObject.getWQLObject("pdm_bi_subpackagerelation")
.query("package_box_sn = '" + boxDao.getBox_no() + "'") .query("package_box_sn = '" + boxDao.getBox_no() + "'")
@@ -139,7 +139,7 @@ public class LashManageServiceImpl implements LashManageService {
jsonPoint.put("vehicle_qty", NumberUtil.add(jsonPoint.getBigDecimal("vehicle_qty"),1)); jsonPoint.put("vehicle_qty", NumberUtil.add(jsonPoint.getBigDecimal("vehicle_qty"),1));
if (jsonPoint.getIntValue("vehicle_qty") == Integer.parseInt(boxtype.getLash_num())) { if (jsonPoint.getIntValue("vehicle_qty") == Integer.parseInt(boxTypeDao.getLash_num_tow())) {
// 相同清空载具以及数量 // 相同清空载具以及数量
jsonPoint.put("vehicle_qty",0); jsonPoint.put("vehicle_qty",0);
jsonPoint.put("vehicle_code",""); jsonPoint.put("vehicle_code","");