diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml
index d08ade145..b2dd6d33c 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.xml
@@ -54,7 +54,7 @@
FROM
pdm_bi_subpackagerelation
WHERE
- container_name IN (SELECT container_name FROM bst_ivt_packageinfoivt WHERE point_status = '3')
+ container_name IN (SELECT container_name FROM bst_ivt_packageinfoivt WHERE point_status = '6')
AND sale_order_name LIKE CONCAT('%', #{sale_order_name}, '%')
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java
index 69f0cf497..bb2774e37 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java
@@ -1,5 +1,6 @@
package org.nl.b_lms.pdm.subpackagerelation.service.impl;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -26,6 +27,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.system.service.param.ISysParamService;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
@@ -34,6 +37,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ThreadPoolExecutor;
import java.util.stream.Collectors;
@@ -55,7 +60,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl queryContainerization(Map whereJson, PageQuery pageable) {
Page pageObject = new Page<>(pageable.getPage(), pageable.getSize());
- return pdmBiSubpackagerelationMapper.selectGroupedSubPackageRelation(pageObject,(String)whereJson.get("sale_order_name"),(String)whereJson.get("customer_name"),(String)whereJson.get("customer_description"),(String)whereJson.get("status"));
+ return pdmBiSubpackagerelationMapper.selectGroupedSubPackageRelation(pageObject, (String) whereJson.get("sale_order_name"), (String) whereJson.get("customer_name"), (String) whereJson.get("customer_description"), (String) whereJson.get("status"));
}
-
/**
* 查询订单装箱信息
*
@@ -140,10 +146,6 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl packagerelationList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class);
List isOutBox = packagerelationList.stream().filter(r -> r.getStatus().equals("0")).collect(Collectors.toList());
- if (isOutBox.size() > 0) {
- throw new BadRequestException("标记为黄色的子卷号已分配木箱,请重新选择未分配木箱的子卷");
- }
- List entityList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream()
- .map(PdmBiSubpackagerelation::getWorkorder_id)
- .map(String::valueOf)
- .collect(Collectors.toList());
- if (entityList.isEmpty()) {
- return;
+ if (isOutBox.size() > 0) {
+ throw new BadRequestException("标记为黄色的子卷号已分配木箱,请重新选择未分配木箱的子卷");
+ }
+ JSONArray jsonArray = whereJson.getJSONArray("tableMater");
+ if (jsonArray == null || jsonArray.size() == 0) {
+ throw new BadRequestException("无选中子卷信息");
}
List pdmBiSubpackagerelationList = pdmBiSubpackagerelationMapper
- .selectList(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getSale_order_name, whereJson.getString("sale_order_name")));
+ .selectList(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getSale_order_name, jsonArray.getJSONObject(0).getString("sale_order_name")));
Integer maxBoxGroup = pdmBiSubpackagerelationList.stream()
.map(PdmBiSubpackagerelation::getBox_group)
.filter(Objects::nonNull)
@@ -421,6 +420,13 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl entityList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream()
+ .map(PdmBiSubpackagerelation::getWorkorder_id)
+ .map(String::valueOf)
+ .collect(Collectors.toList());
+ if (entityList.isEmpty()) {
+ return;
+ }
// code:终点,material_code:木箱规格,num: 子卷数
UpdateWrapper updateWrapper = new UpdateWrapper<>();
String boxType = whereJson.getString("checked");
@@ -440,8 +446,38 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl entityList, List packagerelationList, String boxType) {
+ //均衡获取装箱对接位
+ //String deviceCode= getPointCode();
+ String deviceCode = "ZXQ_1_1";
JSONObject boxInfo = new JSONObject();
- String deviceCode;
+ //确定装箱区终点
+ boxInfo.put("device_code", deviceCode);
+ boxInfo.put("material_code", boxType);
+ boxInfo.put("num", entityList.size());
+ String boxSn = outBoxManageService.outBox(boxInfo);
+ if (StringUtils.isBlank(boxSn)) {
+ throw new BadRequestException("库位 -> 装箱对接位,木箱码不能为空!");
+ }
+ //更新子卷包装关系更新木箱号
+ CompletableFuture.runAsync(() -> {
+ try {
+ updateBoxInfo(entityList, boxSn);
+ } catch (Exception e) {
+ log.error("异常信息:" + e);
+ }
+ }, pool);
+ //待检区->装箱区agv任务
+ // String finalDeviceCode = deviceCode;
+ // CompletableFuture.runAsync(() -> {
+ // try {
+ // agvTransfer(packagerelationList, finalDeviceCode, boxSn);
+ // } catch (Exception e) {
+ // log.error("异常信息:" + e);
+ // }
+ // }, pool);
+ }
+
+ private String getPointCode() {
//均衡获取木箱出库终点
List bstIvtPackageinfoivtList = bstIvtPackageinfoivtMapper.selectList(new LambdaQueryWrapper().eq(BstIvtPackageinfoivt::getPoint_status, "5").eq(BstIvtPackageinfoivt::getIs_used, "1").orderByAsc(BstIvtPackageinfoivt::getPoint_code));
if (CollectionUtils.isEmpty(bstIvtPackageinfoivtList)) {
@@ -476,23 +512,15 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl minPointCode = result.stream()
.min(Comparator.comparingInt(map -> map.entrySet().iterator().next().getValue()))
.map(map -> map.keySet().iterator().next());
- deviceCode = minPointCode.orElseGet(() -> bstIvtPackageinfoivtList.get(0).getPoint_code());
- //确定装箱区终点
- boxInfo.put("device_code", deviceCode);
- boxInfo.put("material_code", boxType);
- boxInfo.put("num", entityList.size());
- String boxSn = outBoxManageService.outBox(boxInfo);
- //String boxSn = "MX61401";
- if (StringUtils.isBlank(boxSn)) {
- throw new BadRequestException("库位 -> 装箱对接位,木箱码不能为空!");
- }
- //更新子卷包装关系更新木箱号
- UpdateWrapper updateWrapper1 = new UpdateWrapper<>();
- updateWrapper1.set("package_box_sn", boxSn);
- updateWrapper1.in("workorder_id", entityList);
- pdmBiSubpackagerelationMapper.update(null, updateWrapper1);
- //待检区->装箱区agv任务
- agvTransfer(packagerelationList, deviceCode, boxSn);
+ return minPointCode.orElseGet(() -> bstIvtPackageinfoivtList.get(0).getPoint_code());
+ }
+
+
+ protected void updateBoxInfo(List entityList, String boxSn) {
+ UpdateWrapper updateWrapper = new UpdateWrapper<>();
+ updateWrapper.set("package_box_sn", boxSn);
+ updateWrapper.in("workorder_id", entityList);
+ pdmBiSubpackagerelationMapper.update(null, updateWrapper);
}
@@ -539,7 +567,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl packagerelationList, String deviceCode, String boxSn) {
+ protected void agvTransfer(List packagerelationList, String deviceCode, String boxSn) {
//待检区点位
List djqPointList = packageinfoivtService
.list(new LambdaUpdateWrapper()
@@ -571,7 +599,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl 07 and task_id <> '"+taskObj.getString("task_id")+"'")
+ .uniqueResult(0);
+
+ if (ObjectUtil.isEmpty(groupTask)) {
+ // 更新点位载具、数量
+ JSONObject pointDao = pointTab.query("point_code = '" + taskObj.getString("point_code2") + "'").uniqueResult(0);
+ pointDao.put("vehicle_code", "");
+ pointDao.put("vehicle_qty",0);
+ WQLObject.getWQLObject("sch_base_point").update(pointDao);
+
+ // TODO 调用acs接口告诉此木箱可以离开
+
+ }
+
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
}
@@ -219,6 +234,7 @@ public class TwoLashTask extends AbstractAcsTask {
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
json.put("point_code1", form.getString("start_device_code"));
json.put("point_code2", form.getString("next_device_code"));
+ json.put("task_group_id", form.getString("task_group_id"));
json.put("is_auto_issue", form.getString("is_auto_issue"));
json.put("handle_class", this.getClass().getName());
json.put("create_id", SecurityUtils.getCurrentUserId());
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java
index 81c4b1f54..bbe974087 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutEmpTask.java
@@ -150,7 +150,7 @@ public class TwoOutEmpTask extends AbstractAcsTask {
throw new BadRequestException("托盘号不能为空!");
}
- if (StrUtil.isBlank(form.getString("vehicle_type"))) {
+ if (StrUtil.isBlank(form.getString("containerType"))) {
throw new BadRequestException("托盘类型不能为空!");
}
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java
index 7b09ce8a2..1217b4be8 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java
@@ -110,6 +110,7 @@ public class TwoOutHeapTask extends AbstractAcsTask {
JSONObject jsonParam = new JSONObject();
jsonParam.put("device_code",jsonTask.getString("point_code2"));
jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code"));
+ jsonParam.put("task_group_id",jsonTask.getString("task_group_id"));
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
bean1.createLashTask(jsonParam);
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java
index 62f100129..b530d2f1d 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java
@@ -163,13 +163,14 @@ public class TwoOutTask extends AbstractAcsTask {
bean.finishTask(jsonTask);
// 判断此任务组是否全部完成
- JSONArray resultJSONArray = taskTab.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'")
+ JSONArray resultJSONArray = taskTab.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "' and handle_class = '"+THIS_CLASS+"'")
.getResultJSONArray(0);
// 下发堆垛机至行架任务(2个行架位)
JSONObject jsonParam = new JSONObject();
jsonParam.put("device_code",jsonTask.getString("point_code2"));
jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code"));
+ jsonParam.put("task_group_id",jsonTask.getString("task_group_id"));
jsonParam.put("vehicle_type",jsonTask.getJSONObject("request_param").getString("containerType"));
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java
index 0e1627be5..ff459e99d 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/MzhcwTask.java
@@ -130,7 +130,7 @@ public class MzhcwTask extends AbstractAcsTask {
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
.eq(BstIvtPackageinfoivt::getPoint_status, PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"))
.eq(BstIvtPackageinfoivt::getIvt_status, PackageInfoIvtEnum.IVT_STATUS.code("空载具"))
- .orderByAsc(BstIvtPackageinfoivt::getSort_seq));
+ .orderByDesc(BstIvtPackageinfoivt::getSort_seq));
JSONObject toSsxTask = new JSONObject();
toSsxTask.put("acs_task_type", PackageInfoIvtEnum.ACS_TASK_TYPE.code("桁架任务"));
toSsxTask.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"));
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java
index dd5ad95cf..3cc003f8b 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java
@@ -33,6 +33,7 @@ import org.nl.modules.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
+import org.nl.system.service.param.ISysParamService;
import org.nl.wms.basedata.st.service.StorattrService;
import org.nl.wms.basedata.st.service.dto.StorattrDto;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
@@ -102,6 +103,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl '07' and is_delete = '0'").uniqueResult(0);
+ if (ObjectUtil.isNotEmpty(jsonTask)) {
flag = false;
- } else {
- // 不相同:判断是否有此木箱的任务
- JSONObject jsonTask = taskService.query("table_fk = '" + iostorinv_id + "' and vehicle_code = '" + jsonLow.getString("storagevehicle_code") + "' and is_delete = '0'").uniqueResult(0);
-
- if (ObjectUtil.isNotEmpty(jsonTask)) {
- flag = false;
- }
-
}
+
}
if (flag) {
@@ -1160,7 +1154,36 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl().lambda()
+ .eq(BstIvtBoxinfo::getBox_no, jsonLow.getString("storagevehicle_code"))
+ );
+
+ String box_high = boxDao.getBox_high();
+ if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) {
+ height = "1";
+ } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) {
+ height = "2";
+ } else {
+ height = "3";
+ }
+ moveParam.put("height", height);
+ moveParam.put("vehicle_type", boxDao.getVehicle_type());
+ moveParam.put("move_block_num", jsonLow.getString("block_num"));
+
+ // 查询物料id
+ StIvtIostorinvdis disDao = iStIvtIostorinvdisService.list(
+ new QueryWrapper().lambda()
+ .ne(StIvtIostorinvdis::getWork_status,IOSEnum.BILL_STATUS.code("完成"))
+ .eq(StIvtIostorinvdis::getBox_no, jsonLow.getString("storagevehicle_code"))
+ ).get(0);
+
+ moveParam.put("material_id", disDao.getMaterial_id());
JSONObject jsonMove = inBussManageService.getOneStruct(moveParam);
// 生成任务
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java
index b58db433f..832d900ae 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBoxManageServiceImpl.java
@@ -69,9 +69,6 @@ public class InBoxManageServiceImpl implements InBoxManageService {
@Autowired
private WmsToAcsService wmsToAcsService;
- @Autowired
- private AcsToWmsService acsToWmsService;
-
@Autowired
private ISysParamService iSysParamService;
@@ -161,10 +158,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
@Override
@Transactional
public void boxBinVehicle(JSONObject whereJson) {
- // 载具表
- WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_storagevehicleinfo");
- // 载具扩展属性表
- WQLObject veExtTab = WQLObject.getWQLObject("md_pb_storagevehicleext");
+
/*
* 查询mes木箱信息,插入木箱信息表
*/
@@ -205,28 +199,6 @@ public class InBoxManageServiceImpl implements InBoxManageService {
if (boxDao == null) {
throw new BadRequestException("木箱不存在!");
}
-// JSONObject jsonVehicle = vehicleTab.query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'")
-// .uniqueResult(0);
-// if (ObjectUtil.isEmpty(jsonVehicle)) {
-// throw new BadRequestException("载具不存在!");
-// }
-// JSONObject ext_jo = veExtTab.query("storagevehicle_code = '"+jsonVehicle.getString("storagevehicle_code")+"'").uniqueResult(0);
-// if (ObjectUtil.isEmpty(ext_jo)) {
-// JSONObject jsonVeExt = new JSONObject();
-// jsonVeExt.put("storagevehicleext_id", IdUtil.getLongId());
-// jsonVeExt.put("storagevehicle_id", jsonVehicle.getLongValue("storagevehicle_id"));
-// jsonVeExt.put("storagevehicle_code", jsonVehicle.getString("storagevehicle_code"));
-// jsonVeExt.put("storagevehicle_type", jsonVehicle.getString("storagevehicle_type"));
-// jsonVeExt.put("pcsn", whereJson.getString("box_no"));
-// jsonVeExt.put("device_uuid", IdUtil.getLongId());
-// jsonVeExt.put("update_time", DateUtil.now());
-// veExtTab.insert(jsonVeExt);
-// }else {
-// ext_jo.put("pcsn", whereJson.getString("box_no"));
-// ext_jo.put("device_uuid", IdUtil.getLongId());
-// ext_jo.put("update_time", DateUtil.now());
-// veExtTab.update(ext_jo);
-// }
// 下发桁架任务
@@ -242,6 +214,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
device_ja.add(device_jo);
JSONObject device_data = wmsToAcsService.getPointStatus(device_ja);
JSONObject data = device_data.getJSONArray("data").getJSONObject(0);
+ AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsService.class);
//如果此时拆叠盘位为空
if (data.getIntValue("qty") == 0) {
//生成空托盘出库任务
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java
index 17cfb5c40..b299ad1cb 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/InBussManageServiceImpl.java
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONAware;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -119,12 +120,27 @@ public class InBussManageServiceImpl implements InBussManageService {
* 判断是否有仓位
* 判断条件:库区、仓库、是否启用、是否删除、未锁定、没有载具
*/
- JSONArray attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
- "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " +
- "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonObject.getString("stor_id") + "' " +
- "AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" +
- "AND height = '" + jsonObject.getString("height") + "'" +
- "AND sect_id = '" + jsonObject.getString("sect_id") + "'").getResultJSONArray(0);
+ // 是否是移库: 提前确定的巷道
+ String block_num = jsonObject.getString("move_block_num");
+
+ JSONArray attrArry = new JSONArray();
+ if (ObjectUtil.isEmpty(block_num)) {
+ attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
+ "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " +
+ "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonObject.getString("stor_id") + "' " +
+ "AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" +
+ "AND height = '" + jsonObject.getString("height") + "'" +
+ "AND sect_id = '" + jsonObject.getString("sect_id") + "'").getResultJSONArray(0);
+ } else {
+ attrArry = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
+ "AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " +
+ "AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonObject.getString("stor_id") + "' " +
+ "AND storagevehicle_type = '" + jsonObject.getString("vehicle_type") + "'" +
+ "AND height = '" + jsonObject.getString("height") + "'" +
+ "AND sect_id = '" + jsonObject.getString("sect_id") + "' AND block_num = '"+block_num+"'")
+ .getResultJSONArray(0);
+ }
+
if (ObjectUtil.isEmpty(attrArry)) {
notInRowList.clear();
@@ -143,7 +159,10 @@ public class InBussManageServiceImpl implements InBussManageService {
jsonSub.put("vehicle_type", jsonObject.getString("vehicle_type"));
jsonSub.put("height", jsonObject.getString("height"));
- String block_num = getMinBlock(jsonSub);
+ // 不是移库则需要找新巷道
+ if (ObjectUtil.isEmpty(block_num)) {
+ block_num = getMinBlock(jsonSub);
+ }
/*
* 确定哪排:查看每排相同木箱规格等 的数量,找到数量最小的那排
*/
@@ -156,6 +175,11 @@ public class InBussManageServiceImpl implements InBussManageService {
jsonSub.put("row_num", row_num);
JSONObject jsonAttr = queryStruct(jsonSub);
+ // 如果是移库空并且仓位为空则报错
+ if (ObjectUtil.isNotEmpty(jsonObject.getString("move_block_num")) && ObjectUtil.isEmpty(jsonAttr)) {
+ throw new BadRequestException("仓位不足!");
+ }
+
// 为空则新找巷道
if (ObjectUtil.isEmpty(jsonAttr)) {
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java
index e9b6c7a76..d9d300604 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java
@@ -10,6 +10,8 @@ import org.hibernate.annotations.Source;
import org.nl.b_lms.sch.point.dao.SchBasePoint;
import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper;
import org.nl.b_lms.sch.point.service.IschBasePointService;
+import org.nl.b_lms.sch.task.dao.SchBaseTask;
+import org.nl.b_lms.sch.task.dao.mapper.SchBaseTaskMapper;
import org.nl.b_lms.sch.tasks.TwoLashTask;
import org.nl.b_lms.sch.tasks.TwoOutHeapTask;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
@@ -184,6 +186,7 @@ public class LashManageServiceImpl implements LashManageService {
jsonTaskParam.put("task_type", "010707");
jsonTaskParam.put("start_device_code", whereJson.getString("device_code"));
jsonTaskParam.put("next_device_code", end_point);
+ jsonTaskParam.put("task_group_id", whereJson.getString("task_group_id"));
jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code"));
jsonTaskParam.put("is_auto_issue", is_move);
@@ -218,6 +221,7 @@ public class LashManageServiceImpl implements LashManageService {
jsonTaskParam.put("task_type", "010720");
whereJson.put("containerType", whereJson.getString("vehicle_type"));
jsonTaskParam.put("point_code1", whereJson.getString("device_code"));
+ jsonTaskParam.put("task_group_id", whereJson.getString("task_group_id"));
jsonTaskParam.put("point_code2", next_device_code);
jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code"));
jsonTaskParam.put("request_param", whereJson);
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java
index c419f8b50..acb269bd8 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBussManageServiceImpl.java
@@ -5,6 +5,9 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
+import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService;
@@ -17,6 +20,7 @@ import org.nl.common.utils.IdUtil;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
+import org.nl.system.service.param.ISysParamService;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
import org.nl.wms.st.inbill.service.StorPublicService;
import org.nl.wms.st.instor.service.HandMoveStorService;
@@ -72,6 +76,12 @@ public class OutBussManageServiceImpl implements OutBussManageService {
@Autowired
private HandMoveStorService handMoveStorService;
+ @Autowired
+ private ISysParamService iSysParamService;
+
+ @Autowired
+ private IBstIvtBoxinfoService iBstIvtBoxinfoService;
+
@Override
@Transactional
public void lockStruct(List param, JSONObject json) {
@@ -381,6 +391,29 @@ public class OutBussManageServiceImpl implements OutBussManageService {
moveParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId());
moveParam.put("box_no", json.getString("storagevehicle_code"));
moveParam.put("material_id", jsonMater.getString("material_id"));
+ //根据木箱高度,判断入库仓位的高度、
+ String height = "";
+ String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
+ String heightLevel2 = iSysParamService.findByCode("height_level_2").getValue();
+ // 查询木箱信息
+ BstIvtBoxinfo boxDao = iBstIvtBoxinfoService.getOne(
+ new QueryWrapper().lambda()
+ .eq(BstIvtBoxinfo::getBox_no, json.getString("storagevehicle_code"))
+ );
+
+ String box_high = boxDao.getBox_high();
+ if (Integer.parseInt(box_high) <= Integer.parseInt(heightLevel1)) {
+ height = "1";
+ } else if (Integer.parseInt(box_high) > Integer.parseInt(heightLevel1) && Integer.parseInt(box_high) <= Integer.parseInt(heightLevel2)) {
+ height = "2";
+ } else {
+ height = "3";
+ }
+ moveParam.put("height", height);
+ moveParam.put("vehicle_type", boxDao.getVehicle_type());
+ // 移库巷道
+ moveParam.put("move_block_num",json.getString("block_num"));
+
JSONObject jsonMove = inBussManageService.getOneStruct(moveParam);
// 查询移出货位的库存物料
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java
index 27e78ddd7..7b97a0da3 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutVehicleManageServiceImpl.java
@@ -79,6 +79,13 @@ public class OutVehicleManageServiceImpl implements OutVehicleManageService {
throw new BadRequestException("终点点位不存在或未启用!");
}*/
+ //判断当前点位是否存在任务,如果存在则不生成任务
+ WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task");
+ JSONObject jsonObject = wo_Task.query("point_code2 = '" + whereJson.getString("device_code") + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
+ if (ObjectUtil.isNotEmpty(jsonObject)){
+ throw new BadRequestException("点位【"+jsonObject.getString("point_code2")+"】正在出空托盘任务!");
+ }
+
JSONObject jsonAttr = getStruct(whereJson);
if (ObjectUtil.isEmpty(jsonAttr)) {
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBussManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBussManageService.java
index 332a11f87..45ebf41ae 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBussManageService.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/InBussManageService.java
@@ -38,6 +38,7 @@ public interface InBussManageService {
* sect_id:库区标识
* material_id: 物料标识
* box_no:木箱号
+ * move_block_num: 是否移库:提前确定巷道
* }
* @return JSONObject 仓位对象
*/
diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/LashManageService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/LashManageService.java
index 0d86dce68..d5ae9ab9e 100644
--- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/LashManageService.java
+++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/service/LashManageService.java
@@ -17,6 +17,7 @@ public interface LashManageService {
* @param whereJson {
* device_code:起点
* vehicle_code: 箱号
+ * task_group_id: 任务组
*
* }
*/
@@ -28,6 +29,7 @@ public interface LashManageService {
* device_code:起点
* vehicle_code: 箱号
* vehicle_type: 载具类型
+ * task_group_id: 任务组
*
* }
*/
diff --git a/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java b/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java
index d0405e84d..9eb668558 100644
--- a/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java
+++ b/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskExecutePool.java
@@ -17,6 +17,7 @@ package org.nl.config.thread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -63,6 +64,8 @@ public class AsyncTaskExecutePool implements AsyncConfigurer {
return executor;
}
+
+
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return (throwable, method, objects) -> {
diff --git a/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskProperties.java b/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskProperties.java
index 51c6f92ab..b97096f0e 100644
--- a/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskProperties.java
+++ b/lms/nladmin-system/src/main/java/org/nl/config/thread/AsyncTaskProperties.java
@@ -37,4 +37,6 @@ public class AsyncTaskProperties {
private int keepAliveSeconds;
private int queueCapacity;
+
+ private int awaitTerminationSeconds;
}
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java
index 6ea777cfa..75d52607a 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialbaseServiceImpl.java
@@ -43,6 +43,8 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
@Override
public Map queryAll(Map whereJson, Pageable page) {
String search = MapUtil.getStr(whereJson, "search");
+ //只查询木箱
+ String box = MapUtil.getStr(whereJson, "box");
//物料限制的时候使用,初始化页面
String class_idStr = MapUtil.getStr(whereJson, "class_idStr");
String material_type_id = MapUtil.getStr(whereJson, "material_type_id");
@@ -60,6 +62,13 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
}
map.put("search", "%" + search + "%");
}
+ if (!StrUtil.isEmpty(box)) {
+ //处理转义字符
+ if (box.contains("\\")) {
+ box = box.replace("\\", "\\\\\\");
+ }
+ map.put("box", "%" + box + "%");
+ }
//处理物料当前节点的所有子节点
if (!StrUtil.isEmpty(material_type_id)) {
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql
index e42bb7ce0..fea6e648c 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMD_ME_MATERIAL.wql
@@ -15,6 +15,7 @@
#################################################
输入.flag TYPEAS s_string
输入.search TYPEAS s_string
+ 输入.box TYPEAS s_string
输入.class_code TYPEAS s_string
输入.idssql TYPEAS f_string
输入.classIds TYPEAS f_string
@@ -59,6 +60,11 @@
mb.material_name like 输入.search
)
ENDOPTION
+ OPTION 输入.box <> ""
+ (
+ mb.material_name like 输入.box
+ )
+ ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
index bb50cebe3..ea8d1d595 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
@@ -1968,11 +1968,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
log.info("applyTwo返回参数:---------------------------------------------" + result.toString());
return result;
}
- }catch (Exception ex){
- log.info("applyTwo申请任务异常,任务类型为:---------------------------------------------"+type+"异常信息为"+ex.toString());
- result.put("status", HttpStatus.BAD_REQUEST.value());
- result.put("message","申请任务异常,任务类型为:"+type+"异常信息为"+ex.toString());
- return result;
}
finally {
if (tryLock) {
diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue
index 64daf2c6d..7313a8da2 100644
--- a/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue
+++ b/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue
@@ -66,7 +66,7 @@ export default {
url: 'api/Materialbase',
idField: 'material_id',
sort: 'material_id,desc',
- query: { search: 'MX', material_id: '' },
+ query: { box: '木箱', material_id: '' },
crudMethod: { ...crudMaterattr }
})
},