add:增加现场开会确定后的6个新增需求;
This commit is contained in:
@@ -98,6 +98,9 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
|
||||
if (StrUtil.isNotEmpty(search)) {
|
||||
if (search.contains("CT")) {
|
||||
if (search.length() < 12) {
|
||||
throw new BadRequestException("输入长度有误,请输入正确的仓位信息:" + search);
|
||||
}
|
||||
String suffix = search.substring(search.length() - 6);
|
||||
int rowNum = Integer.parseInt(suffix.substring(0, 2));
|
||||
int colNum = Integer.parseInt(suffix.substring(2, 4));
|
||||
@@ -122,8 +125,8 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
queryWrapper.and(wrapper ->
|
||||
wrapper.like(Structattr::getStruct_code, search)
|
||||
.or()
|
||||
.like(Structattr::getStruct_code, search).or()
|
||||
.like(Structattr::getStruct_name, search)
|
||||
.like(Structattr::getStruct_name, search).or()
|
||||
.like(Structattr::getStoragevehicle_code, search)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -320,14 +323,18 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
|
||||
@Override
|
||||
public Structattr getByCode(String struct_code) {
|
||||
Structattr one = this.getOne(
|
||||
List<Structattr> list = this.list(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, struct_code)
|
||||
.eq(Structattr::getIs_used, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||
);
|
||||
if (ObjectUtil.isEmpty(one)) {
|
||||
throw new BadRequestException("此仓位编码不存在【"+struct_code+"】");
|
||||
if (ObjectUtil.isEmpty(list)) {
|
||||
throw new BadRequestException("此仓位编码不存在或未启用【" + struct_code + "】");
|
||||
}
|
||||
return one;
|
||||
if (list.size() > 1) {
|
||||
throw new BadRequestException("此仓位编码存在多个,请检查!【" + struct_code + "】");
|
||||
}
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -399,7 +406,8 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
List<String> strategy = one.getStrategy();
|
||||
Map<String, Decisioner> decisionerMap = SpringContextHolder.getBeansOfType(Decisioner.class);
|
||||
QueryWrapper<Structattr> query = new QueryWrapper<>();
|
||||
//一楼车辆特殊分配
|
||||
//分配规则:一楼车辆特殊分配H1AD01、H1AVB01开头 width =1 专门放蝴蝶龙托盘,
|
||||
// 起点是H1开头的,stor_type =1 ,是专门放超托的托盘;
|
||||
if ("firstfloorBC".equals(param.getStor_code())) {
|
||||
if ("3".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
@@ -407,9 +415,7 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.isNull("width")
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
.isNull("storagevehicle_code");
|
||||
} else if ("2".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
@@ -417,21 +423,17 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
.eq("width", 1)
|
||||
.ne("layer_num", maxLayerNum)
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
.isNull("storagevehicle_code");
|
||||
} else if ("1".equals(param.getSuitable_car())) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.eq("layer_num", maxLayerNum)
|
||||
.isNull("stor_type")
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
.isNull("storagevehicle_code");
|
||||
}
|
||||
} else {
|
||||
//特殊物料优先放3层
|
||||
//2楼特殊物料优先放3层
|
||||
if ("2FCP3C".equals(param.getStoragevehicle_type())) {
|
||||
query.eq("layer_num", maxLayerNum);
|
||||
} else {
|
||||
@@ -440,21 +442,17 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
.isNull("storagevehicle_code");
|
||||
}
|
||||
List<Structattr> list = this.list(query);
|
||||
if ("BCPCTZB".equals(param.getStoragevehicle_type())) {
|
||||
if ("BCPCTZB".equals(param.getStoragevehicle_type()) || "DJQCT".equals(param.getStoragevehicle_type())) {
|
||||
list = structattrMapper.getctnextcode();
|
||||
}
|
||||
if ("2FCP3C".equals(param.getStoragevehicle_type()) && ObjectUtil.isEmpty(list)) {
|
||||
query.eq("is_used", true)
|
||||
.eq("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq("sect_code", param.getSect_code())
|
||||
.and(wrapper -> wrapper.isNull("storagevehicle_code")
|
||||
.or()
|
||||
.eq("storagevehicle_code", " "));
|
||||
.isNull("storagevehicle_code");
|
||||
list = this.list(query);
|
||||
}
|
||||
for (String decisionerType : strategy) {
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||
import org.nl.wms.sch_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
@@ -28,7 +29,6 @@ import org.nl.wms.sch_manage.service.dao.mapper.SchBaseRegionMapper;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.wms.sch_manage.service.dto.SchBasePointQuery;
|
||||
import org.nl.wms.sch_manage.service.util.PointUtils;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -180,10 +180,10 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
public SchBasePoint getByCode(String point_code){
|
||||
SchBasePoint one = this.getOne(
|
||||
new QueryWrapper<SchBasePoint>().lambda()
|
||||
.eq(SchBasePoint::getPoint_code, point_code)
|
||||
.eq(SchBasePoint::getPoint_code, point_code).eq(SchBasePoint::getIs_used, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||
);
|
||||
if (ObjectUtil.isEmpty(one)) {
|
||||
throw new BadRequestException("点位编码为【"+point_code+"】的不存在!");
|
||||
throw new BadRequestException("点位编码为【" + point_code + "】的不存在或未启用!");
|
||||
}
|
||||
return one;
|
||||
}
|
||||
|
||||
@@ -90,6 +90,7 @@ public abstract class AbstractTask {
|
||||
public AcsResponse sendTaskOne(String task_id) {
|
||||
List<AcsTaskDto> taskDtoList = new ArrayList<>();
|
||||
taskDtoList.add(this.sendAcsParam(task_id));
|
||||
//return AcsResponse.requestOk();
|
||||
return this.renotifyAcs(taskDtoList);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.sch_manage.service.util;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -16,14 +17,20 @@ import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.sql.Time;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class AutoTask {
|
||||
|
||||
private static final ScheduledExecutorService DELAY_EXECUTOR = Executors.newSingleThreadScheduledExecutor();
|
||||
/**
|
||||
* 任务服务
|
||||
*/
|
||||
@@ -53,22 +60,107 @@ public class AutoTask {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时下发任务
|
||||
*/
|
||||
// private void sendTask() {
|
||||
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
// .eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||
// .eq(SchBaseTask::getTask_status, TaskStatus.CREATE.getCode()));
|
||||
// if (ObjectUtil.isEmpty(taskList)) {
|
||||
// return;
|
||||
// }
|
||||
// // 找出需要间隔的任务列表
|
||||
// List<SchBaseTask> delayTaskList = taskList.stream()
|
||||
// .filter(r -> "STInTask".equals(r.getConfig_code()))
|
||||
// .collect(Collectors.toList());
|
||||
// List<SchBaseTask> immediatelyTaskList = new ArrayList<>(taskList);
|
||||
// immediatelyTaskList.removeAll(delayTaskList);
|
||||
// //优先发送正常的任务列表
|
||||
// if (ObjectUtil.isNotEmpty(immediatelyTaskList)) {
|
||||
// // 整理下发acs参数
|
||||
// for (SchBaseTask taskDao : immediatelyTaskList) {
|
||||
// //任务优先级
|
||||
// taskDao.setPriority(StringUtils.isBlank(taskDao.getPriority()) ? "1" : taskDao.getPriority());
|
||||
// AbstractTask task = taskFactory.getTask(taskDao.getConfig_code());
|
||||
// task.sendTaskOne(taskDao.getTask_id());
|
||||
// }
|
||||
// }
|
||||
// //间隔3秒发一个任务
|
||||
// if (ObjectUtil.isNotEmpty(delayTaskList)) {
|
||||
// DELAY_EXECUTOR.execute(() -> {
|
||||
// try {
|
||||
// for (SchBaseTask taskDao : delayTaskList) {
|
||||
// //间隔3秒发一个任务
|
||||
// Thread.sleep(2000);
|
||||
// //任务优先级
|
||||
// taskDao.setPriority(StringUtils.isBlank(taskDao.getPriority()) ? "1" : taskDao.getPriority());
|
||||
// AbstractTask task = taskFactory.getTask(taskDao.getConfig_code());
|
||||
// task.sendTaskOne(taskDao.getTask_id());
|
||||
// }
|
||||
// } catch (InterruptedException e) {
|
||||
// Thread.currentThread().interrupt();
|
||||
// log.error("延迟任务被中断", e);
|
||||
// } catch (Exception e) {
|
||||
// log.error("延迟下发任务执行失败", e);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 定时下发任务
|
||||
*/
|
||||
private void sendTask() {
|
||||
// 1. 查询待发送的任务
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.CREATE.getCode()));
|
||||
if (ObjectUtil.isEmpty(taskList)) {
|
||||
return;
|
||||
}
|
||||
// 整理下发acs参数
|
||||
for (SchBaseTask taskDao : taskList) {
|
||||
//任务优先级
|
||||
taskDao.setPriority(StringUtils.isBlank(taskDao.getPriority()) ? "0" : taskDao.getPriority());
|
||||
AbstractTask task = taskFactory.getTask(taskDao.getConfig_code());
|
||||
task.sendTaskOne(taskDao.getTask_id());
|
||||
// 2. 统一设置默认优先级并分组
|
||||
Map<Boolean, List<SchBaseTask>> partitioned = taskList.stream()
|
||||
.peek(task -> {
|
||||
if (StringUtils.isBlank(task.getPriority())) {
|
||||
task.setPriority("1");
|
||||
}
|
||||
})
|
||||
.collect(Collectors.partitioningBy(r -> "STInTask".equals(r.getConfig_code())));
|
||||
List<SchBaseTask> immediatelyTaskList = partitioned.get(false);
|
||||
List<SchBaseTask> delayTaskList = partitioned.get(true);
|
||||
// 3. 立即下发任务
|
||||
if (ObjectUtil.isNotEmpty(immediatelyTaskList)) {
|
||||
//log.info("开始下发立即任务, 数量: {}", immediatelyTaskList.size());
|
||||
for (SchBaseTask task : immediatelyTaskList) {
|
||||
try {
|
||||
AbstractTask taskExecutor = taskFactory.getTask(task.getConfig_code());
|
||||
taskExecutor.sendTaskOne(task.getTask_id());
|
||||
// log.info("任务下发成功: taskId={}, configCode={}", task.getTask_id(), task.getConfig_code());
|
||||
} catch (Exception e) {
|
||||
log.error("任务下发失败: taskId={}, configCode={}", task.getTask_id(), task.getConfig_code(), e);
|
||||
}
|
||||
}
|
||||
//log.info("立即任务下发完成");
|
||||
}
|
||||
// 4. 延迟下发任务(间隔 7 秒,异步执行)
|
||||
if (ObjectUtil.isNotEmpty(delayTaskList)) {
|
||||
delayTaskList.sort(Comparator.comparing(SchBaseTask::getTask_code));
|
||||
//log.info("开始调度延迟任务, 数量: {}, 间隔: 7秒", delayTaskList.size());
|
||||
long delaySeconds = 0;
|
||||
for (SchBaseTask task : delayTaskList) {
|
||||
DELAY_EXECUTOR.schedule(() -> {
|
||||
try {
|
||||
AbstractTask taskExecutor = taskFactory.getTask(task.getConfig_code());
|
||||
taskExecutor.sendTaskOne(task.getTask_id());
|
||||
log.info("延迟任务下发成功: taskCode={}, configCode={}", task.getTask_code(), task.getConfig_code());
|
||||
} catch (Exception e) {
|
||||
log.error("延迟任务下发失败: taskId={}, configCode={}", task.getTask_id(), task.getConfig_code(), e);
|
||||
}
|
||||
}, delaySeconds, TimeUnit.SECONDS);
|
||||
delaySeconds += 7;
|
||||
}
|
||||
//log.info("延迟任务已全部提交调度");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -326,11 +326,12 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
ioStorInvDtl.put("plan_qty", row.get("qty"));
|
||||
Double qty = new Double(String.valueOf(row.get("qty")));
|
||||
total_qty = total_qty.add(new BigDecimal(qty));
|
||||
|
||||
//判断该载具编号是否已经存在库内
|
||||
Structattr structattr = iStructattrService.getOne(new LambdaQueryWrapper<>(Structattr.class).eq(Structattr::getStoragevehicle_code, whereJson.get("storagevehicle_code")));
|
||||
if (ObjectUtil.isNotEmpty(structattr)) {
|
||||
throw new BadRequestException("载具编码:" + row.get("storagevehicle_code") + "已存在库内,请对数据进行核实!");
|
||||
if (!Boolean.parseBoolean((String) whereJson.get("notStructCheck"))) {
|
||||
//判断该载具编号是否已经存在库内
|
||||
Structattr structattr = iStructattrService.getOne(new LambdaQueryWrapper<>(Structattr.class).eq(Structattr::getStoragevehicle_code, whereJson.get("storagevehicle_code")));
|
||||
if (ObjectUtil.isNotEmpty(structattr)) {
|
||||
throw new BadRequestException("载具编码:" + row.get("storagevehicle_code") + "已存在库内,请对数据进行核实!");
|
||||
}
|
||||
}
|
||||
IOStorInvDtl invDtl = ioStorInvDtl.toJavaObject(IOStorInvDtl.class);
|
||||
ioStorInvDtlMapper.insert(invDtl);
|
||||
@@ -467,6 +468,7 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
return ioStorInvMapper.getIODtl(whereJson);
|
||||
}
|
||||
|
||||
//默认分配,废弃
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void divStruct(JSONObject param) {
|
||||
@@ -494,31 +496,31 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
//是否自动分配仓位
|
||||
// Boolean checked = mst.getBoolean("checked");
|
||||
// if (ObjectUtil.isNotEmpty(checked) && checked) {
|
||||
//根据载具进行分配货位
|
||||
List<StrategyMater> maters = new ArrayList<>();
|
||||
for (IOStorInvDis dis : disList) {
|
||||
StrategyMater mater = new StrategyMater();
|
||||
mater.setPcsn(dis.getPcsn());
|
||||
mater.setMaterial_code(dis.getMaterial_code());
|
||||
mater.setMaterial_id(dis.getMaterial_id());
|
||||
mater.setQty(dis.getPlan_qty());
|
||||
maters.add(mater);
|
||||
}
|
||||
List<Structattr> structattrs = iStructattrService.inBoundSectDiv(
|
||||
StrategyStructParam.builder()
|
||||
.ioType(param.getString("ioType"))
|
||||
.sect_code(param.getString("sect_code"))
|
||||
.stor_code(param.getString("stor_code"))
|
||||
.storagevehicle_code(param.getString("storagevehicle_code"))
|
||||
.strategyMaters(maters)
|
||||
.build());
|
||||
Structattr struct = structattrs.get(0);
|
||||
sect_id = struct.getSect_id();
|
||||
sect_code = struct.getSect_code();
|
||||
sect_name = struct.getSect_name();
|
||||
struct_id = struct.getStruct_id();
|
||||
struct_code = struct.getStruct_code();
|
||||
struct_name = struct.getStruct_name();
|
||||
//根据载具进行分配货位
|
||||
List<StrategyMater> maters = new ArrayList<>();
|
||||
for (IOStorInvDis dis : disList) {
|
||||
StrategyMater mater = new StrategyMater();
|
||||
mater.setPcsn(dis.getPcsn());
|
||||
mater.setMaterial_code(dis.getMaterial_code());
|
||||
mater.setMaterial_id(dis.getMaterial_id());
|
||||
mater.setQty(dis.getPlan_qty());
|
||||
maters.add(mater);
|
||||
}
|
||||
List<Structattr> structattrs = iStructattrService.inBoundSectDiv(
|
||||
StrategyStructParam.builder()
|
||||
.ioType(param.getString("ioType"))
|
||||
.sect_code(param.getString("sect_code"))
|
||||
.stor_code(param.getString("stor_code"))
|
||||
.storagevehicle_code(param.getString("storagevehicle_code"))
|
||||
.strategyMaters(maters)
|
||||
.build());
|
||||
Structattr struct = structattrs.get(0);
|
||||
sect_id = struct.getSect_id();
|
||||
sect_code = struct.getSect_code();
|
||||
sect_name = struct.getSect_name();
|
||||
struct_id = struct.getStruct_id();
|
||||
struct_code = struct.getStruct_code();
|
||||
struct_name = struct.getStruct_name();
|
||||
// }
|
||||
// else {
|
||||
// Structattr structattr = iStructattrService.findById(map.getString("struct_id"));
|
||||
@@ -594,9 +596,13 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
JSONObject mst = JSONObject.parseObject(JSON.toJSONString(param));
|
||||
String iostorinvId = param.getString("iostorinv_id");
|
||||
String storagevehicleCode = param.getString("storagevehicle_code");
|
||||
String storagevehicle_stype=param.getString("storagevehicle_type");
|
||||
MdPbStoragevehicletype mdPbStoragevehicletype=iMdPbStoragevehicletypeService.getByCode(storagevehicle_stype);
|
||||
String suitable_car=mdPbStoragevehicletype.getSuitable_car();
|
||||
String storagevehicle_stype = param.getString("storagevehicle_type");
|
||||
MdPbStoragevehicletype mdPbStoragevehicletype = iMdPbStoragevehicletypeService.getByCode(storagevehicle_stype);
|
||||
//处理不同库区,一楼半成品特殊区域待检区
|
||||
if ("DJQHDL".equals(storagevehicle_stype) || "DJQMZB".equals(storagevehicle_stype) || "DJQCT".equals(storagevehicle_stype)) {
|
||||
param.put("sect_code", "1BCDJQ");
|
||||
}
|
||||
String suitable_car = mdPbStoragevehicletype.getSuitable_car();
|
||||
//判断该分配明细是否已经分配货位
|
||||
List<IOStorInvDis> disList = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<>(IOStorInvDis.class)
|
||||
.eq(IOStorInvDis::getIostorinv_id, iostorinvId)
|
||||
@@ -974,11 +980,16 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
//获取出入库单标识
|
||||
String iostorinv_id = item1.getIostorinv_id();
|
||||
IOStorInv ioStorInv = ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id, iostorinv_id));
|
||||
//获取单据编号
|
||||
String bill_code = ioStorInv.getBill_code();
|
||||
String source_name = ioStorInv.getSource_name();
|
||||
//acs完成任务状态为5,PC端完成为0
|
||||
if ("5".equals(task.getTask_status()) || "0".equals(task.getTask_status())) {
|
||||
if (!"1".equals(task.getTask_status())) {
|
||||
//转库解锁原库位
|
||||
if (ObjectUtil.isNotEmpty(iStructattrService.getOne(new LambdaQueryWrapper<Structattr>().eq(Structattr::getStruct_code, task.getPoint_code1())))) {
|
||||
LambdaUpdateWrapper<Structattr> wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.set(Structattr::getStoragevehicle_code, null)
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq(Structattr::getStruct_code, task.getPoint_code1());
|
||||
iStructattrService.update(wrapper);
|
||||
}
|
||||
//解锁库位
|
||||
JSONObject finish_map = new JSONObject();
|
||||
finish_map.put("struct_code", structCode);
|
||||
@@ -1009,6 +1020,9 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
invDtl.setIostorinvdtl_id(dtl_id);
|
||||
invDtl.setReal_qty(dtlMap.get(dtl_id));
|
||||
invDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成"));
|
||||
if (!"5".equals(task.getTask_status())) {
|
||||
invDtl.setRemark("该任务为PC端手动强制完成:" + now);
|
||||
}
|
||||
ioStorInvDtlMapper.updateById(invDtl);
|
||||
}
|
||||
// 查看明细是否全部完成
|
||||
@@ -1029,6 +1043,7 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
}
|
||||
}
|
||||
//回传给wms
|
||||
String source_name = ioStorInv.getSource_name();
|
||||
TOWMSMSG towmsmsg = new TOWMSMSG();
|
||||
towmsmsg.setType(task.getConfig_code().contains("In") ? "0" : "1");
|
||||
towmsmsg.setBill_code(source_name);
|
||||
@@ -1082,9 +1097,9 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
|
||||
String structCode = ioStorInvDis.get(0).getStruct_code();
|
||||
IOStorInvDis item1 = ioStorInvDis.get(0);
|
||||
//获取出入库单标识
|
||||
String iostorinv_id=item1.getIostorinv_id();
|
||||
IOStorInv ioStorInv=ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id,iostorinv_id));
|
||||
String source_name=ioStorInv.getSource_name();
|
||||
String iostorinv_id = item1.getIostorinv_id();
|
||||
IOStorInv ioStorInv = ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id, iostorinv_id));
|
||||
String source_name = ioStorInv.getSource_name();
|
||||
TOWMSMSG towmsmsg=new TOWMSMSG();
|
||||
towmsmsg.setType("0");
|
||||
towmsmsg.setBill_code(source_name);
|
||||
|
||||
@@ -1486,15 +1486,15 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
||||
);
|
||||
// 完成当前任务对应的所有分配明细
|
||||
for (IOStorInvDis ioStorInvDis : disList) {
|
||||
ioStorInvDisMapper.update(ioStorInvDis,new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getWork_status,IOSEnum.INBILL_DIS_STATUS.code("完成"))
|
||||
.eq(IOStorInvDis::getIostorinvdis_id,ioStorInvDis.getIostorinvdis_id()));
|
||||
ioStorInvDisMapper.update(ioStorInvDis, new LambdaUpdateWrapper<>(IOStorInvDis.class)
|
||||
.set(IOStorInvDis::getWork_status, IOSEnum.INBILL_DIS_STATUS.code("完成"))
|
||||
.eq(IOStorInvDis::getIostorinvdis_id, ioStorInvDis.getIostorinvdis_id()));
|
||||
}
|
||||
IOStorInvDis item = disList.get(0);
|
||||
//获取出入库单标识
|
||||
String iostorinv_id=item.getIostorinv_id();
|
||||
IOStorInv ioStorInv=ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id,iostorinv_id));
|
||||
String source_name=ioStorInv.getSource_name();
|
||||
String iostorinv_id = item.getIostorinv_id();
|
||||
IOStorInv ioStorInv = ioStorInvMapper.selectOne(new LambdaQueryWrapper<IOStorInv>().eq(IOStorInv::getIostorinv_id, iostorinv_id));
|
||||
String source_name = ioStorInv.getSource_name();
|
||||
TOWMSMSG towmsmsg=new TOWMSMSG();
|
||||
towmsmsg.setType("1");
|
||||
towmsmsg.setBill_code(source_name);
|
||||
|
||||
@@ -37,6 +37,7 @@ public class StIvtCheckdtl implements Serializable {
|
||||
/**
|
||||
* 任务标识
|
||||
*/
|
||||
|
||||
private String task_id;
|
||||
|
||||
/**
|
||||
|
||||
@@ -58,6 +58,23 @@ public class WmsToIWmscontroller {
|
||||
public ResponseEntity<Object> outBillTask(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(wmsToIWmsService.outBillTask(param), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/OutCheck")
|
||||
@Log("查询点位信息")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> outCheck(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(wmsToIWmsService.outCheck(param), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/inventory")
|
||||
@Log("盘点信息")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> inventory(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(wmsToIWmsService.inventory(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@PostMapping("/move")
|
||||
@Log("WMS移库任务推送")
|
||||
@SaIgnore
|
||||
|
||||
@@ -11,6 +11,10 @@ public interface WmsToIWmsService {
|
||||
WmstoIWmsResponse groupTask (JSONObject param);
|
||||
WmstoIWmsResponse groupCheck(JSONObject param);
|
||||
WmstoIWmsResponse outBillTask (JSONObject param);
|
||||
|
||||
WmstoIWmsResponse outCheck (JSONObject param);
|
||||
WmstoIWmsResponse inventory (JSONObject param);
|
||||
|
||||
WmstoIWmsResponse moveTask(JSONObject param);
|
||||
WmstoIWmsResponse checkBillTask(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package org.nl.wms.wbwms.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -9,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.protocol.HTTP;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
@@ -21,7 +19,6 @@ import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.StructattrMapper;
|
||||
import org.nl.wms.sch_manage.enums.PointStatusEnum;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
@@ -29,11 +26,10 @@ import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.CheckInTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.CheckOutTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.MoveTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.StInTask;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IInBillService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.service.IStIvtCheckmstService;
|
||||
@@ -57,9 +53,9 @@ import java.util.List;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
@Autowired
|
||||
private IStructattrService iStructattrService;
|
||||
@Autowired
|
||||
@Autowired
|
||||
private IStructattrService iStructattrService;
|
||||
@Autowired
|
||||
private ISchBasePointService iSchBasePointService;
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService;
|
||||
@@ -69,8 +65,6 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
@Resource
|
||||
private SchBasePointMapper schBasePointMapper;
|
||||
@Resource
|
||||
private StructattrMapper structattrMapper;
|
||||
@Autowired
|
||||
IInBillService iInBillService;
|
||||
@Autowired
|
||||
@@ -132,40 +126,53 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
@Transactional
|
||||
public WmstoIWmsResponse groupTask(JSONObject parm) {
|
||||
log.info("WMS入库请求参数参数为:-------------------" + parm.toString());
|
||||
if(StringUtils.isBlank(parm.getString("point_code"))){
|
||||
if (StringUtils.isBlank(parm.getString("point_code"))) {
|
||||
throw new BadRequestException("未传入地面入库点");
|
||||
}
|
||||
if(!ObjectUtil.isNotEmpty(iSchBasePointService.getByCode(parm.getString("point_code")))){
|
||||
throw new BadRequestException("传入的地面入库点不存在");
|
||||
}
|
||||
if(StringUtils.isBlank(parm.getString("storagevehicle_code"))){
|
||||
if (StringUtils.isBlank(parm.getString("storagevehicle_code"))) {
|
||||
throw new BadRequestException("未传入载具码");
|
||||
}
|
||||
String point_code=parm.getString("point_code");
|
||||
String storagevehicle_code=parm.getString("storagevehicle_code");
|
||||
String storagevehicle_code = parm.getString("storagevehicle_code");
|
||||
SchBasePoint one = iSchBasePointService.getOne(
|
||||
new QueryWrapper<SchBasePoint>().lambda()
|
||||
.eq(SchBasePoint::getPoint_code, parm.getString("point_code")).eq(SchBasePoint::getIs_used, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||
);
|
||||
//起点校验
|
||||
if (ObjectUtil.isEmpty(one)) {
|
||||
if (ObjectUtil.isNotEmpty(iStructattrService.getByCode(parm.getString("point_code")))) {
|
||||
Structattr structattr = iStructattrService.getByCode(parm.getString("point_code"));
|
||||
if (!storagevehicle_code.equals(structattr.getStoragevehicle_code())) {
|
||||
throw new BadRequestException("该仓位存放托盘与所传托盘的编码不对" + "传入的托盘号:" + storagevehicle_code + ",现在存放的托盘号:" + structattr.getStoragevehicle_code());
|
||||
}
|
||||
if (!"0".equals(structattr.getLock_type())) {
|
||||
throw new BadRequestException("传入仓位有正在执行的任务,无法生成,请检查仓位管理的仓位信息!");
|
||||
}
|
||||
parm.put("notStructCheck", "true");
|
||||
}
|
||||
}
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
//生成载具信息
|
||||
iMdPbStoragevehicleinfoService.create(parm);
|
||||
//生成组盘记录
|
||||
groupController.createSingle(parm);
|
||||
//新增入库表
|
||||
String iostorinv_id = iInBillService.insertDtl1(parm);
|
||||
//入库分配货位
|
||||
parm.put("iostorinv_id",iostorinv_id);
|
||||
String point_code1=iInBillService.divStruct1(parm);
|
||||
parm.put("struct_code",point_code1);
|
||||
//判断是否已经分配好货位
|
||||
iInBillService.divPoint1(parm);
|
||||
//生成载具信息
|
||||
iMdPbStoragevehicleinfoService.create(parm);
|
||||
//生成组盘记录
|
||||
groupController.createSingle(parm);
|
||||
//新增入库表
|
||||
String iostorinv_id = iInBillService.insertDtl1(parm);
|
||||
//入库分配货位
|
||||
parm.put("iostorinv_id", iostorinv_id);
|
||||
String point_code1 = iInBillService.divStruct1(parm);
|
||||
parm.put("struct_code", point_code1);
|
||||
//判断是否已经分配好货位
|
||||
iInBillService.divPoint1(parm);
|
||||
result.setCode(String.valueOf(HttpStatus.OK.value()));
|
||||
result.setMsg("入库任务生成成功");
|
||||
result.setTotalElements(0);
|
||||
JSONObject data=new JSONObject();
|
||||
data.put("bill_code",iostorinv_id);
|
||||
data.put("urnin_struct_code",point_code1);
|
||||
data.put("bill_code",parm.getString("bill_code"));
|
||||
result.setData(data);
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("bill_code", iostorinv_id);
|
||||
data.put("urnin_struct_code", point_code1);
|
||||
data.put("bill_code", parm.getString("bill_code"));
|
||||
result.setData(data);
|
||||
log.info("WMS入库返回参数为:-------------------" + result.toString());
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
@Transactional
|
||||
@@ -183,12 +190,12 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
String car_type=null;
|
||||
String car_width="685";
|
||||
if("1".equals(parm.getString("task_type"))){
|
||||
List<Structattr> regionCode = structattrMapper.selectList(new LambdaQueryWrapper<Structattr>()
|
||||
List<Structattr> regionCode = iStructattrService.list(new LambdaQueryWrapper<Structattr>()
|
||||
.eq(Structattr::getSect_code, "1BCDJQ")
|
||||
.eq(Structattr::getIs_used,true)
|
||||
.eq(Structattr::getLock_type,IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq(Structattr::getIs_used, true)
|
||||
.eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.isNull(Structattr::getStoragevehicle_code));
|
||||
String pointCode=regionCode.get(0).getStruct_code();
|
||||
String pointCode = regionCode.get(0).getStruct_code();
|
||||
if(StringUtils.isBlank(pointCode)){
|
||||
throw new BadRequestException("待检区域无库存");
|
||||
}
|
||||
@@ -235,24 +242,132 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public WmstoIWmsResponse inventory(JSONObject parm) {
|
||||
log.info("WMS发起盘点请求,参数为:-------------------" + parm.toString());
|
||||
JSONArray tableData = parm.getJSONArray("tableData");
|
||||
String storageCode = tableData.getJSONObject(0).getString("storage_code");
|
||||
//盘点数量
|
||||
String qty = tableData.getJSONObject(0).getString("plan_qty");
|
||||
String structCode = parm.getString("turnout_struct_code");
|
||||
if (StringUtils.isBlank(storageCode) || StringUtils.isBlank(structCode)) {
|
||||
throw new BadRequestException("未传入载具或仓位信息!");
|
||||
}
|
||||
Structattr struct = iStructattrService.getByCode(structCode);
|
||||
if (!storageCode.equals(struct.getStoragevehicle_code())) {
|
||||
throw new BadRequestException("该仓位存放托盘与所传托盘的编码不对" + "传入的托盘号:" + storageCode + ",现在存放的托盘号:" + struct.getStoragevehicle_code());
|
||||
}
|
||||
if (!"0".equals(struct.getLock_type())) {
|
||||
throw new BadRequestException("传入仓位被锁定或有任务,需要检查仓位或任务列表,暂不能盘点!" + structCode);
|
||||
}
|
||||
GroupPlate groupPlate = iMdPbGroupplateService.getByCode(storageCode);
|
||||
String oldQty = groupPlate.getQty().toString();
|
||||
BigDecimal newQty = new BigDecimal(qty);
|
||||
BigDecimal oldQtyDecimal = groupPlate.getQty();
|
||||
if (newQty.compareTo(oldQtyDecimal) == 0) {
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
result.setCode(String.valueOf(HttpStatus.OK.value()));
|
||||
result.setMsg("盘点数量与当前库存一致,无需调整!");
|
||||
result.setTotalElements(0);
|
||||
JSONObject data = new JSONObject();
|
||||
result.setData(data);
|
||||
log.info("WMS执行盘点操作:-------------------" + "仓位:" + structCode + ",托盘:" + storageCode + ",当前数量:" + oldQty + ",盘点数量:" + qty + ",无需调整");
|
||||
return result;
|
||||
}
|
||||
List<JSONObject> updateIvtList = new ArrayList<>();
|
||||
JSONObject jsonIvt = new JSONObject();
|
||||
if (newQty.compareTo(BigDecimal.ZERO) == 0) {
|
||||
jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_SUB_CANUSE_IVT);
|
||||
jsonIvt.put("change_qty", groupPlate.getQty());
|
||||
groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("出库"));
|
||||
} else {
|
||||
jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE_IVT);
|
||||
BigDecimal changeQty = newQty.subtract(groupPlate.getQty());
|
||||
jsonIvt.put("change_qty", changeQty.abs());
|
||||
}
|
||||
jsonIvt.put("storagevehicle_code", storageCode);
|
||||
jsonIvt.put("material_id", groupPlate.getMaterial_id());
|
||||
jsonIvt.put("pcsn", groupPlate.getPcsn());
|
||||
jsonIvt.put("qty_unit_id", groupPlate.getQty_unit_id());
|
||||
jsonIvt.put("qty_unit_name", groupPlate.getQty_unit_name());
|
||||
jsonIvt.put("remark", "盘点调整,仓位:" + structCode + ",原数量:" + oldQty + ",调整后数量:" + qty);
|
||||
updateIvtList.add(jsonIvt);
|
||||
iMdPbGroupplateService.updateIvt(updateIvtList);
|
||||
if (newQty.compareTo(BigDecimal.ZERO) == 0) {
|
||||
groupPlate.setQty(BigDecimal.ZERO);
|
||||
groupPlate.setRemark("盘点调整,仓位:" + structCode + ",原数量:" + oldQty + ",调整后数量:" + qty);
|
||||
iMdPbGroupplateService.update(groupPlate);
|
||||
}
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
result.setCode(String.valueOf(HttpStatus.OK.value()));
|
||||
result.setMsg("盘点操作执行成功!");
|
||||
result.setTotalElements(0);
|
||||
JSONObject data = new JSONObject();
|
||||
result.setData(data);
|
||||
log.info("WMS执行盘点操作::-------------------" + "盘点调整,仓位:" + structCode + ",托盘:" + storageCode + ",变更前数量:" + oldQty + ",变更后数量:" + qty);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public WmstoIWmsResponse outCheck(JSONObject parm) {
|
||||
log.info("WMS查询点位状态请求参数为:-------------------" + parm.toString());
|
||||
String pointCode = parm.getString("point_code");
|
||||
if (StringUtils.isBlank(pointCode)) {
|
||||
throw new BadRequestException("未传点位区域!");
|
||||
}
|
||||
String regionCode;
|
||||
String canMaterialType;
|
||||
switch (pointCode) {
|
||||
case "InFloor1":
|
||||
regionCode = "RKQ";
|
||||
canMaterialType = "1";
|
||||
break;
|
||||
case "Floor1":
|
||||
regionCode = "CKQ";
|
||||
canMaterialType = "1";
|
||||
break;
|
||||
case "InFloor2":
|
||||
regionCode = "RKQ";
|
||||
canMaterialType = "2";
|
||||
break;
|
||||
case "Floor2":
|
||||
regionCode = "CKQ";
|
||||
canMaterialType = "2";
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("不支持的该区域类型查询:" + pointCode);
|
||||
}
|
||||
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SchBasePoint::getRegion_code, regionCode)
|
||||
.eq(SchBasePoint::getCan_material_type, canMaterialType)
|
||||
.eq(SchBasePoint::getIs_used, BaseDataEnum.IS_YES_NOT.code("是"))
|
||||
.orderByAsc(SchBasePoint::getPoint_code);
|
||||
|
||||
List<SchBasePoint> list = iSchBasePointService.list(queryWrapper);
|
||||
JSONArray dataList = new JSONArray();
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
for (SchBasePoint point : list) {
|
||||
JSONObject pointData = new JSONObject();
|
||||
pointData.put("point_code", point.getPoint_code());
|
||||
pointData.put("status", point.getPoint_status().equals(IOSEnum.POINT_STATUS.code("空位")) ? "0" : "1");
|
||||
dataList.add(pointData);
|
||||
}
|
||||
}
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
result.setCode(String.valueOf(HttpStatus.OK.value()));
|
||||
result.setMsg("查询成功");
|
||||
result.setTotalElements(dataList.size());
|
||||
JSONObject responseData = new JSONObject();
|
||||
responseData.put("data", dataList);
|
||||
result.setData(responseData);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public WmstoIWmsResponse outBillTask(JSONObject parm) {
|
||||
// log.info("WMS出库请求参数参数为:-------------------" + parm.toString());
|
||||
// WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
// JSONArray tableData = parm.getJSONArray("tableData");
|
||||
// String storage_code=tableData.getJSONObject(0).getString("storage_code");
|
||||
// String turnout_struct_code=tableData.getJSONObject(0).getString("turnout_struct_code");
|
||||
// Structattr structattr=iStructattrService.getByCode(turnout_struct_code);
|
||||
// if(ObjectUtil.isEmpty(structattr)){
|
||||
// throw new BadRequestException("wms上不存在该点位");
|
||||
// }
|
||||
// if(!storage_code.equals(structattr.getStoragevehicle_code())){
|
||||
// throw new BadRequestException("该点位存放托盘与所传托盘的编码不对");
|
||||
// }
|
||||
// if(!structattr.getLock_type().equals("0")){
|
||||
// throw new BadRequestException("传入点位有任务");
|
||||
// }
|
||||
log.info("WMS 出库请求参数参数为:-------------------" + parm.toString());
|
||||
WmstoIWmsResponse result = new WmstoIWmsResponse();
|
||||
JSONArray tableData = parm.getJSONArray("tableData");
|
||||
@@ -280,7 +395,7 @@ public class WmsToIWmsServiceImpl implements WmsToIWmsService {
|
||||
throw new BadRequestException("wms上不存在该点位:" + turnout_struct_code);
|
||||
}
|
||||
if (!storage_code.equals(structattr.getStoragevehicle_code())) {
|
||||
throw new BadRequestException("该点位存放托盘与所传托盘的编码不对:" + turnout_struct_code);
|
||||
throw new BadRequestException("该仓位存放托盘与所传托盘的编码不对" + "传入的托盘号:" + storage_code + ",现在存放的托盘号:" + structattr.getStoragevehicle_code());
|
||||
}
|
||||
if (!"0".equals(structattr.getLock_type())) {
|
||||
throw new BadRequestException("传入点位有任务:" + turnout_struct_code);
|
||||
|
||||
Reference in New Issue
Block a user