From bd74f763c78eb4cfa355977081c209e2b14e0ecb Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Wed, 26 Nov 2025 10:39:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=89=8B=E6=8C=81=EF=BC=9A=E7=BB=84?= =?UTF-8?q?=E7=9B=98=E3=80=81=E7=BB=84=E8=A2=8B=E3=80=81=E5=91=BC=E5=8F=AB?= =?UTF-8?q?=E7=A9=BA=E6=89=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/common/domain/vo/PdaSelectVo.java | 16 ++ .../org/nl/common/utils/CollectionUtils.java | 23 +++ .../controller/PdaCommonController.java | 65 +++++++ .../controller/PdaPreTreatmentController.java | 46 +++++ .../service/PdaCommonService.java | 37 ++++ .../service/PdaPreTreatmentService.java | 19 ++ .../service/dto/AssemblyBagParam.java | 48 +++++ .../service/dto/AssemblyPalletParam.java | 21 +++ .../service/impl/PdaCommonServiceImpl.java | 168 ++++++++++++++++++ .../impl/PdaPreTreatmentServiceImpl.java | 65 +++++++ .../java/org/nl/wms/pda/util/PdaResponse.java | 9 + .../service/ISchBasePointService.java | 8 + .../service/ISchBaseTaskService.java | 3 + .../service/impl/SchBasePointServiceImpl.java | 8 + .../service/impl/SchBaseTaskServiceImpl.java | 7 + .../service/IMdPbGroupplateService.java | 10 ++ .../service/VehicleOutService.java | 9 + .../dao/mapper/MdPbGroupplateMapper.java | 2 + .../dao/mapper/MdPbGroupplateMapper.xml | 15 ++ .../impl/MdPbGroupplateServiceImpl.java | 14 ++ .../service/impl/VehicleOutServiceImpl.java | 3 +- 21 files changed, 595 insertions(+), 1 deletion(-) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/PdaSelectVo.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CollectionUtils.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaCommonController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaPreTreatmentController.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaCommonService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaPreTreatmentService.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/dto/AssemblyBagParam.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/dto/AssemblyPalletParam.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaCommonServiceImpl.java create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaPreTreatmentServiceImpl.java diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/PdaSelectVo.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/PdaSelectVo.java new file mode 100644 index 0000000..70a591f --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/PdaSelectVo.java @@ -0,0 +1,16 @@ +package org.nl.common.domain.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author: lyd + * @Date: 2025/11/25 + */ +@Data +public class PdaSelectVo implements Serializable { + private String text; + + private String value; +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CollectionUtils.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CollectionUtils.java new file mode 100644 index 0000000..10b9f47 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CollectionUtils.java @@ -0,0 +1,23 @@ +package org.nl.common.utils; + +import cn.hutool.core.collection.CollUtil; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @Author: lyd + * @Date: 2025/11/25 + */ +public class CollectionUtils { + public static List convertList(Collection from, Function func) { + if (CollUtil.isEmpty(from)) { + return new ArrayList<>(); + } + return from.stream().map(func).filter(Objects::nonNull).collect(Collectors.toList()); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaCommonController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaCommonController.java new file mode 100644 index 0000000..12a28f7 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaCommonController.java @@ -0,0 +1,65 @@ +package org.nl.wms.pda.general_management.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +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.PdaCommonService; +import org.nl.wms.pda.general_management.service.dto.AssemblyBagParam; +import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * 手持普通搬运任务 + * @Author: lyd + * @Date: 2025/11/24 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pdaCommon") +@Slf4j +public class PdaCommonController { + + @Resource + private PdaCommonService pdaCommonService; + @PostMapping("/callEmptyVehicle") + @Log("空载具出库-呼叫出库") + @SaIgnore + public ResponseEntity callEmptyVehicle(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaCommonService.callEmptyVehicle(whereJson), HttpStatus.OK); + } + @PostMapping("/getSectList") + @Log("空载具出库-库区下拉框") + @SaIgnore + public ResponseEntity getSectList(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(pdaCommonService.getSectList(whereJson), HttpStatus.OK); + } + @PostMapping("/confirmBagAssembly") + @Log("物料组袋-确认组袋") + @SaIgnore + public ResponseEntity confirmBagAssembly(@RequestBody @Valid AssemblyBagParam param) { + return new ResponseEntity<>(pdaCommonService.confirmBagAssembly(param), HttpStatus.OK); + } + @PostMapping("/getBagAssembly") + @Log("物料组盘-获取组袋信息") + @SaIgnore + public ResponseEntity getBagAssembly(@RequestBody JSONObject param) { + return new ResponseEntity<>(pdaCommonService.getBagAssembly(param), HttpStatus.OK); + } + @PostMapping("/confirmPalletAssembly") + @Log("物料组盘-获取组袋信息") + @SaIgnore + public ResponseEntity confirmPalletAssembly(@RequestBody @Valid AssemblyPalletParam param) { + return new ResponseEntity<>(pdaCommonService.confirmPalletAssembly(param), HttpStatus.OK); + } + +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaPreTreatmentController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaPreTreatmentController.java new file mode 100644 index 0000000..aa5f9f5 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/controller/PdaPreTreatmentController.java @@ -0,0 +1,46 @@ +package org.nl.wms.pda.general_management.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +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.dto.AssemblyPalletParam; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.Valid; + +/** + * 预处理功能 + * @Author: lyd + * @Date: 2025/11/25 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pdaPreTreatment") +@Slf4j +public class PdaPreTreatmentController { + + @Resource + private PdaPreTreatmentService pdaPreTreatmentService; + + @PostMapping("/getPalletAssembly") + @Log("原辅料入库(直接入库)-获取组袋信息") + @SaIgnore + public ResponseEntity getPalletAssembly(@RequestBody JSONObject param) { + return new ResponseEntity<>(pdaPreTreatmentService.getPalletAssembly(param), HttpStatus.OK); + } + @PostMapping("/confirmPalletAssemblyIn") + @Log("原辅料入库(直接入库)-入库") + @SaIgnore + public ResponseEntity confirmPalletAssemblyIn(@RequestBody JSONObject param) { + return new ResponseEntity<>(pdaPreTreatmentService.confirmPalletAssemblyIn(param), HttpStatus.OK); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaCommonService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaCommonService.java new file mode 100644 index 0000000..f5d4a52 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaCommonService.java @@ -0,0 +1,37 @@ +package org.nl.wms.pda.general_management.service; + +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.pda.general_management.service.dto.AssemblyBagParam; +import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam; +import org.nl.wms.pda.util.PdaResponse; + +/** + * @Author: lyd + * @Date: 2025/11/24 + */ +public interface PdaCommonService { + PdaResponse callEmptyVehicle(JSONObject param); + + PdaResponse getSectList(JSONObject param); + + /** + * 确认组袋 + * @param param + * @return + */ + PdaResponse confirmBagAssembly(AssemblyBagParam param); + + /** + * 获取组袋信息 + * @param param + * @return + */ + PdaResponse getBagAssembly(JSONObject param); + + /** + * 吨袋组盘 + * @param param + * @return + */ + PdaResponse confirmPalletAssembly(AssemblyPalletParam param); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaPreTreatmentService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaPreTreatmentService.java new file mode 100644 index 0000000..30e31c5 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/PdaPreTreatmentService.java @@ -0,0 +1,19 @@ +package org.nl.wms.pda.general_management.service; + +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.pda.util.PdaResponse; + +/** + * @Author: lyd + * @Date: 2025/11/25 + */ +public interface PdaPreTreatmentService { + PdaResponse getPalletAssembly(JSONObject param); + + /** + * 确认入库 + * @param param + * @return + */ + PdaResponse confirmPalletAssemblyIn(JSONObject param); +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/dto/AssemblyBagParam.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/dto/AssemblyBagParam.java new file mode 100644 index 0000000..093ed48 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/dto/AssemblyBagParam.java @@ -0,0 +1,48 @@ +package org.nl.wms.pda.general_management.service.dto; + +import cn.hutool.core.date.DateUtil; +import lombok.Data; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * 组袋参数 + * + * @Author: lyd + * @Date: 2025/11/25 + */ +@Data +public class AssemblyBagParam { + @NotBlank(message = "id不能为空") + private String bagNo; + @NotBlank(message = "物料不能为空") + private String materialId; + @NotBlank(message = "供应商不能为空") + private String suppCode; + @NotBlank(message = "批次号不能为空") + private String pcsn; + @NotNull(message = "数量不能为空") + private BigDecimal qty; + + public static GroupPlate buildGroupObj(AssemblyBagParam param) { + GroupPlate groupPlate = new GroupPlate(); + groupPlate.setGroup_id(IdUtil.getStringId()); + groupPlate.setBag_code(param.bagNo); + groupPlate.setPcsn(param.getPcsn()); + groupPlate.setQty(param.getQty()); + groupPlate.setMaterial_id(param.materialId); + groupPlate.setStatus("0"); + groupPlate.setSupp_code(param.suppCode); + groupPlate.setQty_unit_id("1585604695483879424"); + groupPlate.setQty_unit_name("千克"); + groupPlate.setCreate_id(SecurityUtils.getCurrentUserId()); + groupPlate.setCreate_name(SecurityUtils.getCurrentNickName()); + groupPlate.setCreate_time(DateUtil.now()); + return groupPlate; + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/dto/AssemblyPalletParam.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/dto/AssemblyPalletParam.java new file mode 100644 index 0000000..a068a92 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/dto/AssemblyPalletParam.java @@ -0,0 +1,21 @@ +package org.nl.wms.pda.general_management.service.dto; + +import lombok.Data; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 吨袋组盘实体 + * @Author: lyd + * @Date: 2025/11/25 + */ +@Data +public class AssemblyPalletParam { + @NotBlank(message = "托盘码不能为空") + private String vehicle_code; + @NotNull(message = "吨袋信息不能为空") + private List group_plates; +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaCommonServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaCommonServiceImpl.java new file mode 100644 index 0000000..c080615 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaCommonServiceImpl.java @@ -0,0 +1,168 @@ +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.UpdateWrapper; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.vo.PdaSelectVo; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.CollectionUtils; +import org.nl.system.service.dict.ISysDictService; +import org.nl.system.service.dict.dao.Dict; +import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; +import org.nl.wms.basedata_manage.service.IStructattrService; +import org.nl.wms.basedata_manage.service.dao.Structattr; +import org.nl.wms.pda.general_management.service.PdaCommonService; +import org.nl.wms.pda.general_management.service.dto.AssemblyBagParam; +import org.nl.wms.pda.general_management.service.dto.AssemblyPalletParam; +import org.nl.wms.pda.util.PdaResponse; +import org.nl.wms.sch_manage.service.ISchBaseTaskService; +import org.nl.wms.sch_manage.service.dao.SchBaseTask; +import org.nl.wms.sch_manage.service.util.tasks.EmpVehicleOutTask; +import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; +import org.nl.wms.warehouse_management.service.VehicleOutService; +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 javax.annotation.Resource; +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * @Author: lyd + * @Date: 2025/11/24 + */ +@Slf4j +@Service +public class PdaCommonServiceImpl implements PdaCommonService { + + @Resource + private VehicleOutService vehicleOutService; + @Resource + private IStructattrService iStructattrService; + @Resource + private ISchBaseTaskService taskService; + /** + * 空载具出库任务类 + */ + @Resource + private EmpVehicleOutTask empVehicleOutTask; + @Resource + private RedissonClient redissonClient; + @Resource + private ISysDictService dictService; + @Resource + private IMdPbGroupplateService groupplateService; + @Resource + private IMdPbStoragevehicleinfoService storagevehicleinfoService; + @SneakyThrows + @Override + public PdaResponse callEmptyVehicle(JSONObject param) { + log.info("手持请求呼叫空托盘:{}", param); + RLock lock = redissonClient.getLock("lock:callEmptyVehicle"); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + if (ObjectUtil.isEmpty(param.getString("sect_code"))) { + throw new BadRequestException("库区不能为空!"); + } + // 判断任务是否创建 + String pointCode = param.getString("point_code"); + List tasks = taskService.getTaskByQuery(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code2, pointCode)); + if (tasks.size() > 0) { + throw new BadRequestException("该点位已创建过任务!"); + } + + + // 根据库区找空载具 + List attrList = vehicleOutService.autoDivStruct(param); + + Structattr structattr = attrList.get(0); + if (ObjectUtil.isEmpty(structattr)) { + throw new BadRequestException("暂时没有可用的空载具!"); + } + + // 锁定仓位 + iStructattrService.update( + new UpdateWrapper().lambda() + .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("空托盘出库锁")) + .eq(Structattr::getStruct_code, structattr.getStruct_code()) + ); + + // 创建任务 + JSONObject jsonTask = new JSONObject(); + jsonTask.put("point_code1", structattr.getStruct_code()); + jsonTask.put("point_code2", pointCode); + jsonTask.put("vehicle_code", structattr.getStoragevehicle_code()); + empVehicleOutTask.create(jsonTask); + } else { + throw new BadRequestException("正在处理中,请稍后再试!"); + } + } finally { + if (tryLock) { + lock.unlock(); + } + } + return PdaResponse.requestOk("空盘任务创建成功!"); + } + + @Override + public PdaResponse getSectList(JSONObject param) { + String code = param.getString("code"); + if (null == code) { + code = "EP_SECT_CODE"; + } + List epSectCode = dictService.getDictByName(code); + List collect = CollectionUtils.convertList(epSectCode, dict -> { + PdaSelectVo selectVo = new PdaSelectVo(); + selectVo.setText(dict.getLabel()); + selectVo.setValue(dict.getValue()); + return selectVo; + }); + return PdaResponse.requestParamOk(collect); + } + + @Override + public PdaResponse confirmBagAssembly(AssemblyBagParam param) { + List list = groupplateService.list(new LambdaQueryWrapper() + .eq(GroupPlate::getBag_code, param.getBagNo()) + .le(GroupPlate::getStatus, "2")); + if (list.size() > 0) { + throw new BadRequestException("吨袋[" + param.getBagNo() + "]已经组袋过,请检查!"); + } + GroupPlate groupPlate = AssemblyBagParam.buildGroupObj(param); + groupplateService.save(groupPlate); + return PdaResponse.requestOk("组袋成功!"); + } + + @Override + public PdaResponse getBagAssembly(JSONObject param) { + String bagNo = param.getString("bag_no"); + if (ObjectUtil.isEmpty(bagNo)) { + throw new BadRequestException("袋号不能为空!"); + } + List groupPlates = groupplateService.getByBagNo(bagNo, "0"); + if (groupPlates.size() != 1) { + throw new BadRequestException(groupPlates.size() == 0 ? "组袋记录不存在,请先组袋!" : "组袋记录信息有误,请查询并清理后重试!"); + } + return PdaResponse.requestParamOk(groupPlates.get(0)); + } + + @Override + public PdaResponse confirmPalletAssembly(AssemblyPalletParam param) { + storagevehicleinfoService.getByCode(param.getVehicle_code()); + List groupPlates = param.getGroup_plates(); + for (GroupPlate groupPlate : groupPlates) { + groupPlate.setVehicle_code(param.getVehicle_code()); + groupPlate.setStatus("1"); + } + groupplateService.updateBatchById(groupPlates); + return PdaResponse.requestOk("组盘成功!"); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaPreTreatmentServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaPreTreatmentServiceImpl.java new file mode 100644 index 0000000..d4dc146 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaPreTreatmentServiceImpl.java @@ -0,0 +1,65 @@ +package org.nl.wms.pda.general_management.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.wms.pda.general_management.service.PdaPreTreatmentService; +import org.nl.wms.pda.util.PdaResponse; +import org.nl.wms.sch_manage.service.ISchBasePointService; +import org.nl.wms.sch_manage.service.dao.SchBasePoint; +import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author: lyd + * @Date: 2025/11/25 + */ +@Slf4j +@Service +public class PdaPreTreatmentServiceImpl implements PdaPreTreatmentService { + @Resource + private ISchBasePointService pointService; + @Resource + private IMdPbGroupplateService groupplateService; + @Override + public PdaResponse getPalletAssembly(JSONObject param) { + String search = param.getString("search"); + if (ObjectUtil.isEmpty(search)) { + throw new BadRequestException("请输入点位编码或者托盘编码!"); + } + SchBasePoint point = pointService.getByPointCode(search, false); + if (ObjectUtil.isNotEmpty(point)) { + search = point.getVehicle_code(); + } + if (ObjectUtil.isEmpty(search)) { + throw new BadRequestException("输入内容有误或者点位未绑定托盘号,请检查!"); + } + List groups = groupplateService.getPalletView(search); + return PdaResponse.requestParamOk(groups); + } + + @Override + public PdaResponse confirmPalletAssemblyIn(JSONObject param) { + log.info("拆包缓冲间确认入库:{}", param); + // param:search(点位), rows + String search = param.getString("search"); + if (ObjectUtil.isEmpty(search)) { + throw new BadRequestException("请输入点位编码!"); + } + SchBasePoint startPoint = pointService.getByPointCode(search, true); + if (ObjectUtil.isEmpty(startPoint)) { + throw new BadRequestException("输入的点位不存在或者点位已被禁用, 请检查输入点位是否正确或是否被禁用!"); + } + // 1 创建入库单、明细、分配明细 + JSONObject insertInvObj = new JSONObject(); + + // 2 调用分配 + + // 3 创建任务 + return PdaResponse.requestOk(); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java index 8636e08..a777871 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/util/PdaResponse.java @@ -34,6 +34,15 @@ public class PdaResponse { .message("操作成功!") .build(); } + /** + * 带信息反馈 + * @return ErpResponse + */ + public static PdaResponse requestOk(String message) { + return PdaResponse.builder() + .message(message) + .build(); + } /** * 带数据反馈 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBasePointService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBasePointService.java index 3e88077..a08302e 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBasePointService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBasePointService.java @@ -124,4 +124,12 @@ public interface ISchBasePointService extends IService { * @param dao 实体类 */ void cleanMaterial(SchBasePoint dao); + + /** + * 获取点位信息 + * @param pointCode + * @param flag + * @return + */ + SchBasePoint getByPointCode(String pointCode, boolean flag); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBaseTaskService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBaseTaskService.java index 38a342d..dd0f5f6 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBaseTaskService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/ISchBaseTaskService.java @@ -1,6 +1,7 @@ package org.nl.wms.sch_manage.service; import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; @@ -76,4 +77,6 @@ public interface ISchBaseTaskService extends IService { * @return List */ List getTaskConfigList(String config_code); + + List getTaskByQuery(LambdaQueryWrapper lam); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBasePointServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBasePointServiceImpl.java index a5519a6..a009d94 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBasePointServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBasePointServiceImpl.java @@ -309,4 +309,12 @@ public class SchBasePointServiceImpl extends ServiceImpl lam = new QueryWrapper().lambda(); + lam.eq(SchBasePoint::getPoint_code, pointCode) + .eq(flag, SchBasePoint::getIs_used, true); + return getOne(lam); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBaseTaskServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBaseTaskServiceImpl.java index 043505d..5edbaf4 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBaseTaskServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/impl/SchBaseTaskServiceImpl.java @@ -170,4 +170,11 @@ public class SchBaseTaskServiceImpl extends ServiceImpl getTaskByQuery(LambdaQueryWrapper lam) { + lam.eq(SchBaseTask::getIs_delete, "0") + .le(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode()); + return list(lam); + } + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java index 950b608..314ef86 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IMdPbGroupplateService.java @@ -86,4 +86,14 @@ public interface IMdPbGroupplateService extends IService { * @param dto 实体类 */ void printDelete(GroupPlate dto); + + /** + * 根据袋号获取可用组盘信息 + * @param bagNo + * @param status + * @return + */ + List getByBagNo(String bagNo, String status); + + List getPalletView(String search); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/VehicleOutService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/VehicleOutService.java index fa21953..399a0aa 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/VehicleOutService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/VehicleOutService.java @@ -3,7 +3,9 @@ package org.nl.wms.warehouse_management.service; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; +import org.nl.wms.basedata_manage.service.dao.Structattr; +import java.util.List; import java.util.Map; /** @@ -34,4 +36,11 @@ public interface VehicleOutService { * } */ void create(JSONObject whereJson); + + /** + * 根据区域编码获取分配的仓位 + * @param whereJson: sect_code + * @return + */ + List autoDivStruct(JSONObject whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java index 4103040..51a97bd 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.java @@ -63,4 +63,6 @@ public interface MdPbGroupplateMapper extends BaseMapper { * @return List */ List pdaGetPointDtl(@Param("param") JSONObject whereJson); + + List getPalletView(String search); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml index 3f5e0d8..979c5c5 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/dao/mapper/MdPbGroupplateMapper.xml @@ -132,4 +132,19 @@ + diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java index 509e341..2b78226 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/MdPbGroupplateServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.wms.warehouse_management.service.impl; import cn.hutool.core.date.DateUtil; 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.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -146,4 +147,17 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl getByBagNo(String bagNo, String status) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq(GroupPlate::getBag_code, bagNo) + .le(GroupPlate::getStatus, status); + return list(lam); + } + + @Override + public List getPalletView(String search) { + return this.baseMapper.getPalletView(search); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/VehicleOutServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/VehicleOutServiceImpl.java index edfb7b0..964a3c7 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/VehicleOutServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/VehicleOutServiceImpl.java @@ -92,7 +92,8 @@ public class VehicleOutServiceImpl implements VehicleOutService { * } * @return List 仓位实体类即可 */ - private List autoDivStruct(JSONObject whereJson) { + @Override + public List autoDivStruct(JSONObject whereJson) { // 根据库区查询对应载具 List attrList = iStructattrService.list(new LambdaQueryWrapper<>(Structattr.class)