fix:出库强制确认插入包装关系记录表、NG卷接口修改
This commit is contained in:
@@ -221,7 +221,7 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl<PdmBiSubpack
|
||||
throw new BadRequestException("反馈内容有误," + jsonObject.toString());
|
||||
}
|
||||
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("待检区")))) {
|
||||
// throw new BadRequestException("该子卷不在待检区,请检查!");
|
||||
|
||||
@@ -172,7 +172,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
.map(row -> row.getBigDecimal("plan_qty"))
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.doubleValue();
|
||||
whereJson.put("total_qty",total_qty);
|
||||
whereJson.put("total_qty", total_qty);
|
||||
|
||||
StIvtIostorinv mstDao = updataMst(whereJson, null);
|
||||
this.save(mstDao);
|
||||
@@ -287,7 +287,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
StIvtIostorinvdtl dtlDao = dtlDaoList.get(i);
|
||||
|
||||
// 调用分配库存公共方法
|
||||
List<StIvtIostorinvdis> disArr = outBussManageService.divIvt(dtlDao,ivtList);
|
||||
List<StIvtIostorinvdis> disArr = outBussManageService.divIvt(dtlDao, ivtList);
|
||||
|
||||
disDaoList.addAll(disArr);
|
||||
}
|
||||
@@ -305,7 +305,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
jsonLockParam.put("lock_type", IOSEnum.LOCK_TYPE.code("出库锁"));
|
||||
jsonLockParam.put("operate", IOSEnum.IO_TYPE.code("出库"));
|
||||
|
||||
outBussManageService.lockStruct(paramLockList,jsonLockParam);
|
||||
outBussManageService.lockStruct(paramLockList, jsonLockParam);
|
||||
|
||||
// 插入分配明细
|
||||
iStIvtIostorinvdisService.saveBatch(disDaoList);
|
||||
@@ -315,7 +315,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
} else {
|
||||
throw new BadRequestException("其他出库单当前正在分配货位,请等待几秒再进行操作!");
|
||||
}
|
||||
} finally {
|
||||
} finally {
|
||||
if (lock.isLocked() && lock.isHeldByCurrentThread()) {
|
||||
lock.unlock();
|
||||
}
|
||||
@@ -347,7 +347,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
List<StIvtIostorinvdtl> dtlDaoList = iStIvtIostorinvdtlService.list(
|
||||
new QueryWrapper<StIvtIostorinvdtl>().lambda()
|
||||
.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("分配中"))
|
||||
.gt(StIvtIostorinvdtl::getUnassign_qty, 0)
|
||||
.orderByAsc(StIvtIostorinvdtl::getSeq_no)
|
||||
@@ -363,7 +363,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
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);
|
||||
|
||||
if (ObjectUtil.isEmpty(ivtList)) {
|
||||
@@ -395,7 +395,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
} 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("operate", IOSEnum.IO_TYPE.code("出库"));
|
||||
|
||||
outBussManageService.lockStruct(lockList,jsonLockParam);
|
||||
outBussManageService.lockStruct(lockList, jsonLockParam);
|
||||
|
||||
// 插入分配明细
|
||||
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("生成"));
|
||||
} else {
|
||||
dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中"));
|
||||
@@ -554,7 +554,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
this.updateMstStatus(mstDao.getIostorinv_id());
|
||||
|
||||
/*删除出库任务*/
|
||||
String task_id_in = disList.stream()
|
||||
String task_id_in = disList.stream()
|
||||
.map(row -> row.getString("task_id"))
|
||||
.distinct()
|
||||
.collect(Collectors.joining("','"));
|
||||
@@ -567,7 +567,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
JSONObject taskParam = new JSONObject();
|
||||
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("operate", IOSEnum.IO_TYPE.code("出库"));
|
||||
|
||||
outBussManageService.lockStruct(paramLockList,jsonLockParam);
|
||||
outBussManageService.lockStruct(paramLockList, jsonLockParam);
|
||||
} else {
|
||||
throw new BadRequestException("其他出库单当前正在取消分配,请等待几秒再进行操作!");
|
||||
}
|
||||
@@ -633,8 +633,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 定义一个函数,将需要分组的元素映射到一个建的集合里
|
||||
Function<JSONObject, List<String>> compositeKey = row ->
|
||||
Arrays.asList(row.getString("box_length"), row.getString("box_width"),
|
||||
row.getString("box_high"),row.getString("sale_order_name"),
|
||||
row.getString("material_id")
|
||||
row.getString("box_high"), row.getString("sale_order_name"),
|
||||
row.getString("material_id")
|
||||
);
|
||||
|
||||
Map<List<String>, List<JSONObject>> groupingDisMap =
|
||||
@@ -642,10 +642,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
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 ->
|
||||
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")
|
||||
);
|
||||
|
||||
@@ -713,10 +713,10 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
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");
|
||||
}
|
||||
@@ -800,7 +800,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
if (ObjectUtil.isNotEmpty(taskArr)) {
|
||||
throw new BadRequestException("有任务未完成,不允许强制确认!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 需要更新的库存集合
|
||||
List<JSONObject> needUpdateIvtList = new ArrayList<>();
|
||||
@@ -835,7 +835,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
// 更新库存
|
||||
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("出库"));
|
||||
|
||||
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("','"));
|
||||
|
||||
// 子卷包装集合
|
||||
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);
|
||||
|
||||
// 子卷包装出入记录集合
|
||||
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);
|
||||
|
||||
for (int i = 0; i < disDaoList.size(); i++) {
|
||||
@@ -906,14 +906,18 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
throw new BadRequestException("此子卷不存在或不为入库状态:" + disDao.getPcsn());
|
||||
}
|
||||
|
||||
//插入包装关系出入库记录表
|
||||
jsonSub.put("bill_code", mstDao.getBill_code());
|
||||
jsonSub.put("bill_id", mstDao.getIostorinv_id());
|
||||
jsonSub.put("bill_type", mstDao.getBill_type());
|
||||
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);
|
||||
JSONObject out_sub = subRecordTab.query("container_name = '" + disDao.getPcsn() + "' AND status = '" + SUBEnum.STATUS.code("出库") + "' AND bill_code = '" + mstDao.getBill_code() + "'").uniqueResult(0);
|
||||
//存在任务正常完成,人工点击强制完成的情况
|
||||
if (ObjectUtil.isEmpty(out_sub)) {
|
||||
//插入包装关系出入库记录表
|
||||
jsonSub.put("bill_code", mstDao.getBill_code());
|
||||
jsonSub.put("bill_id", mstDao.getIostorinv_id());
|
||||
jsonSub.put("bill_type", mstDao.getBill_type());
|
||||
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("出库"));
|
||||
}
|
||||
|
||||
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();
|
||||
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("调拨出库"))) {
|
||||
createOutIos(disDaoList,mstDao);
|
||||
createOutIos(disDaoList, mstDao);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -990,7 +994,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
.uniqueResult(0);
|
||||
|
||||
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);
|
||||
}
|
||||
outBussManageService.upateIvt(needUpdateIvtList,mstDao,IOSEnum.IVT_CHANGE.code("减库存"));
|
||||
outBussManageService.upateIvt(needUpdateIvtList, mstDao, IOSEnum.IVT_CHANGE.code("减库存"));
|
||||
|
||||
// 更新仓位
|
||||
List<String> paramLockList = new ArrayList<>();
|
||||
@@ -1036,7 +1040,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
jsonLockParam.put("operate", IOSEnum.IO_TYPE.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())) {
|
||||
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("task_type", "010712");
|
||||
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();
|
||||
String task_id = taskBean.createTask(taskParam);
|
||||
@@ -1130,8 +1134,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 创建调拨入库单
|
||||
*
|
||||
* @param disDaoList:出库分配明细集合
|
||||
* @param mstDao: 出库单据对象
|
||||
* @param 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()))
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
paramMap.put("stor_id",jsonAttr.getString("stor_id"));
|
||||
paramMap.put("bill_status",IOSEnum.BILL_STATUS.code("分配中"));
|
||||
paramMap.put("total_qty",total_qty);
|
||||
paramMap.put("detail_count",disDaoList.size());
|
||||
paramMap.put("bill_type",IOSEnum.IN_TYPE.code("调拨入库"));
|
||||
paramMap.put("biz_date",DateUtil.today());
|
||||
paramMap.put("out_stor_id",mstDao.getStor_id());
|
||||
paramMap.put("source_id",dtlDao.getVbeln());
|
||||
paramMap.put("stor_id", jsonAttr.getString("stor_id"));
|
||||
paramMap.put("bill_status", IOSEnum.BILL_STATUS.code("分配中"));
|
||||
paramMap.put("total_qty", total_qty);
|
||||
paramMap.put("detail_count", disDaoList.size());
|
||||
paramMap.put("bill_type", IOSEnum.IN_TYPE.code("调拨入库"));
|
||||
paramMap.put("biz_date", DateUtil.today());
|
||||
paramMap.put("out_stor_id", mstDao.getStor_id());
|
||||
paramMap.put("source_id", dtlDao.getVbeln());
|
||||
paramMap.put("remark", "");
|
||||
|
||||
// 明细数据
|
||||
@@ -1214,7 +1219,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
tableData.add(jsonDtl);
|
||||
}
|
||||
|
||||
paramMap.put("tableData",tableData);
|
||||
paramMap.put("tableData", tableData);
|
||||
|
||||
// 调用入库服务插入入库
|
||||
iStIvtIostorinvService.insertMst(paramMap);
|
||||
@@ -1222,16 +1227,17 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 更新子卷包装关系为包装
|
||||
JSONObject jsonSub = new JSONObject();
|
||||
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: 单据标识
|
||||
* @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");
|
||||
|
||||
@@ -1267,7 +1273,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 判断是深位还是浅位
|
||||
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)) {
|
||||
// 加入需要移库的集合
|
||||
@@ -1286,11 +1292,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 生成任务前处理
|
||||
* @param disLikeList: 相同规格木箱、订单、物料的分配明细集合
|
||||
*
|
||||
* @param disLikeList: 相同规格木箱、订单、物料的分配明细集合
|
||||
* @param iostorinv_id: 单据标识
|
||||
* @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");
|
||||
|
||||
@@ -1326,7 +1333,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 判断是深位还是浅位
|
||||
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)) {
|
||||
// 加入需要移库的集合
|
||||
@@ -1338,15 +1345,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
|
||||
// 创建移库单下发移库任务
|
||||
outBussManageService.createMove2(needMoveAttrList,allTransactionConsumer);
|
||||
outBussManageService.createMove2(needMoveAttrList, allTransactionConsumer);
|
||||
|
||||
return needCreateAttrList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否阻挡
|
||||
* @param jsonAttr 要出库的仓位
|
||||
* @param attrRowList 相同规格所在排所有仓位
|
||||
*
|
||||
* @param jsonAttr 要出库的仓位
|
||||
* @param attrRowList 相同规格所在排所有仓位
|
||||
* @param iostorinv_id 单据标识
|
||||
* @return JSONObject 需要移库的仓位
|
||||
*/
|
||||
@@ -1437,7 +1445,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 查询物料id
|
||||
StIvtIostorinvdis disDao = iStIvtIostorinvdisService.list(
|
||||
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"))
|
||||
).get(0);
|
||||
|
||||
@@ -1449,7 +1457,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonLow.getString("storagevehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
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);
|
||||
|
||||
// 更新移入货位为出库异常货位
|
||||
jsonMove.put("lock_type",IOSEnum.LOCK_TYPE.code("出库异常锁"));
|
||||
jsonMove.put("lock_type", IOSEnum.LOCK_TYPE.code("出库异常锁"));
|
||||
jsonLow.put("task_code", task_id);
|
||||
attrTab.update(jsonMove);
|
||||
}
|
||||
@@ -1484,8 +1492,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 判断是否阻挡
|
||||
* @param jsonAttr 要出库的仓位
|
||||
* @param attrRowList 相同规格所在排所有仓位
|
||||
*
|
||||
* @param jsonAttr 要出库的仓位
|
||||
* @param attrRowList 相同规格所在排所有仓位
|
||||
* @param iostorinv_id 单据标识
|
||||
* @return JSONObject 需要移库的仓位
|
||||
*/
|
||||
@@ -1578,7 +1587,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 查询物料id
|
||||
StIvtIostorinvdis disDao = iStIvtIostorinvdisService.list(
|
||||
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"))
|
||||
).get(0);
|
||||
|
||||
@@ -1590,7 +1599,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + jsonLow.getString("storagevehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
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);
|
||||
|
||||
// 更新移入货位为出库异常货位
|
||||
jsonMove.put("lock_type",IOSEnum.LOCK_TYPE.code("出库异常锁"));
|
||||
jsonMove.put("lock_type", IOSEnum.LOCK_TYPE.code("出库异常锁"));
|
||||
jsonMove.put("inv_code", jsonLow.getString("storagevehicle_code"));
|
||||
jsonLow.put("task_code", task_id);
|
||||
attrTab.update(jsonMove);
|
||||
@@ -1625,11 +1634,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 创建任务
|
||||
*
|
||||
* @param taskMangeList:仓位集合
|
||||
* @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");
|
||||
// 点位表
|
||||
@@ -1669,9 +1679,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 确定终点: 根据仓位所在排确定终点
|
||||
|
||||
String end_device_code = "";
|
||||
if("1".equals(flag)){
|
||||
if ("1".equals(flag)) {
|
||||
end_device_code = IsEndCode2(json);
|
||||
}else{
|
||||
} else {
|
||||
end_device_code = IsEndCode(json);
|
||||
}
|
||||
|
||||
@@ -1691,7 +1701,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
JSONObject jsonTask = taskList.stream()
|
||||
.filter(row -> row.getString("task_id").equals(json.getString("task_code")))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
|
||||
|
||||
|
||||
// 完成
|
||||
if (jsonTask.getString("task_status").equals(TaskStatusEnum.FINISHED.getCode())) {
|
||||
@@ -1706,7 +1716,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
// 标记任务
|
||||
jsonTask.put("is_auto_issue",IOSEnum.IS_SEND.code("否"));
|
||||
jsonTask.put("is_auto_issue", IOSEnum.IS_SEND.code("否"));
|
||||
taskService.update(jsonTask);
|
||||
continue;
|
||||
}
|
||||
@@ -1716,7 +1726,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
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());
|
||||
|
||||
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("浅")));
|
||||
} else {
|
||||
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);
|
||||
if (ObjectUtil.isEmpty(jsonPoint)) {
|
||||
throw new BadRequestException("出库点位不存在:"+end_device_code);
|
||||
throw new BadRequestException("出库点位不存在:" + end_device_code);
|
||||
}
|
||||
|
||||
disDaoList.forEach(row -> {
|
||||
@@ -1767,11 +1776,12 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 创建任务
|
||||
*
|
||||
* @param taskMangeList:仓位集合
|
||||
* @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");
|
||||
// 点位表
|
||||
@@ -1814,9 +1824,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
// 确定终点: 根据仓位所在排确定终点
|
||||
|
||||
String end_device_code = "";
|
||||
if("1".equals(flag)){
|
||||
if ("1".equals(flag)) {
|
||||
end_device_code = IsEndCode2(json);
|
||||
}else{
|
||||
} else {
|
||||
end_device_code = IsEndCode(json);
|
||||
}
|
||||
|
||||
@@ -1852,7 +1862,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
iStIvtIostorinvdisService.updateBatchById(disDaoList);
|
||||
|
||||
// 标记任务
|
||||
jsonTask.put("is_auto_issue",IOSEnum.IS_SEND.code("否"));
|
||||
jsonTask.put("is_auto_issue", IOSEnum.IS_SEND.code("否"));
|
||||
taskService.update(jsonTask);
|
||||
continue;
|
||||
}
|
||||
@@ -1862,7 +1872,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
JSONObject jsonVeExt = extTab.query("pcsn = '" + json.getString("storagevehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
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());
|
||||
|
||||
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("浅")));
|
||||
} else {
|
||||
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);
|
||||
if (ObjectUtil.isEmpty(jsonPoint)) {
|
||||
throw new BadRequestException("出库点位不存在:"+end_device_code);
|
||||
throw new BadRequestException("出库点位不存在:" + end_device_code);
|
||||
}
|
||||
|
||||
disDaoList.forEach(row -> {
|
||||
@@ -1913,6 +1922,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 确定终点:根据仓位所在排确定终点
|
||||
*
|
||||
* @param structDao:仓位对象
|
||||
* @return 终点
|
||||
*/
|
||||
@@ -1926,6 +1936,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 更新异常货位
|
||||
*
|
||||
* @param 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("task_code", "");
|
||||
|
||||
attrTab.update(jsonUpdate,"struct_code IN ('"+String.join("','",structCodeInList)+"')");
|
||||
attrTab.update(jsonUpdate, "struct_code IN ('" + String.join("','", structCodeInList) + "')");
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新主表状态
|
||||
*
|
||||
* @param iostorinv_id 主表标识
|
||||
*/
|
||||
public void updateMstStatus(Long iostorinv_id) {
|
||||
@@ -2105,6 +2117,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 判断是否有异常货位 - 10
|
||||
*
|
||||
* @param disDaoList - 分配明细集合
|
||||
* @return 仓位
|
||||
*/
|
||||
@@ -2115,7 +2128,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
String result = "";
|
||||
// 查找库内是否有异常货位
|
||||
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);
|
||||
|
||||
if (ObjectUtil.isEmpty(attrExceptionList)) {
|
||||
@@ -2156,7 +2169,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
.findFirst().orElse(null);
|
||||
|
||||
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")
|
||||
.uniqueResult(0);
|
||||
|
||||
result = "请先下发木箱号为【"+jsonTask.getString("vehicle_code")+"】的出库任务!";
|
||||
result = "请先下发木箱号为【" + jsonTask.getString("vehicle_code") + "】的出库任务!";
|
||||
|
||||
}
|
||||
return result;
|
||||
@@ -2172,6 +2185,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
|
||||
/**
|
||||
* 出库下发任务前校验:校验木箱类型数据是否都已经维护
|
||||
*
|
||||
* @param iostorinv_id 主表id
|
||||
*/
|
||||
private void boxCheck(String iostorinv_id) {
|
||||
@@ -2219,7 +2233,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
.map(MdpbBoxtype::getBox_type)
|
||||
.collect(Collectors.joining("','"));
|
||||
|
||||
throw new BadRequestException("请先维护规格类型为【"+message+"】的木箱规格类型信息!");
|
||||
throw new BadRequestException("请先维护规格类型为【" + message + "】的木箱规格类型信息!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.StringReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -1252,6 +1253,10 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
.body(String.valueOf(param))
|
||||
.timeout(time_out)//超时时间,毫秒
|
||||
.execute().body();
|
||||
resultMsg = resultMsg
|
||||
.replace("\\\"", "\"") // 移除字符串转义
|
||||
.replace("\"[", "[") // 修复数组开头
|
||||
.replace("]\"", "]"); // 修复数组结尾
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("GetChildWeightIsSamplePDA接口输出参数为:-------------------" + result.toString());
|
||||
|
||||
@@ -1259,7 +1264,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
if ("E".equals(RTYPE)) {
|
||||
throw new BadRequestException(result.getString("RTMSG"));
|
||||
}
|
||||
JSONObject rtdat = result.getJSONObject("RTDAT");
|
||||
JSONObject rtdat = result.getJSONArray("RTDAT").getJSONObject(0);
|
||||
result.put("result", false);
|
||||
result.put("rtdat", rtdat);
|
||||
if (ObjectUtil.isNotEmpty(rtdat.getString("IsSampleTest")) && ObjectUtil.isNotEmpty(rtdat.getString("SampleCount")) && ObjectUtil.isNotEmpty(rtdat.getString("SampleTestResult"))) {
|
||||
|
||||
Reference in New Issue
Block a user