fix:出库强制确认插入包装关系记录表、NG卷接口修改

This commit is contained in:
zhouz
2025-07-22 14:57:09 +08:00
parent a366af32dd
commit 741789d332
3 changed files with 113 additions and 94 deletions

View File

@@ -221,7 +221,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
throw new BadRequestException("反馈内容有误," + jsonObject.toString()); throw new BadRequestException("反馈内容有误," + jsonObject.toString());
} }
if (!jsonObject.getBoolean("result")) { if (!jsonObject.getBoolean("result")) {
throw new BadRequestException("MES查询出当前子卷【" + whereJson.get("container_name") + "】检测结果不通过无法进行装箱MES反馈内容为" + jsonObject.getString("rtdat") + ""); throw new BadRequestException("MES查询出当前子卷【" + whereJson.get("container_name") + "】检测结果不通过无法进行装箱MES反馈内容为" + jsonObject.getString("rtdat") + "");
} }
// if (ivtList.stream().noneMatch(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")))) { // if (ivtList.stream().noneMatch(r -> r.getPoint_status().equals(PackageInfoIvtEnum.POINT_STATUS.code("待检区")))) {
// throw new BadRequestException("该子卷不在待检区,请检查!"); // throw new BadRequestException("该子卷不在待检区,请检查!");

View File

