fix: 直接入库
This commit is contained in:
@@ -124,4 +124,5 @@ public interface IStructattrService extends IService<Structattr> {
|
||||
*/
|
||||
List<MdPbStoragevehicleextDto> outBoundSectDiv(StrategyStructParam param);
|
||||
|
||||
List<Structattr> getByVehicleCode(String search, boolean flag);
|
||||
}
|
||||
|
||||
@@ -426,4 +426,15 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Structattr> getByVehicleCode(String search, boolean flag) {
|
||||
LambdaQueryWrapper<Structattr> query = new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getIs_used, IOSConstant.IS_DELETE_YES)
|
||||
.eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
.eq(Structattr::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||
.eq(Structattr::getStruct_code, search)
|
||||
.eq(flag, Structattr::getIs_emptyvehicle, "1");
|
||||
return this.list(query);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -99,4 +99,16 @@ public class PdaProductionController {
|
||||
public ResponseEntity<Object> productionLine(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(pdaProductionService.productionLine(whereJson), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/receivedIn")
|
||||
@Log("生产下料-收货入库")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> receivedIn(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(pdaProductionService.receivedIn(whereJson), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/getVehicleInfo")
|
||||
@Log("生产下料-收货入库")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> getVehicleInfo(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(pdaProductionService.getVehicleInfo(whereJson), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.logging.annotation.Log;
|
||||
import org.nl.wms.pda.general_management.service.PdaPreTreatmentService;
|
||||
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -16,29 +16,29 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 预处理功能
|
||||
* 仓库管理
|
||||
* @Author: lyd
|
||||
* @Date: 2025/11/25
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api/pdaPreTreatment")
|
||||
@RequestMapping("/api/pdaWarehouse")
|
||||
@Slf4j
|
||||
public class PdaPreTreatmentController {
|
||||
public class PdaWarehouseController {
|
||||
|
||||
@Resource
|
||||
private PdaPreTreatmentService pdaPreTreatmentService;
|
||||
private PdaWarehouseService pdaWarehouseService;
|
||||
|
||||
@PostMapping("/getPalletAssembly")
|
||||
@Log("原辅料入库(直接入库)-获取组袋信息")
|
||||
@Log("直接入库 - 获取组袋信息")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> getPalletAssembly(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(pdaPreTreatmentService.getPalletAssembly(param), HttpStatus.OK);
|
||||
return new ResponseEntity<>(pdaWarehouseService.getPalletAssembly(param), HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/confirmPalletAssemblyIn")
|
||||
@Log("原辅料入库(直接入库)-入库")
|
||||
@Log("直接入库 - 入库")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> confirmPalletAssemblyIn(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(pdaPreTreatmentService.confirmPalletAssemblyIn(param), HttpStatus.OK);
|
||||
return new ResponseEntity<>(pdaWarehouseService.confirmPalletAssemblyIn(param), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.pda.general_management.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -17,7 +18,7 @@ public interface PdaBuildParamService {
|
||||
* @param param
|
||||
* @param startPoint
|
||||
*/
|
||||
void doGroupPallet(JSONObject param, SchBasePoint startPoint);
|
||||
void doGroupPallet(JSONObject param, String vehicleCode);
|
||||
|
||||
/**
|
||||
* 构建创建任务参数
|
||||
@@ -34,7 +35,7 @@ public interface PdaBuildParamService {
|
||||
* @param invId
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> buildDivStructData(JSONObject param, Sectattr sect, String invId);
|
||||
Map<String, Object> buildDivStructData(JSONObject param, Sectattr sect, String invId, boolean checked);
|
||||
|
||||
/**
|
||||
* 构建创建入库单参数
|
||||
|
||||
@@ -69,4 +69,13 @@ public interface PdaProductionService {
|
||||
PdaResponse getGroupBucketInfo(JSONObject param);
|
||||
|
||||
PdaResponse productionLine(JSONObject param);
|
||||
|
||||
/**
|
||||
* 收货入库
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
PdaResponse receivedIn(JSONObject param);
|
||||
|
||||
PdaResponse getVehicleInfo(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
package org.nl.wms.pda.general_management.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||
import org.nl.wms.pda.util.PdaResponse;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
* @Date: 2025/11/25
|
||||
*/
|
||||
public interface PdaPreTreatmentService {
|
||||
public interface PdaWarehouseService {
|
||||
PdaResponse getPalletAssembly(JSONObject param);
|
||||
|
||||
/**
|
||||
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
||||
import org.nl.wms.pda.general_management.service.PdaCommonService;
|
||||
import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam;
|
||||
@@ -48,7 +49,7 @@ public class DefaultPdaBuildParamService implements PdaBuildParamService {
|
||||
private IRawAssistIStorService rawAssistIStorService;
|
||||
|
||||
@Override
|
||||
public void doGroupPallet(JSONObject param, SchBasePoint startPoint) {
|
||||
public void doGroupPallet(JSONObject param, String vehicleCode) {
|
||||
JSONArray rows = param.getJSONArray("rows");
|
||||
List<String> bagCode = rows
|
||||
.stream()
|
||||
@@ -59,7 +60,7 @@ public class DefaultPdaBuildParamService implements PdaBuildParamService {
|
||||
.in(GroupPlate::getBag_code, bagCode)
|
||||
.eq(GroupPlate::getStatus, "0"));
|
||||
AssemblyPalletParam palletParam = new AssemblyPalletParam();
|
||||
palletParam.setVehicle_code(startPoint.getVehicle_code());
|
||||
palletParam.setVehicle_code(vehicleCode);
|
||||
palletParam.setGroup_plates(list);
|
||||
pdaCommonService.confirmPalletAssembly(palletParam);
|
||||
}
|
||||
@@ -85,7 +86,7 @@ public class DefaultPdaBuildParamService implements PdaBuildParamService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> buildDivStructData(JSONObject param, Sectattr sect, String invId) {
|
||||
public Map<String, Object> buildDivStructData(JSONObject param, Sectattr sect, String invId, boolean checked) {
|
||||
Map<String, Object> divObj = new HashMap<>();
|
||||
divObj.put("sect_id", sect.getSect_id());
|
||||
divObj.put("sect_code", param.getString("sect_code"));
|
||||
@@ -93,9 +94,17 @@ public class DefaultPdaBuildParamService implements PdaBuildParamService {
|
||||
divObj.put("struct_id", param.getString("struct_id"));
|
||||
divObj.put("struct_name", param.getString("struct_name"));
|
||||
divObj.put("struct_code", param.getString("struct_code"));
|
||||
divObj.put("checked", true);
|
||||
divObj.put("checked", checked);
|
||||
List<IOStorInvDis> ioStorInvDis = ioStorInvDisMapper.selectList(new LambdaQueryWrapper<IOStorInvDis>()
|
||||
.eq(IOStorInvDis::getIostorinv_id, invId));
|
||||
for (IOStorInvDis ioStorInvDi : ioStorInvDis) {
|
||||
ioStorInvDi.setSect_id(sect.getSect_id());
|
||||
ioStorInvDi.setSect_code(param.getString("sect_code"));
|
||||
ioStorInvDi.setSect_name(param.getString("sect_name"));
|
||||
ioStorInvDi.setStruct_id(param.getString("struct_id"));
|
||||
ioStorInvDi.setStruct_code(param.getString("struct_name"));
|
||||
ioStorInvDi.setStruct_name(param.getString("struct_code"));
|
||||
}
|
||||
if (ioStorInvDis.size() == 0) {
|
||||
throw new BadRequestException("分配明细不存在!");
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -16,7 +17,7 @@ import org.nl.wms.basedata_manage.service.ISectattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
||||
import org.nl.wms.pda.general_management.service.PdaPreTreatmentService;
|
||||
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
||||
import org.nl.wms.pda.general_management.service.PdaProductionService;
|
||||
import org.nl.wms.pda.util.PdaResponse;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
@@ -32,6 +33,8 @@ import org.nl.wms.warehouse_management.service.IOutBillService;
|
||||
import org.nl.wms.warehouse_management.service.IRawAssistIStorService;
|
||||
import org.nl.wms.warehouse_management.service.VehicleInService;
|
||||
import org.nl.wms.warehouse_management.service.dao.GroupPlate;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -40,6 +43,7 @@ import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.nl.common.utils.ValidationUtil.*;
|
||||
|
||||
@@ -55,7 +59,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
@Resource
|
||||
private ISchBasePointService pointService;
|
||||
@Resource
|
||||
private PdaPreTreatmentService pdaPreTreatmentService;
|
||||
private PdaWarehouseService pdaWarehouseService;
|
||||
@Resource
|
||||
private ISectattrService sectattrService;
|
||||
@Resource
|
||||
@@ -78,6 +82,8 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
private IMdPdGroupbucketService groupbucketService;
|
||||
@Resource
|
||||
private TaskFactory taskFactory;
|
||||
@Resource
|
||||
private RedissonClient redissonClient;
|
||||
@Override
|
||||
public PdaResponse getGroupInfo(JSONObject param) {
|
||||
// search;
|
||||
@@ -250,7 +256,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
||||
String invId = rawAssistIStorService.insertDtl(invObj);
|
||||
// 2 调用分配
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId);
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, true);
|
||||
rawAssistIStorService.divStruct(divObj);
|
||||
// 3 创建任务
|
||||
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
||||
@@ -322,4 +328,70 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
task.create(param);
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public PdaResponse receivedIn(JSONObject param) {
|
||||
log.info("拆包缓冲间确认入库:{}", param);
|
||||
RLock lock = redissonClient.getLock("lock:confirmPalletAssemblyIn");
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
// param:point_code(点位), vehicle_code, sect_code,rows
|
||||
String search = param.getString("point_code");
|
||||
String sect_code = param.getString("sect_code");
|
||||
if (ObjectUtil.isEmpty(search)) {
|
||||
throw new BadRequestException("请输入点位编码!");
|
||||
}
|
||||
SchBasePoint startPoint = pointService.getByPointCode(search, true);
|
||||
if (ObjectUtil.isEmpty(startPoint)) {
|
||||
throw new BadRequestException("输入的点位不存在或者点位已被禁用, 请检查输入点位是否正确或是否被禁用!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(startPoint.getVehicle_code())) {
|
||||
throw new BadRequestException("点位载具号为空!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(sect_code)) {
|
||||
throw new BadRequestException("请选择入库库区!");
|
||||
}
|
||||
Sectattr sectattr = sectattrService.findByCode(sect_code, true);
|
||||
if (ObjectUtil.isEmpty(sectattr)) {
|
||||
throw new BadRequestException("库区不存在或者被禁用!");
|
||||
}
|
||||
// 判断任务是否创建
|
||||
List<SchBaseTask> tasks = taskService.getTaskByQuery(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getPoint_code1, search));
|
||||
if (tasks.size() > 0) {
|
||||
throw new BadRequestException("该点位已创建过任务!");
|
||||
}
|
||||
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("原辅料入库"));
|
||||
// 1 创建入库单、明细、分配明细
|
||||
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
||||
String invId = rawAssistIStorService.insertDtl(invObj);
|
||||
// 2 调用分配
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, true);
|
||||
rawAssistIStorService.divStruct(divObj);
|
||||
// 3 创建任务
|
||||
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
||||
rawAssistIStorService.divPoint(jsonMst);
|
||||
} else {
|
||||
throw new BadRequestException("速度太快啦,稍后再试...");
|
||||
}
|
||||
} finally {
|
||||
if (tryLock) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponse getVehicleInfo(JSONObject param) {
|
||||
// search;
|
||||
String search = param.getString("vehicle_code").trim();
|
||||
if (ObjectUtil.isEmpty(search)) {
|
||||
throw new BadRequestException("载具不存在!");
|
||||
}
|
||||
List<JSONObject> res = groupplateService.getPalletViewByVehicleCode(search);
|
||||
return PdaResponse.requestParamOk(res);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,13 +3,17 @@ package org.nl.wms.pda.general_management.service.impl;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.MapOf;
|
||||
import org.nl.wms.basedata_manage.service.ISectattrService;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
||||
import org.nl.wms.pda.general_management.service.PdaPreTreatmentService;
|
||||
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
||||
import org.nl.wms.pda.util.PdaResponse;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
@@ -23,9 +27,11 @@ import org.redisson.api.RedissonClient;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
@@ -33,7 +39,7 @@ import java.util.concurrent.TimeUnit;
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService {
|
||||
public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
@Resource
|
||||
private ISchBasePointService pointService;
|
||||
@Resource
|
||||
@@ -48,6 +54,9 @@ public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService {
|
||||
private ISchBaseTaskService taskService;
|
||||
@Resource
|
||||
private PdaBuildParamService defaultPdaBuildParam;
|
||||
@Resource
|
||||
private IStructattrService structattrService;
|
||||
|
||||
@Override
|
||||
public PdaResponse getPalletAssembly(JSONObject param) {
|
||||
String search = param.getString("search");
|
||||
@@ -64,49 +73,68 @@ public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService {
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public PdaResponse confirmPalletAssemblyIn(JSONObject param) {
|
||||
log.info("拆包缓冲间确认入库:{}", param);
|
||||
log.info("直接入库:{}", param);
|
||||
RLock lock = redissonClient.getLock("lock:confirmPalletAssemblyIn");
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
// param:search(点位), rows
|
||||
// param:search(仓位/载具号), rows
|
||||
String search = param.getString("search");
|
||||
String pointCode;
|
||||
String vehicleCode;
|
||||
if (ObjectUtil.isEmpty(search)) {
|
||||
throw new BadRequestException("请输入点位编码!");
|
||||
throw new BadRequestException("请输入点位/载具编码!");
|
||||
}
|
||||
SchBasePoint startPoint = pointService.getByPointCode(search, true);
|
||||
if (ObjectUtil.isEmpty(startPoint)) {
|
||||
throw new BadRequestException("输入的点位不存在或者点位已被禁用, 请检查输入点位是否正确或是否被禁用!");
|
||||
Structattr startStruct = structattrService.getByCode(search);
|
||||
if (ObjectUtil.isEmpty(startStruct)) {
|
||||
vehicleCode = search;
|
||||
List<Structattr> points = structattrService.getByVehicleCode(search, true);
|
||||
if (points.size() != 1) {
|
||||
throw new BadRequestException(points.size() > 1
|
||||
? "该托盘号绑定在多个点位" + points.stream().map(Structattr::getStruct_code).collect(Collectors.toList()) + ",请检查!"
|
||||
: "该托盘号未绑定到点位或者点位被禁用或者点位以上锁,请检查!");
|
||||
}
|
||||
startStruct = points.get(0);
|
||||
pointCode = startStruct.getStruct_code();
|
||||
} else {
|
||||
pointCode = search;
|
||||
vehicleCode = startStruct.getStoragevehicle_code();
|
||||
}
|
||||
if (ObjectUtil.isEmpty(startPoint.getVehicle_code())) {
|
||||
if (ObjectUtil.isEmpty(vehicleCode)) {
|
||||
throw new BadRequestException("点位载具号为空!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(startPoint.getIn_sect())) {
|
||||
throw new BadRequestException("该点位未配置入库库区,请到点位管理配置!");
|
||||
}
|
||||
Sectattr sectattr = sectattrService.findByCode(startPoint.getIn_sect(), true);
|
||||
if (ObjectUtil.isEmpty(sectattr)) {
|
||||
throw new BadRequestException("库区不存在或者被禁用!");
|
||||
}
|
||||
// 判断任务是否创建
|
||||
List<SchBaseTask> tasks = taskService.getTaskByQuery(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getPoint_code1, search));
|
||||
.eq(SchBaseTask::getPoint_code1, pointCode));
|
||||
if (tasks.size() > 0) {
|
||||
throw new BadRequestException("该点位已创建过任务!");
|
||||
}
|
||||
Sectattr sectattr = sectattrService.findByCode(startStruct.getSect_code(), true);
|
||||
if (ObjectUtil.isEmpty(sectattr)) {
|
||||
throw new BadRequestException("库区不存在或者被禁用!");
|
||||
}
|
||||
// 点位释放
|
||||
structattrService.update(new LambdaUpdateWrapper<Structattr>()
|
||||
.set(Structattr::getStoragevehicle_code, "")
|
||||
.set(Structattr::getIs_emptyvehicle, "0")
|
||||
.eq(Structattr::getStruct_code, startStruct.getStruct_code()));
|
||||
// 0 组盘
|
||||
defaultPdaBuildParam.doGroupPallet(param, startPoint);
|
||||
param.put("vehicle_code", startPoint.getVehicle_code());
|
||||
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("原辅料入库"));
|
||||
defaultPdaBuildParam.doGroupPallet(param, vehicleCode);
|
||||
param.put("bill_type", IOSEnum.IN_BILL_TYPE.code("直接入库"));
|
||||
param.put("vehicle_code", vehicleCode);
|
||||
// 1 创建入库单、明细、分配明细
|
||||
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
||||
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, null, sectattr);
|
||||
String invId = rawAssistIStorService.insertDtl(invObj);
|
||||
// 2 调用分配
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId);
|
||||
// 2 调用指定分配
|
||||
param.put("sect_code", startStruct.getSect_code());
|
||||
param.put("sect_name", startStruct.getSect_name());
|
||||
param.put("struct_id", startStruct.getStruct_id());
|
||||
param.put("struct_name", startStruct.getStruct_name());
|
||||
param.put("struct_code", startStruct.getStruct_code());
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, false);
|
||||
rawAssistIStorService.divStruct(divObj);
|
||||
// 3 创建任务
|
||||
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
||||
rawAssistIStorService.divPoint(jsonMst);
|
||||
// 3、强制确认
|
||||
rawAssistIStorService.confirm(MapOf.of("iostorinv_id", invId));
|
||||
} else {
|
||||
throw new BadRequestException("速度太快啦,稍后再试...");
|
||||
}
|
||||
@@ -139,4 +139,6 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
||||
* @return
|
||||
*/
|
||||
List<SchBasePoint> getCanUsePointByRegion(String regionCode);
|
||||
|
||||
List<SchBasePoint> getByVehicleCode(String search);
|
||||
}
|
||||
|
||||
@@ -322,4 +322,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
public List<SchBasePoint> getCanUsePointByRegion(String regionCode) {
|
||||
return this.baseMapper.getCanUsePointByRegion(regionCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SchBasePoint> getByVehicleCode(String search) {
|
||||
LambdaQueryWrapper<SchBasePoint> lam = new QueryWrapper<SchBasePoint>().lambda();
|
||||
lam.eq(SchBasePoint::getVehicle_code, search);
|
||||
return list(lam);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ public class TabletingInTask extends AbstractTask {
|
||||
Map<String, Object> invObj = defaultPdaBuildParam.doBuildInvObj(param, startPoint, sectattr);
|
||||
String invId = rawAssistIStorService.insertDtl(invObj);
|
||||
// 2 调用分配
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId);
|
||||
Map<String, Object> divObj = defaultPdaBuildParam.buildDivStructData(param, sectattr, invId, true);
|
||||
rawAssistIStorService.divStruct(divObj);
|
||||
// 3 创建任务
|
||||
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
||||
|
||||
@@ -34,7 +34,8 @@ public enum IOSEnum {
|
||||
IN_BILL_TYPE(MapOf.of( "手工入库", "0009",
|
||||
"原辅料入库", "0001",
|
||||
"剩料回库", "0002",
|
||||
"中间站入库", "0003"
|
||||
"中间站入库", "0003",
|
||||
"直接入库", "0004"
|
||||
)),
|
||||
|
||||
// 出库业务类型
|
||||
|
||||
@@ -665,6 +665,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl<IOStorInvMapper, IOSt
|
||||
JSONObject jsonIvt = new JSONObject();
|
||||
jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE);
|
||||
jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code());
|
||||
jsonIvt.put("bag_code", ioStorInvDis.getBag_code());
|
||||
jsonIvt.put("material_id", ioStorInvDis.getMaterial_id());
|
||||
jsonIvt.put("pcsn", ioStorInvDis.getPcsn());
|
||||
jsonIvt.put("qty_unit_id", ioStorInvDis.getQty_unit_id());
|
||||
|
||||
Reference in New Issue
Block a user