@@ -172,7 +172,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.map(row -> row.getBigDecimal("plan_qty")) .map(row -> row.getBigDecimal("plan_qty"))
.reduce(BigDecimal.ZERO, BigDecimal::add) .reduce(BigDecimal.ZERO, BigDecimal::add)
.doubleValue(); .doubleValue();
whereJson.put("total_qty",total_qty); whereJson.put("total_qty", total_qty);
StIvtIostorinv mstDao = updataMst(whereJson, null); StIvtIostorinv mstDao = updataMst(whereJson, null);
this.save(mstDao); this.save(mstDao);
@@ -287,7 +287,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
StIvtIostorinvdtl dtlDao = dtlDaoList.get(i); StIvtIostorinvdtl dtlDao = dtlDaoList.get(i);
// 调用分配库存公共方法 // 调用分配库存公共方法
List<StIvtIostorinvdis> disArr = outBussManageService.divIvt(dtlDao,ivtList); List<StIvtIostorinvdis> disArr = outBussManageService.divIvt(dtlDao, ivtList);
disDaoList.addAll(disArr); disDaoList.addAll(disArr);
} }
@@ -305,7 +305,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonLockParam.put("lock_type", IOSEnum.LOCK_TYPE.code("出库锁")); jsonLockParam.put("lock_type", IOSEnum.LOCK_TYPE.code("出库锁"));
jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库")); jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库"));
outBussManageService.lockStruct(paramLockList,jsonLockParam); outBussManageService.lockStruct(paramLockList, jsonLockParam);
// 插入分配明细 // 插入分配明细
iStIvtIostorinvdisService.saveBatch(disDaoList); iStIvtIostorinvdisService.saveBatch(disDaoList);
@@ -315,7 +315,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
} else { } else {
throw new BadRequestException("其他出库单当前正在分配货位,请等待几秒再进行操作!"); throw new BadRequestException("其他出库单当前正在分配货位,请等待几秒再进行操作!");
} }
} finally { } finally {
if (lock.isLocked() && lock.isHeldByCurrentThread()) { if (lock.isLocked() && lock.isHeldByCurrentThread()) {
lock.unlock(); lock.unlock();
} }
@@ -347,7 +347,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
List<StIvtIostorinvdtl> dtlDaoList = iStIvtIostorinvdtlService.list( List<StIvtIostorinvdtl> dtlDaoList = iStIvtIostorinvdtlService.list(
new QueryWrapper<StIvtIostorinvdtl>().lambda() new QueryWrapper<StIvtIostorinvdtl>().lambda()
.eq(StIvtIostorinvdtl::getIostorinv_id, mstDao.getIostorinv_id()) .eq(StIvtIostorinvdtl::getIostorinv_id, mstDao.getIostorinv_id())
.eq(StIvtIostorinvdtl::getIostorinvdtl_id,jsonDtl.getString("iostorinvdtl_id")) .eq(StIvtIostorinvdtl::getIostorinvdtl_id, jsonDtl.getString("iostorinvdtl_id"))
.le(StIvtIostorinvdtl::getBill_status, IOSEnum.BILL_STATUS.code("分配中")) .le(StIvtIostorinvdtl::getBill_status, IOSEnum.BILL_STATUS.code("分配中"))
.gt(StIvtIostorinvdtl::getUnassign_qty, 0) .gt(StIvtIostorinvdtl::getUnassign_qty, 0)
.orderByAsc(StIvtIostorinvdtl::getSeq_no) .orderByAsc(StIvtIostorinvdtl::getSeq_no)
@@ -363,7 +363,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.collect(Collectors.joining("','")); .collect(Collectors.joining("','"));
List<JSONObject> ivtList = WQL.getWO("BST_OUTDIV").addParam("flag", "1").addParam("stor_id", mstDao.getStor_id().toString()) List<JSONObject> ivtList = WQL.getWO("BST_OUTDIV").addParam("flag", "1").addParam("stor_id", mstDao.getStor_id().toString())
.addParam("box_in", "('"+box_in+"')") .addParam("box_in", "('" + box_in + "')")
.process().getResultJSONArray(0).toJavaList(JSONObject.class); .process().getResultJSONArray(0).toJavaList(JSONObject.class);
if (ObjectUtil.isEmpty(ivtList)) { if (ObjectUtil.isEmpty(ivtList)) {
@@ -395,7 +395,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
} }
} else { } else {
// 调用分配库存公共方法 // 调用分配库存公共方法
disDaoList = outBussManageService.manualDivIvt(dtlDaoList.get(0),ivtList); disDaoList = outBussManageService.manualDivIvt(dtlDaoList.get(0), ivtList);
} }
// 更新仓位 // 更新仓位
@@ -411,7 +411,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonLockParam.put("lock_type", IOSEnum.LOCK_TYPE.code("出库锁")); jsonLockParam.put("lock_type", IOSEnum.LOCK_TYPE.code("出库锁"));
jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库")); jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库"));
outBussManageService.lockStruct(lockList,jsonLockParam); outBussManageService.lockStruct(lockList, jsonLockParam);
// 插入分配明细 // 插入分配明细
iStIvtIostorinvdisService.saveBatch(disDaoList); iStIvtIostorinvdisService.saveBatch(disDaoList);
@@ -492,7 +492,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
); );
/*更新库存*/ /*更新库存*/
outBussManageService.upateIvt(disList,mstDao,IOSEnum.IVT_CHANGE.code("减冻结")); outBussManageService.upateIvt(disList, mstDao, IOSEnum.IVT_CHANGE.code("减冻结"));
/* /*
* 更新明细、主单据 * 更新明细、主单据
@@ -538,7 +538,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
} }
// 未分配重量 = 计划重量 则 明细状态为生成 否则 为分配中 // 未分配重量 = 计划重量 则 明细状态为生成 否则 为分配中
if (dtlDao.getUnassign_qty().doubleValue() == dtlDao.getPlan_qty().doubleValue()){ if (dtlDao.getUnassign_qty().doubleValue() == dtlDao.getPlan_qty().doubleValue()) {
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("生成")); dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
} else { } else {
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中")); dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中"));
@@ -554,7 +554,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
this.updateMstStatus(mstDao.getIostorinv_id()); this.updateMstStatus(mstDao.getIostorinv_id());
/*删除出库任务*/ /*删除出库任务*/
String task_id_in = disList.stream() String task_id_in = disList.stream()
.map(row -> row.getString("task_id")) .map(row -> row.getString("task_id"))
.distinct() .distinct()
.collect(Collectors.joining("','")); .collect(Collectors.joining("','"));
@@ -567,7 +567,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
JSONObject taskParam = new JSONObject(); JSONObject taskParam = new JSONObject();
taskParam.put("is_delete", IOSEnum.IS_NOTANDYES.code("")); taskParam.put("is_delete", IOSEnum.IS_NOTANDYES.code(""));
taskService.update(taskParam,"task_id IN ('"+task_id_in+"')"); taskService.update(taskParam, "task_id IN ('" + task_id_in + "')");
/* /*
* 删除移库单、移库任务 * 删除移库单、移库任务
@@ -590,7 +590,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonLockParam.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); jsonLockParam.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库")); jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库"));
outBussManageService.lockStruct(paramLockList,jsonLockParam); outBussManageService.lockStruct(paramLockList, jsonLockParam);
} else { } else {
throw new BadRequestException("其他出库单当前正在取消分配,请等待几秒再进行操作!"); throw new BadRequestException("其他出库单当前正在取消分配,请等待几秒再进行操作!");
} }
@@ -633,8 +633,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 定义一个函数,将需要分组的元素映射到一个建的集合里 // 定义一个函数,将需要分组的元素映射到一个建的集合里
Function<JSONObject, List<String>> compositeKey = row -> Function<JSONObject, List<String>> compositeKey = row ->
Arrays.asList(row.getString("box_length"), row.getString("box_width"), Arrays.asList(row.getString("box_length"), row.getString("box_width"),
row.getString("box_high"),row.getString("sale_order_name"), row.getString("box_high"), row.getString("sale_order_name"),
row.getString("material_id") row.getString("material_id")
); );
Map<List<String>, List<JSONObject>> groupingDisMap = Map<List<String>, List<JSONObject>> groupingDisMap =
@@ -642,10 +642,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
for (List<JSONObject> disLikeList : groupingDisMap.values()) { for (List<JSONObject> disLikeList : groupingDisMap.values()) {
// 调用任务生成处理 // 调用任务生成处理
List<JSONObject> taskMangeList = createTaskMange(disLikeList,mstDao.getIostorinv_id().toString()); List<JSONObject> taskMangeList = createTaskMange(disLikeList, mstDao.getIostorinv_id().toString());
// 创建任务并下发一组任务 // 创建任务并下发一组任务
createTask(taskMangeList,disLikeList,whereJson.getString("point_code")); createTask(taskMangeList, disLikeList, whereJson.getString("point_code"));
} }
// 下发任务:判断当前单据是否有正在执行的的任务 // 下发任务:判断当前单据是否有正在执行的的任务
@@ -698,7 +698,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 定义一个函数,将需要分组的元素映射到一个建的集合里 // 定义一个函数,将需要分组的元素映射到一个建的集合里
Function<JSONObject, List<String>> compositeKey = row -> Function<JSONObject, List<String>> compositeKey = row ->
Arrays.asList(row.getString("box_length"), row.getString("box_width"), Arrays.asList(row.getString("box_length"), row.getString("box_width"),
row.getString("box_high"),row.getString("sale_order_name"), row.getString("box_high"), row.getString("sale_order_name"),
row.getString("material_id") row.getString("material_id")
); );
@@ -713,10 +713,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
for (List<JSONObject> disLikeList : groupingDisMap.values()) { for (List<JSONObject> disLikeList : groupingDisMap.values()) {
// 调用任务生成处理 // 调用任务生成处理
List<JSONObject> taskMangeList = createTaskMange2(disLikeList,mstDao.getIostorinv_id().toString(),allTransactionConsumer); List<JSONObject> taskMangeList = createTaskMange2(disLikeList, mstDao.getIostorinv_id().toString(), allTransactionConsumer);
// 创建任务并下发一组任务 // 创建任务并下发一组任务
createTask2(taskMangeList,disLikeList,whereJson.getString("point_code"),allTransactionConsumer); createTask2(taskMangeList, disLikeList, whereJson.getString("point_code"), allTransactionConsumer);
allTransactionConsumer.accept("finish"); allTransactionConsumer.accept("finish");
} }
@@ -835,7 +835,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 更新库存 // 更新库存
if (ObjectUtil.isNotEmpty(needUpdateIvtList)) { if (ObjectUtil.isNotEmpty(needUpdateIvtList)) {
outBussManageService.upateIvt(needUpdateIvtList,mstDao,IOSEnum.IVT_CHANGE.code("减库存")); outBussManageService.upateIvt(needUpdateIvtList, mstDao, IOSEnum.IVT_CHANGE.code("减库存"));
} }
// 更新仓位: 主存区仓位不更新 // 更新仓位: 主存区仓位不更新
@@ -854,7 +854,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库")); jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库"));
if (ObjectUtil.isNotEmpty(paramLockList)) { if (ObjectUtil.isNotEmpty(paramLockList)) {
outBussManageService.lockStruct(paramLockList,jsonLockParam); outBussManageService.lockStruct(paramLockList, jsonLockParam);
} }
// 更新单据 // 更新单据
@@ -872,11 +872,11 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.collect(Collectors.joining("','")); .collect(Collectors.joining("','"));
// 子卷包装集合 // 子卷包装集合
List<JSONObject> subList = subTab.query("container_name IN ('" + pcsn_in + "') AND status = '"+SUBEnum.STATUS.code("入库")+"'") List<JSONObject> subList = subTab.query("container_name IN ('" + pcsn_in + "') AND status = '" + SUBEnum.STATUS.code("入库") + "'")
.getResultJSONArray(0).toJavaList(JSONObject.class); .getResultJSONArray(0).toJavaList(JSONObject.class);
// 子卷包装出入记录集合 // 子卷包装出入记录集合
List<JSONObject> suRebList = subRecordTab.query("container_name IN ('" + pcsn_in + "') AND status = '"+SUBEnum.STATUS.code("入库")+"' AND bill_code = '"+mstDao.getBill_code()+"'") List<JSONObject> suRebList = subRecordTab.query("container_name IN ('" + pcsn_in + "') AND status = '" + SUBEnum.STATUS.code("入库") + "' AND bill_code = '" + mstDao.getBill_code() + "'")
.getResultJSONArray(0).toJavaList(JSONObject.class); .getResultJSONArray(0).toJavaList(JSONObject.class);
for (int i = 0; i < disDaoList.size(); i++) { for (int i = 0; i < disDaoList.size(); i++) {
@@ -906,14 +906,18 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
throw new BadRequestException("此子卷不存在或不为入库状态:" + disDao.getPcsn()); throw new BadRequestException("此子卷不存在或不为入库状态:" + disDao.getPcsn());
} }
//插入包装关系出入库记录表 JSONObject out_sub = subRecordTab.query("container_name = '" + disDao.getPcsn() + "' AND status = '" + SUBEnum.STATUS.code("出库") + "' AND bill_code = '" + mstDao.getBill_code() + "'").uniqueResult(0);
jsonSub.put("bill_code", mstDao.getBill_code()); //存在任务正常完成,人工点击强制完成的情况
jsonSub.put("bill_id", mstDao.getIostorinv_id()); if (ObjectUtil.isEmpty(out_sub)) {
jsonSub.put("bill_type", mstDao.getBill_type()); //插入包装关系出入库记录表
jsonSub.put("io_type", IOSEnum.IO_TYPE.code("出库")); jsonSub.put("bill_code", mstDao.getBill_code());
jsonSub.put("insert_time", DateUtil.now()); jsonSub.put("bill_id", mstDao.getIostorinv_id());
jsonSub.put("record_id", cn.hutool.core.util.IdUtil.getSnowflake(1, 1).nextId()); jsonSub.put("bill_type", mstDao.getBill_type());
subRecordTab.insert(jsonSub); jsonSub.put("io_type", IOSEnum.IO_TYPE.code("出库"));
jsonSub.put("insert_time", DateUtil.now());
jsonSub.put("record_id", cn.hutool.core.util.IdUtil.getSnowflake(1, 1).nextId());
subRecordTab.insert(jsonSub);
}
} }
/* /*
@@ -927,7 +931,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonSubParam.put("status", SUBEnum.STATUS.code("出库")); jsonSubParam.put("status", SUBEnum.STATUS.code("出库"));
} }
subTab.update(jsonSubParam,"container_name IN ('"+pcsn_in+"')"); subTab.update(jsonSubParam, "container_name IN ('" + pcsn_in + "')");
/* /*
* 更新任务为完成 * 更新任务为完成
@@ -935,13 +939,13 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
JSONObject jsonTaskParam = new JSONObject(); JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_status", TaskStatusEnum.FINISHED.getCode()); jsonTaskParam.put("task_status", TaskStatusEnum.FINISHED.getCode());
taskService.update(jsonTaskParam,"task_id IN ('"+String.join("','", needUpdateTaskList)+"')"); taskService.update(jsonTaskParam, "task_id IN ('" + String.join("','", needUpdateTaskList) + "')");
/* /*
* 如果是调拨出库则生成调拨入库单 * 如果是调拨出库则生成调拨入库单
*/ */
if (mstDao.getBill_type().equals(IOSEnum.OUT_TYPE.code("调拨出库"))) { if (mstDao.getBill_type().equals(IOSEnum.OUT_TYPE.code("调拨出库"))) {
createOutIos(disDaoList,mstDao); createOutIos(disDaoList, mstDao);
} }
/* /*
@@ -990,7 +994,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.uniqueResult(0); .uniqueResult(0);
if (jsonTask == null) { if (jsonTask == null) {
throw new BadRequestException("查询不到操作的任务记录!"+whereJson.getString("task_id")); throw new BadRequestException("查询不到操作的任务记录!" + whereJson.getString("task_id"));
} }
// 查询分配明细 // 查询分配明细
@@ -1022,7 +1026,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
needUpdateIvtList.add(jsonIvt); needUpdateIvtList.add(jsonIvt);
} }
outBussManageService.upateIvt(needUpdateIvtList,mstDao,IOSEnum.IVT_CHANGE.code("减库存")); outBussManageService.upateIvt(needUpdateIvtList, mstDao, IOSEnum.IVT_CHANGE.code("减库存"));
// 更新仓位 // 更新仓位
List<String> paramLockList = new ArrayList<>(); List<String> paramLockList = new ArrayList<>();
@@ -1036,7 +1040,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库")); jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库"));
paramLockList.add(disDao.getStruct_code()); paramLockList.add(disDao.getStruct_code());
outBussManageService.lockStruct(paramLockList,jsonLockParam); outBussManageService.lockStruct(paramLockList, jsonLockParam);
if (IOSEnum.OUT_TYPE.code("改切出库").equals(mstDao.getBill_type()) || IOSEnum.OUT_TYPE.code("返检出库").equals(mstDao.getBill_type())) { if (IOSEnum.OUT_TYPE.code("改切出库").equals(mstDao.getBill_type()) || IOSEnum.OUT_TYPE.code("返检出库").equals(mstDao.getBill_type())) {
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
@@ -1119,7 +1123,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num"))); taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num")));
taskParam.put("task_type", "010712"); taskParam.put("task_type", "010712");
taskParam.put("car_no", "此货位LMS系统未有库存请待出至【CK2001】点位后确认实物并重新手工入回库!"); taskParam.put("car_no", "此货位LMS系统未有库存请待出至【CK2001】点位后确认实物并重新手工入回库!");
taskParam.put("vehicle_code",IOSEnum.IS_NOTANDYES.code("")); taskParam.put("vehicle_code", IOSEnum.IS_NOTANDYES.code(""));
TwoExcepionalMoveTask taskBean = new TwoExcepionalMoveTask(); TwoExcepionalMoveTask taskBean = new TwoExcepionalMoveTask();
String task_id = taskBean.createTask(taskParam); String task_id = taskBean.createTask(taskParam);
@@ -1130,8 +1134,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 创建调拨入库单 * 创建调拨入库单
*
* @param disDaoList出库分配明细集合 * @param disDaoList出库分配明细集合
* @param mstDao 出库单据对象 * @param mstDao 出库单据对象
*/ */
private void createOutIos(List<StIvtIostorinvdis> disDaoList, StIvtIostorinv mstDao) { private void createOutIos(List<StIvtIostorinvdis> disDaoList, StIvtIostorinv mstDao) {
// 仓库表 // 仓库表
@@ -1164,14 +1169,14 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.map(row -> BigDecimal.valueOf(row.getPlan_qty().doubleValue())) .map(row -> BigDecimal.valueOf(row.getPlan_qty().doubleValue()))
.reduce(BigDecimal.ZERO, BigDecimal::add); .reduce(BigDecimal.ZERO, BigDecimal::add);
paramMap.put("stor_id",jsonAttr.getString("stor_id")); paramMap.put("stor_id", jsonAttr.getString("stor_id"));
paramMap.put("bill_status",IOSEnum.BILL_STATUS.code("分配中")); paramMap.put("bill_status", IOSEnum.BILL_STATUS.code("分配中"));
paramMap.put("total_qty",total_qty); paramMap.put("total_qty", total_qty);
paramMap.put("detail_count",disDaoList.size()); paramMap.put("detail_count", disDaoList.size());
paramMap.put("bill_type",IOSEnum.IN_TYPE.code("调拨入库")); paramMap.put("bill_type", IOSEnum.IN_TYPE.code("调拨入库"));
paramMap.put("biz_date",DateUtil.today()); paramMap.put("biz_date", DateUtil.today());
paramMap.put("out_stor_id",mstDao.getStor_id()); paramMap.put("out_stor_id", mstDao.getStor_id());
paramMap.put("source_id",dtlDao.getVbeln()); paramMap.put("source_id", dtlDao.getVbeln());
paramMap.put("remark", ""); paramMap.put("remark", "");
// 明细数据 // 明细数据
@@ -1214,7 +1219,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
tableData.add(jsonDtl); tableData.add(jsonDtl);
} }
paramMap.put("tableData",tableData); paramMap.put("tableData", tableData);
// 调用入库服务插入入库 // 调用入库服务插入入库
iStIvtIostorinvService.insertMst(paramMap); iStIvtIostorinvService.insertMst(paramMap);
@@ -1222,16 +1227,17 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 更新子卷包装关系为包装 // 更新子卷包装关系为包装
JSONObject jsonSub = new JSONObject(); JSONObject jsonSub = new JSONObject();
jsonSub.put("status", SUBEnum.STATUS.code("包装")); jsonSub.put("status", SUBEnum.STATUS.code("包装"));
subTab.update(jsonSub,"container_name IN ('" + pcsn_in + "')"); subTab.update(jsonSub, "container_name IN ('" + pcsn_in + "')");
} }
/** /**
* 生成任务前处理 * 生成任务前处理
* @param disLikeList 相同规格木箱、订单、物料的分配明细集合 *
* @param disLikeList 相同规格木箱、订单、物料的分配明细集合
* @param iostorinv_id 单据标识 * @param iostorinv_id 单据标识
* @return List<JSONObject> 生成任务的集合 * @return List<JSONObject> 生成任务的集合
*/ */
private List<JSONObject> createTaskMange(List<JSONObject> disLikeList, String iostorinv_id) { private List<JSONObject> createTaskMange(List<JSONObject> disLikeList, String iostorinv_id) {
// 仓位表 // 仓位表
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
@@ -1267,7 +1273,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 判断是深位还是浅位 // 判断是深位还是浅位
if (jsonAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code(""))) { if (jsonAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code(""))) {
// 深位:判断对应浅位是否阻挡 // 深位:判断对应浅位是否阻挡
JSONObject jsonBoxStop = ifBoxStop(jsonAttr,attrRowList,iostorinv_id); JSONObject jsonBoxStop = ifBoxStop(jsonAttr, attrRowList, iostorinv_id);
if (ObjectUtil.isNotEmpty(jsonBoxStop)) { if (ObjectUtil.isNotEmpty(jsonBoxStop)) {
// 加入需要移库的集合 // 加入需要移库的集合
@@ -1286,11 +1292,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 生成任务前处理 * 生成任务前处理
* @param disLikeList 相同规格木箱、订单、物料的分配明细集合 *
* @param disLikeList 相同规格木箱、订单、物料的分配明细集合
* @param iostorinv_id 单据标识 * @param iostorinv_id 单据标识
* @return List<JSONObject> 生成任务的集合 * @return List<JSONObject> 生成任务的集合
*/ */
private List<JSONObject> createTaskMange2(List<JSONObject> disLikeList, String iostorinv_id, Consumer<String> allTransactionConsumer) { private List<JSONObject> createTaskMange2(List<JSONObject> disLikeList, String iostorinv_id, Consumer<String> allTransactionConsumer) {
// 仓位表 // 仓位表
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr"); WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
@@ -1326,7 +1333,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 判断是深位还是浅位 // 判断是深位还是浅位
if (jsonAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code(""))) { if (jsonAttr.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code(""))) {
// 深位:判断对应浅位是否阻挡 // 深位:判断对应浅位是否阻挡
JSONObject jsonBoxStop = ifBoxStop2(jsonAttr,attrRowList,iostorinv_id,allTransactionConsumer); JSONObject jsonBoxStop = ifBoxStop2(jsonAttr, attrRowList, iostorinv_id, allTransactionConsumer);
if (ObjectUtil.isNotEmpty(jsonBoxStop)) { if (ObjectUtil.isNotEmpty(jsonBoxStop)) {
// 加入需要移库的集合 // 加入需要移库的集合
@@ -1338,15 +1345,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
} }
// 创建移库单下发移库任务 // 创建移库单下发移库任务
outBussManageService.createMove2(needMoveAttrList,allTransactionConsumer); outBussManageService.createMove2(needMoveAttrList, allTransactionConsumer);
return needCreateAttrList; return needCreateAttrList;
} }
/** /**
* 判断是否阻挡 * 判断是否阻挡
* @param jsonAttr 要出库的仓位 *
* @param attrRowList 相同规格所在排所有仓位 * @param jsonAttr 要出库的仓位
* @param attrRowList 相同规格所在排所有仓位
* @param iostorinv_id 单据标识 * @param iostorinv_id 单据标识
* @return JSONObject 需要移库的仓位 * @return JSONObject 需要移库的仓位
*/ */
@@ -1437,7 +1445,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 查询物料id // 查询物料id
StIvtIostorinvdis disDao = iStIvtIostorinvdisService.list( StIvtIostorinvdis disDao = iStIvtIostorinvdisService.list(
new QueryWrapper<StIvtIostorinvdis>().lambda() new QueryWrapper<StIvtIostorinvdis>().lambda()
.ne(StIvtIostorinvdis::getWork_status,IOSEnum.BILL_STATUS.code("完成")) .ne(StIvtIostorinvdis::getWork_status, IOSEnum.BILL_STATUS.code("完成"))
.eq(StIvtIostorinvdis::getBox_no, jsonLow.getString("storagevehicle_code")) .eq(StIvtIostorinvdis::getBox_no, jsonLow.getString("storagevehicle_code"))
).get(0); ).get(0);
@@ -1449,7 +1457,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonLow.getString("storagevehicle_code") + "'") JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonLow.getString("storagevehicle_code") + "'")
.uniqueResult(0); .uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) { if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+jsonLow.getString("storagevehicle_code")); throw new BadRequestException("此木箱没有绑定托盘号!" + jsonLow.getString("storagevehicle_code"));
} }
// 生成任务 // 生成任务
@@ -1471,7 +1479,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
attrTab.update(jsonLow); attrTab.update(jsonLow);
// 更新移入货位为出库异常货位 // 更新移入货位为出库异常货位
jsonMove.put("lock_type",IOSEnum.LOCK_TYPE.code("出库异常锁")); jsonMove.put("lock_type", IOSEnum.LOCK_TYPE.code("出库异常锁"));
jsonLow.put("task_code", task_id); jsonLow.put("task_code", task_id);
attrTab.update(jsonMove); attrTab.update(jsonMove);
} }
@@ -1484,8 +1492,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 判断是否阻挡 * 判断是否阻挡
* @param jsonAttr 要出库的仓位 *
* @param attrRowList 相同规格所在排所有仓位 * @param jsonAttr 要出库的仓位
* @param attrRowList 相同规格所在排所有仓位
* @param iostorinv_id 单据标识 * @param iostorinv_id 单据标识
* @return JSONObject 需要移库的仓位 * @return JSONObject 需要移库的仓位
*/ */
@@ -1578,7 +1587,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 查询物料id // 查询物料id
StIvtIostorinvdis disDao = iStIvtIostorinvdisService.list( StIvtIostorinvdis disDao = iStIvtIostorinvdisService.list(
new QueryWrapper<StIvtIostorinvdis>().lambda() new QueryWrapper<StIvtIostorinvdis>().lambda()
.ne(StIvtIostorinvdis::getWork_status,IOSEnum.BILL_STATUS.code("完成")) .ne(StIvtIostorinvdis::getWork_status, IOSEnum.BILL_STATUS.code("完成"))
.eq(StIvtIostorinvdis::getBox_no, jsonLow.getString("storagevehicle_code")) .eq(StIvtIostorinvdis::getBox_no, jsonLow.getString("storagevehicle_code"))
).get(0); ).get(0);
@@ -1590,7 +1599,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonLow.getString("storagevehicle_code") + "'") JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonLow.getString("storagevehicle_code") + "'")
.uniqueResult(0); .uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) { if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+jsonLow.getString("storagevehicle_code")); throw new BadRequestException("此木箱没有绑定托盘号!" + jsonLow.getString("storagevehicle_code"));
} }
// 生成任务 // 生成任务
@@ -1612,7 +1621,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
attrTab.update(jsonLow); attrTab.update(jsonLow);
// 更新移入货位为出库异常货位 // 更新移入货位为出库异常货位
jsonMove.put("lock_type",IOSEnum.LOCK_TYPE.code("出库异常锁")); jsonMove.put("lock_type", IOSEnum.LOCK_TYPE.code("出库异常锁"));
jsonMove.put("inv_code", jsonLow.getString("storagevehicle_code")); jsonMove.put("inv_code", jsonLow.getString("storagevehicle_code"));
jsonLow.put("task_code", task_id); jsonLow.put("task_code", task_id);
attrTab.update(jsonMove); attrTab.update(jsonMove);
@@ -1625,11 +1634,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 创建任务 * 创建任务
*
* @param taskMangeList仓位集合 * @param taskMangeList仓位集合
* @param disLikeList分配明细集合 * @param disLikeList分配明细集合
* @param point_code 终点 * @param point_code 终点
*/ */
private void createTask(List<JSONObject> taskMangeList,List<JSONObject> disLikeList, String point_code) { private void createTask(List<JSONObject> taskMangeList, List<JSONObject> disLikeList, String point_code) {
// 任务表 // 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task"); WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
// 点位表 // 点位表
@@ -1669,9 +1679,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 确定终点: 根据仓位所在排确定终点 // 确定终点: 根据仓位所在排确定终点
String end_device_code = ""; String end_device_code = "";
if("1".equals(flag)){ if ("1".equals(flag)) {
end_device_code = IsEndCode2(json); end_device_code = IsEndCode2(json);
}else{ } else {
end_device_code = IsEndCode(json); end_device_code = IsEndCode(json);
} }
@@ -1706,7 +1716,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
iStIvtIostorinvdisService.updateBatchById(disDaoList); iStIvtIostorinvdisService.updateBatchById(disDaoList);
// 标记任务 // 标记任务
jsonTask.put("is_auto_issue",IOSEnum.IS_SEND.code("")); jsonTask.put("is_auto_issue", IOSEnum.IS_SEND.code(""));
taskService.update(jsonTask); taskService.update(jsonTask);
continue; continue;
} }
@@ -1716,7 +1726,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'") JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
.uniqueResult(0); .uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) { if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code")); throw new BadRequestException("此木箱没有绑定托盘号!" + json.getString("storagevehicle_code"));
} }
// 生成任务 // 生成任务
@@ -1739,8 +1749,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString()); jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString());
if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("")) || if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("")) ||
json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code(""))) json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code(""))) {
{
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code(""))); jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("")));
} else { } else {
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code(""))); jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("")));
@@ -1753,7 +1762,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 更新分配明细 // 更新分配明细
JSONObject jsonPoint = schBasePointService.query("point_code = '" + end_device_code + "'").uniqueResult(0); JSONObject jsonPoint = schBasePointService.query("point_code = '" + end_device_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonPoint)) { if (ObjectUtil.isEmpty(jsonPoint)) {
throw new BadRequestException("出库点位不存在:"+end_device_code); throw new BadRequestException("出库点位不存在:" + end_device_code);
} }
disDaoList.forEach(row -> { disDaoList.forEach(row -> {
@@ -1767,11 +1776,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 创建任务 * 创建任务
*
* @param taskMangeList仓位集合 * @param taskMangeList仓位集合
* @param disLikeList分配明细集合 * @param disLikeList分配明细集合
* @param point_code 终点 * @param point_code 终点
*/ */
private void createTask2(List<JSONObject> taskMangeList,List<JSONObject> disLikeList, String point_code, Consumer<String> allTransactionConsumer) { private void createTask2(List<JSONObject> taskMangeList, List<JSONObject> disLikeList, String point_code, Consumer<String> allTransactionConsumer) {
// 任务表 // 任务表
WQLObject taskService = WQLObject.getWQLObject("sch_base_task"); WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
// 点位表 // 点位表
@@ -1814,9 +1824,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 确定终点: 根据仓位所在排确定终点 // 确定终点: 根据仓位所在排确定终点
String end_device_code = ""; String end_device_code = "";
if("1".equals(flag)){ if ("1".equals(flag)) {
end_device_code = IsEndCode2(json); end_device_code = IsEndCode2(json);
}else{ } else {
end_device_code = IsEndCode(json); end_device_code = IsEndCode(json);
} }
@@ -1852,7 +1862,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
iStIvtIostorinvdisService.updateBatchById(disDaoList); iStIvtIostorinvdisService.updateBatchById(disDaoList);
// 标记任务 // 标记任务
jsonTask.put("is_auto_issue",IOSEnum.IS_SEND.code("")); jsonTask.put("is_auto_issue", IOSEnum.IS_SEND.code(""));
taskService.update(jsonTask); taskService.update(jsonTask);
continue; continue;
} }
@@ -1862,7 +1872,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'") JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
.uniqueResult(0); .uniqueResult(0);
if (ObjectUtil.isEmpty(jsonVeExt)) { if (ObjectUtil.isEmpty(jsonVeExt)) {
throw new BadRequestException("此木箱没有绑定托盘号!"+json.getString("storagevehicle_code")); throw new BadRequestException("此木箱没有绑定托盘号!" + json.getString("storagevehicle_code"));
} }
// 生成任务 // 生成任务
@@ -1885,8 +1895,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString()); jsonTaskParam.put("table_fk", disDaoList.get(0).getIostorinv_id().toString());
if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("")) || if (json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code("")) ||
json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code(""))) json.getString("zdepth").equals(IOSEnum.ZDEPTH_STRUCT.code(""))) {
{
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code(""))); jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("")));
} else { } else {
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code(""))); jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("")));
@@ -1899,7 +1908,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
// 更新分配明细 // 更新分配明细
JSONObject jsonPoint = schBasePointService.query("point_code = '" + end_device_code + "'").uniqueResult(0); JSONObject jsonPoint = schBasePointService.query("point_code = '" + end_device_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonPoint)) { if (ObjectUtil.isEmpty(jsonPoint)) {
throw new BadRequestException("出库点位不存在:"+end_device_code); throw new BadRequestException("出库点位不存在:" + end_device_code);
} }
disDaoList.forEach(row -> { disDaoList.forEach(row -> {
@@ -1913,6 +1922,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 确定终点:根据仓位所在排确定终点 * 确定终点:根据仓位所在排确定终点
*
* @param structDao仓位对象 * @param structDao仓位对象
* @return 终点 * @return 终点
*/ */
@@ -1926,6 +1936,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 更新异常货位 * 更新异常货位
*
* @param disDaoList所有分配明细集合 * @param disDaoList所有分配明细集合
*/ */
private void UpdateExceptional(List<StIvtIostorinvdis> disDaoList) { private void UpdateExceptional(List<StIvtIostorinvdis> disDaoList) {
@@ -1969,11 +1980,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonUpdate.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); jsonUpdate.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
jsonUpdate.put("task_code", ""); jsonUpdate.put("task_code", "");
attrTab.update(jsonUpdate,"struct_code IN ('"+String.join("','",structCodeInList)+"')"); attrTab.update(jsonUpdate, "struct_code IN ('" + String.join("','", structCodeInList) + "')");
} }
/** /**
* 更新主表状态 * 更新主表状态
*
* @param iostorinv_id 主表标识 * @param iostorinv_id 主表标识
*/ */
public void updateMstStatus(Long iostorinv_id) { public void updateMstStatus(Long iostorinv_id) {
@@ -2105,6 +2117,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 判断是否有异常货位 - 10 * 判断是否有异常货位 - 10
*
* @param disDaoList - 分配明细集合 * @param disDaoList - 分配明细集合
* @return 仓位 * @return 仓位
*/ */
@@ -2115,7 +2128,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
String result = ""; String result = "";
// 查找库内是否有异常货位 // 查找库内是否有异常货位
List<JSONObject> attrExceptionList = attrTab List<JSONObject> attrExceptionList = attrTab
.query("sect_code = 'BZC01' AND is_delete = '0' AND is_used = '1' and lock_type = '" + IOSEnum.LOCK_TYPE.code("出库异常锁") + "' and zdepth = '"+IOSEnum.ZDEPTH_STRUCT.code("")+"'") .query("sect_code = 'BZC01' AND is_delete = '0' AND is_used = '1' and lock_type = '" + IOSEnum.LOCK_TYPE.code("出库异常锁") + "' and zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("") + "'")
.getResultJSONArray(0).toJavaList(JSONObject.class); .getResultJSONArray(0).toJavaList(JSONObject.class);
if (ObjectUtil.isEmpty(attrExceptionList)) { if (ObjectUtil.isEmpty(attrExceptionList)) {
@@ -2156,7 +2169,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.findFirst().orElse(null); .findFirst().orElse(null);
if (ObjectUtil.isEmpty(expJson)) { if (ObjectUtil.isEmpty(expJson)) {
return "货位【"+jsonObject.getString("struct_code")+"'】 对应的浅货位有出库异常任务,请检查!"; return "货位【" + jsonObject.getString("struct_code") + "'】 对应的浅货位有出库异常任务,请检查!";
} }
// 查询对应的异常任务 // 查询对应的异常任务
@@ -2164,7 +2177,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.query("handle_class = '" + TwoOutExceptionalTask.class.getName() + "' AND is_delete = '0' and point_code2 = '" + expJson.getString("struct_code") + "' ORDER BY create_time DESC") .query("handle_class = '" + TwoOutExceptionalTask.class.getName() + "' AND is_delete = '0' and point_code2 = '" + expJson.getString("struct_code") + "' ORDER BY create_time DESC")
.uniqueResult(0); .uniqueResult(0);
result = "请先下发木箱号为【"+jsonTask.getString("vehicle_code")+"】的出库任务!"; result = "请先下发木箱号为【" + jsonTask.getString("vehicle_code") + "】的出库任务!";
} }
return result; return result;
@@ -2172,6 +2185,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
/** /**
* 出库下发任务前校验:校验木箱类型数据是否都已经维护 * 出库下发任务前校验:校验木箱类型数据是否都已经维护
*
* @param iostorinv_id 主表id * @param iostorinv_id 主表id
*/ */
private void boxCheck(String iostorinv_id) { private void boxCheck(String iostorinv_id) {
@@ -2219,7 +2233,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
.map(MdpbBoxtype::getBox_type) .map(MdpbBoxtype::getBox_type)
.collect(Collectors.joining("','")); .collect(Collectors.joining("','"));
throw new BadRequestException("请先维护规格类型为【"+message+"】的木箱规格类型信息!"); throw new BadRequestException("请先维护规格类型为【" + message + "】的木箱规格类型信息!");
} }
} }
} }

View File

@@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.StringReader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -1252,6 +1253,10 @@ public class LmsToMesServiceImpl implements LmsToMesService {
.body(String.valueOf(param)) .body(String.valueOf(param))
.timeout(time_out)//超时时间,毫秒 .timeout(time_out)//超时时间,毫秒
.execute().body(); .execute().body();
resultMsg = resultMsg
.replace("\\\"", "\"") // 移除字符串转义
.replace("\"[", "[") // 修复数组开头
.replace("]\"", "]"); // 修复数组结尾
result = JSONObject.parseObject(resultMsg); result = JSONObject.parseObject(resultMsg);
log.info("GetChildWeightIsSamplePDA接口输出参数为-------------------" + result.toString()); log.info("GetChildWeightIsSamplePDA接口输出参数为-------------------" + result.toString());
@@ -1259,7 +1264,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
if ("E".equals(RTYPE)) { if ("E".equals(RTYPE)) {
throw new BadRequestException(result.getString("RTMSG")); throw new BadRequestException(result.getString("RTMSG"));
} }
JSONObject rtdat = result.getJSONObject("RTDAT"); JSONObject rtdat = result.getJSONArray("RTDAT").getJSONObject(0);
result.put("result", false); result.put("result", false);
result.put("rtdat", rtdat); result.put("rtdat", rtdat);
if (ObjectUtil.isNotEmpty(rtdat.getString("IsSampleTest")) && ObjectUtil.isNotEmpty(rtdat.getString("SampleCount")) && ObjectUtil.isNotEmpty(rtdat.getString("SampleTestResult"))) { if (ObjectUtil.isNotEmpty(rtdat.getString("IsSampleTest")) && ObjectUtil.isNotEmpty(rtdat.getString("SampleCount")) && ObjectUtil.isNotEmpty(rtdat.getString("SampleTestResult"))) {