From 46c18e95d47ee7d060cbed1288f2656448196b24 Mon Sep 17 00:00:00 2001 From: gengby <858962040@qq.com> Date: Wed, 28 Feb 2024 13:39:42 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E6=89=8B=E6=8C=81=E6=96=B0=E6=94=B9?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shangdianke/ItemProtocol.java | 41 ++ .../PhotoelectricDetectionDeviceDriver.java | 47 +- ...otoelectricDetectionStationDefinition.java | 5 + .../nl/wms/pda/controller/PdaController.java | 100 ++-- .../org/nl/wms/pda/service/PdaService.java | 53 ++- .../pda/service/dao/dto/BindVehicleDto.java | 14 + .../service/dao/dto/VehicleInStoreDto.java | 15 + .../wms/pda/service/dao/mapper/PdaMapper.xml | 7 +- .../nl/wms/pda/service/dao/vo/PointVo.java | 5 +- .../nl/wms/pda/service/dao/vo/RegionVo.java | 18 + .../wms/pda/service/impl/PdaServiceImpl.java | 426 +++++++++++++----- .../nl/wms/sch/region/service/RegionEnum.java | 31 ++ .../task/tasks/dtk/mapper/DTKMapper.java | 22 - .../task/tasks/dtk/mapper/DTKMapper.xml | 35 -- .../task/tasks/lmzb/LMZBQKTask.java | 15 +- .../task/tasks/lmzp/LMZPQKTask.java | 15 +- .../CTQKTask.java => p2p/FixPointTask.java} | 163 ++++--- .../task_manage/task/tasks/p2p/P2PTask.java | 70 +-- .../task/tasks/ycl/JLHCHKTask.java | 19 +- .../task/tasks/ycl/JLHCQMTask.java | 2 +- .../DTSKTask.java => ycl/ZPKTPRKTask.java} | 117 +++-- .../task_manage/task/tasks/ycl/ZPQKTask.java | 9 +- .../task_manage/task/tasks/ycl/ZPRKTask.java | 2 +- .../src/views/wms/sch/point/ViewDialog.vue | 18 +- 24 files changed, 820 insertions(+), 429 deletions(-) create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/BindVehicleDto.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/VehicleInStoreDto.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/RegionVo.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/region/service/RegionEnum.java delete mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.java delete mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/{dtk/CTQKTask.java => p2p/FixPointTask.java} (52%) rename lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/{dtk/DTSKTask.java => ycl/ZPKTPRKTask.java} (63%) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/ItemProtocol.java index ce2f89e..21bac5b 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/ItemProtocol.java @@ -10,11 +10,37 @@ import lombok.Setter; @Setter public class ItemProtocol { + + /** + * 心跳 + */ + public static final String ITEM_HEARTBEAT = "heartbeat"; + + /** + * 工作模式 + */ + public static final String ITEM_MODE = "mode"; + /** * 光电信号 */ public static final String ITEM_MOVE = "move"; + /** + * 动作信号 + */ + public static final String ITEM_ACTION = "action"; + + /** + * 报警信号 + */ + public static final String ITEM_ERROR = "error"; + + /** + * 下发命令 + */ + public static final String ITEM_TO_COMMAND = "to_command"; + boolean isOnline; private final PhotoelectricDetectionDeviceDriver driver; @@ -34,7 +60,22 @@ public class ItemProtocol { } } + public int getHeartbeat() { + return this.getOpcIntegerValue(ItemProtocol.ITEM_HEARTBEAT); + } + public int getMode() { + return this.getOpcIntegerValue(ItemProtocol.ITEM_MODE); + } public int getMove() { return this.getOpcIntegerValue(ItemProtocol.ITEM_MOVE); } + public int getAction() { + return this.getOpcIntegerValue(ItemProtocol.ITEM_ACTION); + } + public int getError() { + return this.getOpcIntegerValue(ItemProtocol.ITEM_ERROR); + } + public int getToCommand() { + return this.getOpcIntegerValue(ItemProtocol.ITEM_TO_COMMAND); + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/PhotoelectricDetectionDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/PhotoelectricDetectionDeviceDriver.java index 60bc138..b355ff3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/PhotoelectricDetectionDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/PhotoelectricDetectionDeviceDriver.java @@ -35,13 +35,43 @@ import java.util.Map; @RequiredArgsConstructor public class PhotoelectricDetectionDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor, StandardRequestMethod, HeartbeatableDeviceDriver { + /** + * 心跳 + */ + private int heartbeat = 0; + private int lastHeartbeat = this.heartbeat; + + /** + * 工作模式 + */ + private int mode = 0; + private int lastMode = this.mode; - // 光电信号 + /** + * 光电信号 + */ private int move = 0; private int lastMove = this.move; - private final static int MODE = 3; + /** + * 动作信号 + */ + private int action = 0; + private int lastAction = this.action; + + /** + * 报警信号 + */ + private int error = 0; + private int lastError = this.error; + + /** + * 下发命令 + */ + private int toCommand = 0; + private int lastToCommand = this.toCommand; + private static final int MODE = 3; private String currentDeviceCode = null; private boolean isOnline = false; @@ -67,14 +97,20 @@ public class PhotoelectricDetectionDeviceDriver extends AbstractOpcDeviceDriver try { this.currentDeviceCode = this.getDeviceCode(); + this.heartbeat = this.itemProtocol.getHeartbeat(); + this.mode = this.itemProtocol.getMode(); this.move = this.itemProtocol.getMove(); + this.action = this.itemProtocol.getAction(); + this.error = this.itemProtocol.getError(); + this.toCommand = this.itemProtocol.getToCommand(); + if (this.move != this.lastMove) { if (move == 0) { requireSuccess = false; } } - if (MODE > 0 && !requireSuccess) { + if (mode > 0 && !requireSuccess) { Object methodName = this.device.getExtraValue().get(String.valueOf(MODE)); if (ObjectUtil.isNotEmpty(methodName)) { try { @@ -99,7 +135,12 @@ public class PhotoelectricDetectionDeviceDriver extends AbstractOpcDeviceDriver log.error(e.getMessage(), e); return; } + this.lastHeartbeat = this.heartbeat; + this.lastMode = this.mode; this.lastMove = this.move; + this.lastAction = this.action; + this.lastError = this.error; + this.lastToCommand = this.toCommand; } private void executionMethodByMode(String methodName) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/PhotoelectricDetectionStationDefinition.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/PhotoelectricDetectionStationDefinition.java index 9d1712a..f62d55d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/PhotoelectricDetectionStationDefinition.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/shangdianke/PhotoelectricDetectionStationDefinition.java @@ -52,13 +52,18 @@ public class PhotoelectricDetectionStationDefinition implements OpcDeviceDriverD @Override public List getReadableItemDTOs() { ArrayList itemDTOs = new ArrayList<>(); + itemDTOs.add(new ItemDTO(ItemProtocol.ITEM_HEARTBEAT, "心跳", "")); + itemDTOs.add(new ItemDTO(ItemProtocol.ITEM_MODE, "工作模式", "")); itemDTOs.add(new ItemDTO(ItemProtocol.ITEM_MOVE, "光电信号", "")); + itemDTOs.add(new ItemDTO(ItemProtocol.ITEM_ACTION, "动作信号", "")); + itemDTOs.add(new ItemDTO(ItemProtocol.ITEM_ERROR, "报警信号", "")); return itemDTOs; } @Override public List getWriteableItemDTOs() { ArrayList itemDTOs = new ArrayList<>(); + itemDTOs.add(new ItemDTO(ItemProtocol.ITEM_TO_COMMAND, "下发命令", "")); return itemDTOs; } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java index be6e163..db0fad4 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java @@ -48,12 +48,6 @@ public class PdaController { private IPdmBdWorkorderService workorderService; - @PostMapping("/queryPoints") - @Log("获取点位信息") - public ResponseEntity queryPoints(@Validated @RequestBody PointsQueryDto requestParam) { - return new ResponseEntity<>(pdaService.queryPoints(requestParam), HttpStatus.OK); - } - @PostMapping("/group/getVehicleType") @Log("获取载具类型") public ResponseEntity getVehicleType() { @@ -66,78 +60,114 @@ public class PdaController { return new ResponseEntity<>(pdaService.queryMaterial(), HttpStatus.OK); } + @PostMapping("/group/manual") + @Log("组盘") + public ResponseEntity manualDiskAssembly(@Validated @RequestBody ManualGroupDto requestParam) { + return new ResponseEntity<>(pdaService.manualCreateByPda(requestParam), HttpStatus.OK); + } + @PostMapping("/queryVehicleGroup") @Log("获取待配盘信息") public ResponseEntity queryVehicleGroup() { return new ResponseEntity<>(pdaService.queryVehicleGroup(), HttpStatus.OK); } - @PostMapping("/group/manual") - @Log("开始组盘") - public ResponseEntity manualDiskAssembly(@Validated @RequestBody ManualGroupDto requestParam) { - return new ResponseEntity<>(pdaService.manualCreateByPda(requestParam), HttpStatus.OK); - } - @PostMapping("/group/link") - @Log("开始配盘") + @Log("配盘-确认") public ResponseEntity link(@Validated @RequestBody List requestParam) { return new ResponseEntity<>(pdaService.link(requestParam), HttpStatus.OK); } - @PostMapping("/group/printf") - @Log("打印标签") + @PostMapping("/fullVehicleIn") + @Log("入库") + public ResponseEntity fullVehicleIn(@Validated @RequestBody CommonPointQueryDto requestParam) { + return new ResponseEntity<>(pdaService.fullVehicleIn(requestParam), HttpStatus.OK); + } + + @PostMapping("/printf") + @Log("打印") public ResponseEntity printf(@Validated @RequestBody CommonVehicleInfoDto requestParam) { return new ResponseEntity<>(pdaService.printf(requestParam), HttpStatus.OK); } @PostMapping("/callEmptyVehicle") - @Log("呼叫空托盘") + @Log("空托盘出库") public ResponseEntity callEmptyVehicle(@Validated @RequestBody CommonPointQueryDto requestParam) { return new ResponseEntity<>(pdaService.callEmptyVehicle(requestParam), HttpStatus.OK); } - @PostMapping("/fullVehicleIn") - @Log("满托入库") - public ResponseEntity fullVehicleIn(@Validated @RequestBody CommonPointQueryDto requestParam) { - return new ResponseEntity<>(pdaService.fullVehicleIn(requestParam), HttpStatus.OK); + @PostMapping("/emptyInStore") + @Log("空托盘入库") + public ResponseEntity emptyInStore(@Validated @RequestBody VehicleInStoreDto requestParam) { + return new ResponseEntity<>(pdaService.emptyInStore(requestParam), HttpStatus.OK); + } + + @PostMapping("/queryLinkMaterial") + @Log("根据物料信息查询配盘信息") + public ResponseEntity queryLinkMaterial(@Validated @RequestBody MaterialQueryDto requestParam) { + return new ResponseEntity<>(pdaService.queryLinkMaterial(requestParam), HttpStatus.OK); } @PostMapping("/fullVehicleOut") - @Log("满托出库") + @Log("出库") public ResponseEntity fullVehicleOut(@Validated @RequestBody FullVehicleOutDto requestParam) { return new ResponseEntity<>(pdaService.fullVehicleOut(requestParam), HttpStatus.OK); } - @PostMapping("/vehicleGoBack") - @Log("余料回库") - public ResponseEntity fullVehicleOut(@Validated @RequestBody VehicleGoBackDto requestParam) { - return new ResponseEntity<>(pdaService.vehicleGoBack(requestParam), HttpStatus.OK); + @PostMapping("/queryGroupInfoByVehicle") + @Log("根据载具编码查询配盘信息") + public ResponseEntity queryGroupInfoByVehicle(@Validated @RequestBody CommonVehicleInfoDto requestParam) { + return new ResponseEntity<>(pdaService.queryGroupInfoByVehicle(requestParam), HttpStatus.OK); } @PostMapping("/fullVehicleOutConfirm") - @Log("满托出库确认") + @Log("出库确认") public ResponseEntity fullVehicleOutConfirm(@Validated @RequestBody FullVehicleOutConfirmDto requestParam) { return new ResponseEntity<>(pdaService.fullVehicleOutConfirm(requestParam), HttpStatus.OK); } - @PostMapping("/queryLinkMaterial") - @Log("根据物料信息查询配盘信息") - public ResponseEntity queryLinkMaterial(@Validated @RequestBody MaterialQueryDto requestParam) { - return new ResponseEntity<>(pdaService.queryLinkMaterial(requestParam), HttpStatus.OK); + @PostMapping("/vehicleGoBack") + @Log("余料回库") + public ResponseEntity fullVehicleOut(@Validated @RequestBody VehicleGoBackDto requestParam) { + return new ResponseEntity<>(pdaService.vehicleGoBack(requestParam), HttpStatus.OK); } - @PostMapping("/queryAllPoints") - @Log("查询起点及其对应终点") - public ResponseEntity queryAllPoints() { - return new ResponseEntity<>(pdaService.queryAllPoints(), HttpStatus.OK); + @PostMapping("/queryEndPointsByStart") + @Log("根据起点查询对应的终点列表") + public ResponseEntity queryEndPointsByStart(@Validated @RequestBody FullVehicleOutDto requestParam) { + return new ResponseEntity<>(pdaService.queryEndPointsByStart(requestParam), HttpStatus.OK); } @PostMapping("/createP2pTask") - @Log("创建点对点流传任务") + @Log("下料") public ResponseEntity createP2pTask(@Validated @RequestBody FullVehicleOutDto requestParam) { return new ResponseEntity<>(pdaService.createP2pTask(requestParam), HttpStatus.OK); } + @PostMapping("/unbindVehicle") + @Log("解绑") + public ResponseEntity unbindVehicle(@Validated @RequestBody BindVehicleDto requestParam) { + return new ResponseEntity(pdaService.unbindVehicle(requestParam), HttpStatus.OK); + } + + @PostMapping("/bindVehicle") + @Log("绑定") + public ResponseEntity bindVehicle(@Validated @RequestBody BindVehicleDto requestParam) { + return new ResponseEntity(pdaService.bindVehicle(requestParam), HttpStatus.OK); + } + + @PostMapping("/queryDevice") + @Log("查询设备") + public ResponseEntity queryDevice() { + return new ResponseEntity<>(pdaService.queryDevice(), HttpStatus.OK); + } + + @PostMapping("/taskConfirm") + @Log("定点作业") + public ResponseEntity taskConfirm(@Validated @RequestBody FullVehicleOutDto requestParam) { + return new ResponseEntity(pdaService.taskConfirm(requestParam), HttpStatus.OK); + } + @PostMapping("/deviceCheck/verify") @Log("设备点检") diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java index 430cf49..45bd2eb 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java @@ -14,14 +14,6 @@ import java.util.List; public interface PdaService { - /** - * 获取入库对接位和出库对接位点位信息 - * - * @param requestParam - * @return - */ - List queryPoints(PointsQueryDto requestParam); - /** * 获取载具类型 * @@ -120,11 +112,12 @@ public interface PdaService { List queryLinkMaterial(MaterialQueryDto requestParam); /** - * 查询所有定点任务的起点及其对应终点 + * 根据起点查询对应的终点列表 * + * @param requestParam * @return */ - List queryAllPoints(); + List queryEndPointsByStart(FullVehicleOutDto requestParam); /** * 创建点对点的任务 @@ -345,5 +338,45 @@ public interface PdaService { */ PdaResponseVo deleteMaterialInfo(RequestMaterialInfoVo requestMaterialInfoVo); + /** + * 空托盘入库 + * + * @param requestParam + * @return + */ + PdaResponseVo emptyInStore(VehicleInStoreDto requestParam); + + /** + * 根据载具编码查询配盘信息 + * + * @param requestParam + * @return + */ + VehicleLinkVo queryGroupInfoByVehicle(CommonVehicleInfoDto requestParam); + + + /** + * 解绑 + * + * @param requestParam + * @return + */ + PdaResponseVo unbindVehicle(BindVehicleDto requestParam); + + /** + * 绑定 + * + * @param requestParam + * @return + */ + PdaResponseVo bindVehicle(BindVehicleDto requestParam); + + /** + * 查询设备 + * + * @return + */ + List queryDevice(); + PdaResponseVo taskConfirm(FullVehicleOutDto requestParam); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/BindVehicleDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/BindVehicleDto.java new file mode 100644 index 0000000..d62ed70 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/BindVehicleDto.java @@ -0,0 +1,14 @@ +package org.nl.wms.pda.service.dao.dto; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/1/27 + */ +@Data +public class BindVehicleDto { + private String point_code; + private String vehicle_code; +} \ No newline at end of file diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/VehicleInStoreDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/VehicleInStoreDto.java new file mode 100644 index 0000000..2698eca --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/VehicleInStoreDto.java @@ -0,0 +1,15 @@ +package org.nl.wms.pda.service.dao.dto; + +import lombok.Data; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/2/27 + */ +@Data +public class VehicleInStoreDto { + private String vehicle_type; + private String vehicle_code; + private String point_code; +} \ No newline at end of file diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml index 513b894..b870555 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml @@ -30,12 +30,15 @@ m.material_name, g.point_code, g.vehicle_code, - g.vehicle_type, + d.label as vehicle_type, g.material_qty from `sch_base_vehiclematerialgroup` g left join md_base_material m on g.material_id = m.material_id - where link_status = '0' + left join `sys_dict` d + on d.`value` = g.vehicle_type + where d.`code` = 'vehicle_type' + and link_status = '0' and group_status = '2' and group_bind_material_status = '2' diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/PointVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/PointVo.java index 99d658a..349da6d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/PointVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/PointVo.java @@ -12,8 +12,7 @@ import java.util.List; */ @Data public class PointVo { - private String point_id; - private String point_code; + private String point_code2; private String point_name; - private List end_points = new ArrayList<>(); + } \ No newline at end of file diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/RegionVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/RegionVo.java new file mode 100644 index 0000000..1ee3cc2 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/RegionVo.java @@ -0,0 +1,18 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/2/28 + */ +@Data +public class RegionVo { + private String region_code; + private String region_name; + private List deviceArr = new ArrayList<>(); +} \ No newline at end of file diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 7235d41..cecc1e9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -12,7 +12,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; -import org.nl.common.utils.CopyUtil; import org.nl.common.utils.SecurityUtils; import org.nl.wms.database.material.service.IMdBaseMaterialService; import org.nl.wms.database.material.service.dao.MdBaseMaterial; @@ -33,6 +32,9 @@ import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.region.service.ISchBaseRegionService; +import org.nl.wms.sch.region.service.RegionEnum; +import org.nl.wms.sch.region.service.dao.SchBaseRegion; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.*; @@ -42,9 +44,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -74,19 +74,8 @@ public class PdaServiceImpl implements PdaService { private WmsToAcsService wmsToAcsService; @Autowired private IPdmBdRequestMaterialRecordService requestMaterialRecordService; - - @Override - public List queryPoints(PointsQueryDto requestParam) { - Assert.notNull(requestParam, "参数不能为空!"); - String region_code = null; - if (StrUtil.equals(requestParam.getType(), "1")) { - region_code = "ZP"; - } else if (StrUtil.equals(requestParam.getType(), "2")) { - region_code = "JLHC"; - } - Assert.notBlank(region_code, "传入参数有误!"); - return pdaMapper.queryPoints(region_code); - } + @Autowired + private ISchBaseRegionService regionService; @Override public List getVehicleType() { @@ -156,6 +145,22 @@ public class PdaServiceImpl implements PdaService { new LambdaQueryWrapper<>(); lqw.in(SchBaseVehiclematerialgroup::getGroup_id, groups); List list = vehiclematerialgroupService.list(lqw); + Assert.notNull(list, "组盘信息有误,数据库中不存在该组盘信息!"); + //校验配盘信息物料是否一致 + boolean flag = list.stream() + .map(SchBaseVehiclematerialgroup::getMaterial_id) + .distinct() + .count() == 1; + if (!flag) { + throw new BadRequestException("所选配盘信息有误,物料信息不一致!"); + } + //校验配盘信息数量和是否为整数 + double qty_sum = list.stream() + .mapToDouble(schBaseVehiclematerialgroup -> Double.parseDouble(schBaseVehiclematerialgroup.getMaterial_qty())) + .sum(); + if ((qty_sum % 1 != 0)) { + throw new BadRequestException("所选配盘信息有误,物料数量和不为整数!"); + } String pcsn_code = CodeUtil.getNewCode("PCSN_CODE"); for (SchBaseVehiclematerialgroup vehiclematerialgroup : list) { vehiclematerialgroup.setLink_status(LinkStatusEnum.LINK_FINISH.getType()); @@ -168,6 +173,27 @@ public class PdaServiceImpl implements PdaService { return PdaResponseVo.pdaResultOk("配盘完成"); } + @Override + public PdaResponseVo fullVehicleIn(CommonPointQueryDto requestParam) { + Assert.notNull(requestParam, "参数不能为空!"); + String point_code = requestParam.getPoint_code(); + Assert.notBlank(point_code, "当前点位不能为空!"); + SchBasePoint point = pointService.getById(point_code); + if (ObjectUtil.isEmpty(point)) { + throw new BadRequestException("点位:" + point_code + ",对应的点位信息不存在!"); + } + if (!PointStatusEnum.FULL_POINT.getCode().equals(point.getPoint_status())) { + throw new BadRequestException("点位:" + point_code + ",状态不是有料状态!"); + } + JSONObject param = new JSONObject(); + param.put("device_code", point_code); + param.put("config_code", "ZPRKTask"); + param.put("requestNo", IdUtil.simpleUUID()); + param.put("user_id", "1"); + taskService.apply(param); + return PdaResponseVo.pdaResultOk("满托入库请求成功"); + } + @Override public PrintTagVo printf(CommonVehicleInfoDto requestParam) { Assert.notNull(requestParam, "参数不能为空!"); @@ -179,10 +205,11 @@ public class PdaServiceImpl implements PdaService { .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()); SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getOne(lqw); Assert.notNull(vehiclematerialgroup, "载具:" + vehicle_code + ",未进行配盘!"); + MdBaseMaterial material = materialService.getById(vehiclematerialgroup.getMaterial_id()); PrintTagVo printTagVo = new PrintTagVo(); printTagVo.setVehicle_code(vehiclematerialgroup.getVehicle_code()); - printTagVo.setMaterial_code(vehiclematerialgroup.getMaterial_code()); - printTagVo.setMaterial_name(vehiclematerialgroup.getMaterial_name()); + printTagVo.setMaterial_code(material.getMaterial_code()); + printTagVo.setMaterial_name(material.getMaterial_name()); printTagVo.setMaterial_qty(vehiclematerialgroup.getMaterial_qty()); printTagVo.setPcsn(vehiclematerialgroup.getPcsn()); printTagVo.setPrint_time(DateUtil.now()); @@ -192,39 +219,103 @@ public class PdaServiceImpl implements PdaService { @Override public PdaResponseVo callEmptyVehicle(CommonPointQueryDto requestParam) { Assert.notNull(requestParam, "参数不能为空!"); + String point_code = requestParam.getPoint_code(); + SchBasePoint point = pointService.getById(point_code); + if (ObjectUtil.isEmpty(point)) { + throw new BadRequestException("点位:" + point_code + ",对应的点位信息不存在!"); + } + if (!point.getPoint_status().equals(PointStatusEnum.EMPTY_POINT.getCode())) { + throw new BadRequestException("点位:" + point_code + ",点位状态不为空位!"); + } + if (!RegionEnum.ZP.getRegion_code().equals(point.getRegion_code())) { + throw new BadRequestException("点位:" + point_code + ",不属于组盘区域,无法进行空托盘出库!"); + } JSONObject param = new JSONObject(); param.put("device_code", requestParam.getPoint_code()); param.put("config_code", "ZPQKTask"); param.put("requestNo", IdUtil.simpleUUID()); param.put("user_id", "1"); taskService.apply(param); - return PdaResponseVo.pdaResultOk("呼叫空托请求成功"); + return PdaResponseVo.pdaResultOk("空托盘出库请求成功"); } @Override - public PdaResponseVo fullVehicleIn(CommonPointQueryDto requestParam) { + public PdaResponseVo emptyInStore(VehicleInStoreDto requestParam) { Assert.notNull(requestParam, "参数不能为空!"); - String point_code = requestParam.getPoint_code(); + Assert.notBlank(requestParam.getVehicle_code(), "载具编码不能为空!"); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(SchBasePoint::getRegion_code, RegionEnum.YCL.getRegion_code()); + List points = pointService.list(lambdaQueryWrapper); + List vehicles = points.stream().map(SchBasePoint::getVehicle_code).collect(Collectors.toList()); + if (vehicles.contains(requestParam.getVehicle_code())) { + throw new BadRequestException("原材料库中已存在该载具信息:" + requestParam.getVehicle_code() + "!"); + } + Assert.notBlank(requestParam.getVehicle_type(), "载具类型不能为空!"); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(SchBasePoint::getPoint_code, point_code) - .eq(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode()) - .eq(SchBasePoint::getIs_used, true); + lqw.eq(SchBasePoint::getPoint_code, requestParam.getPoint_code()) + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()); SchBasePoint point = pointService.getOne(lqw); if (ObjectUtil.isEmpty(point)) { - throw new BadRequestException("点位:" + point_code + ",状态不是有料状态!"); + throw new BadRequestException("点位:" + requestParam.getPoint_code() + "状态不为空位!"); + } + if (!RegionEnum.ZP.getRegion_code().equals(point.getRegion_code())) { + throw new BadRequestException("点位:" + requestParam.getPoint_code() + "不属于组盘区域,无法进行空托盘入库!"); } JSONObject param = new JSONObject(); - param.put("device_code", point_code); - param.put("config_code", "ZPRKTask"); + param.put("device_code", requestParam.getPoint_code()); + param.put("vehicle_type", requestParam.getVehicle_type()); + param.put("vehicle_code", requestParam.getVehicle_code()); + param.put("config_code", "ZPKTPRKTask"); param.put("requestNo", IdUtil.simpleUUID()); param.put("user_id", "1"); taskService.apply(param); - return PdaResponseVo.pdaResultOk("满托入库请求成功"); + return PdaResponseVo.pdaResultOk("空托入库请求成功"); } + + @Override + public List queryLinkMaterial(MaterialQueryDto requestParam) { + Assert.notNull(requestParam, "参数不能为空!"); + Assert.notBlank(requestParam.getMaterial_id(), "物料ID不能为空!"); + MdBaseMaterial material = materialService.getById(requestParam.getMaterial_id()); + Assert.notNull(material, "物料信息有误!未查询出对应的物料信息,物料编码:" + requestParam.getMaterial_code()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SchBaseVehiclematerialgroup::getMaterial_id, requestParam.getMaterial_id()) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()) + .eq(SchBaseVehiclematerialgroup::getLink_status, LinkStatusEnum.LINK_FINISH.getType()) + .orderByDesc(SchBaseVehiclematerialgroup::getPcsn, SchBaseVehiclematerialgroup::getUpdate_time); + List list = vehiclematerialgroupService.list(lqw); + List vehicleLinkVoList = new ArrayList<>(); + for (SchBaseVehiclematerialgroup group : list) { + SchBasePoint point = pointService.getById(group.getPoint_code()); + if (!RegionEnum.YCL.getRegion_code().equals(point.getRegion_code())) { + continue; + } + VehicleLinkVo vehicleLinkVo = new VehicleLinkVo(); + vehicleLinkVo.setMaterial_id(group.getMaterial_id()); + vehicleLinkVo.setGroup_id(group.getGroup_id()); + vehicleLinkVo.setVehicle_code(group.getVehicle_code()); + vehicleLinkVo.setMaterial_name(material.getMaterial_name()); + vehicleLinkVo.setPoint_code(group.getPoint_code()); + vehicleLinkVo.setPoint_name(group.getPoint_name()); + vehicleLinkVo.setPcsn(group.getPcsn()); + vehicleLinkVo.setVehicle_type(group.getVehicle_type()); + vehicleLinkVo.setMaterial_code(material.getMaterial_code()); + vehicleLinkVo.setMaterial_qty(group.getMaterial_qty()); + vehicleLinkVoList.add(vehicleLinkVo); + } + return vehicleLinkVoList; + } + + @Override public PdaResponseVo fullVehicleOut(FullVehicleOutDto requestParam) { Assert.notNull(requestParam, "参数不能为空!"); + Assert.notBlank(requestParam.getPoint_code1(), "起始点位不能为空!"); + Assert.notNull(pointService.getById(requestParam.getPoint_code1()), requestParam.getPoint_code1() + ",对应的点位信息不存在!"); + Assert.notBlank(requestParam.getPoint_code2(), "出库点位不能为空!"); + Assert.notNull(pointService.getById(requestParam.getPoint_code2()), requestParam.getPoint_code2() + ",对应的点位信息不存在!"); JSONObject param = new JSONObject(); param.put("device_code", requestParam.getPoint_code1()); param.put("device_code2", requestParam.getPoint_code2()); @@ -232,56 +323,59 @@ public class PdaServiceImpl implements PdaService { param.put("requestNo", IdUtil.simpleUUID()); param.put("user_id", "1"); taskService.apply(param); - return PdaResponseVo.pdaResultOk("满托出库请求成功"); + return PdaResponseVo.pdaResultOk("出库请求成功"); } @Override - public PdaResponseVo vehicleGoBack(VehicleGoBackDto requestParam) { + public VehicleLinkVo queryGroupInfoByVehicle(CommonVehicleInfoDto requestParam) { Assert.notNull(requestParam, "参数不能为空!"); - String vehicle_code = requestParam.getVehicle_code(); - Assert.notNull(vehicle_code, "载具号不能为空!"); - String residue_num = requestParam.getResidue_num(); - Assert.notNull(residue_num, "余料数量不能为空!"); - LambdaQueryWrapper lqw = - new LambdaQueryWrapper<>(); - lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code) - .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()) + Assert.notBlank(requestParam.getVehicle_code(), "载具编码不能为空!"); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code, requestParam.getVehicle_code()) .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()) .eq(SchBaseVehiclematerialgroup::getLink_status, LinkStatusEnum.LINK_FINISH.getType()); - SchBaseVehiclematerialgroup groupOne = vehiclematerialgroupService.getOne(lqw); - if (ObjectUtil.isNotEmpty(groupOne)) { - this.checkQty(groupOne, residue_num); + SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getOne(lqw); + if (ObjectUtil.isEmpty(vehiclematerialgroup)) { + return new VehicleLinkVo(); } - JSONObject param = new JSONObject(); - param.put("device_code", requestParam.getPoint_code()); - param.put("config_code", "JLHCHKTask"); - param.put("requestNo", IdUtil.simpleUUID()); - param.put("user_id", "1"); - taskService.apply(param); - return PdaResponseVo.pdaResultOk("余料回库请求成功"); + VehicleLinkVo vo = new VehicleLinkVo(); + vo.setPoint_code(vehiclematerialgroup.getPoint_code()); + vo.setMaterial_id(vehiclematerialgroup.getMaterial_id()); + vo.setMaterial_code(vehiclematerialgroup.getMaterial_code()); + vo.setMaterial_name(vehiclematerialgroup.getMaterial_name()); + vo.setPcsn(vehiclematerialgroup.getPcsn()); + vo.setMaterial_qty(vehiclematerialgroup.getMaterial_qty()); + return vo; } + @Override + @Transactional(rollbackFor = Exception.class) public PdaResponseVo fullVehicleOutConfirm(FullVehicleOutConfirmDto requestParam) { Assert.notNull(requestParam, "参数不能为空!"); String point_code = requestParam.getPoint_code(); Assert.notBlank(point_code, "点位编码不能为空!"); SchBasePoint point = pointService.getById(point_code); + Assert.notNull(point, point_code + "对应点位信息不存在!"); if (StrUtil.isNotEmpty(point.getIng_task_code())) { - throw new BadRequestException("满托出库确认失败,存在未完成的任务!"); + throw new BadRequestException("出库确认失败,存在未完成的任务!"); } - String vehicle_code = requestParam.getVehicle_code(); - Assert.notBlank(vehicle_code, "载具号不能为空!"); + if (!RegionEnum.JLHC.getRegion_code().equals(point.getRegion_code()) && + !RegionEnum.YCL.getRegion_code().equals(point.getRegion_code())) { + throw new BadRequestException("出库点位所属区域不是" + RegionEnum.JLHC.getRegion_name() + "," + RegionEnum.YCL.getRegion_name() + ",无法进行出库确认!"); + } + Assert.notBlank(requestParam.getVehicle_code(), "载具号不能为空!"); String residue_num = requestParam.getResidue_num(); Assert.notBlank(residue_num, "余料数量不能为空!"); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code) + lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code, requestParam.getVehicle_code()) .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()) .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) .eq(SchBaseVehiclematerialgroup::getLink_status, LinkStatusEnum.LINK_FINISH.getType()); SchBaseVehiclematerialgroup groupOne = vehiclematerialgroupService.getOne(lqw); - Assert.notNull(groupOne, "载具号:'" + vehicle_code + "',对应的组盘信息不存在!"); + Assert.notNull(groupOne, "载具号:'" + requestParam.getVehicle_code() + "',对应的组盘信息不存在!"); this.checkQty(groupOne, residue_num); //如果余料数量为0 if (residue_num.matches("^0*(\\.\\d+)?$")) { @@ -312,67 +406,65 @@ public class PdaServiceImpl implements PdaService { copyGroup.setMaterial_qty(residue_num); vehiclematerialgroupService.create(copyGroup); } - return PdaResponseVo.pdaResultOk("满托出库确认请求成功"); + return PdaResponseVo.pdaResultOk("出库确认请求成功"); } @Override - public List queryLinkMaterial(MaterialQueryDto requestParam) { + public PdaResponseVo vehicleGoBack(VehicleGoBackDto requestParam) { Assert.notNull(requestParam, "参数不能为空!"); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(SchBaseVehiclematerialgroup::getMaterial_id, requestParam.getMaterial_id()) - .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) + String point_code = requestParam.getPoint_code(); + Assert.notBlank(point_code, "出库点位不能为空!"); + SchBasePoint point = pointService.getById(requestParam.getPoint_code()); + Assert.notNull(point, point_code + "对应的点位信息不存在!"); + if (!RegionEnum.JLHC.getRegion_code().equals(point.getRegion_code())) { + throw new BadRequestException("回库请求失败,出库点位所属区域不是" + RegionEnum.JLHC.getRegion_name()); + } + String vehicle_code = requestParam.getVehicle_code(); + Assert.notNull(vehicle_code, "载具号不能为空!"); + String residue_num = requestParam.getResidue_num(); + Assert.notNull(residue_num, "余料数量不能为空!"); + LambdaQueryWrapper lqw = + new LambdaQueryWrapper<>(); + lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicle_code) .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()) - .eq(SchBaseVehiclematerialgroup::getLink_status, LinkStatusEnum.LINK_FINISH.getType()) - .orderByDesc(SchBaseVehiclematerialgroup::getPcsn, SchBaseVehiclematerialgroup::getUpdate_time); - List list = vehiclematerialgroupService.list(lqw); - List vehicleLinkVoList = new ArrayList<>(); - for (SchBaseVehiclematerialgroup group : list) { - SchBasePoint point = pointService.getById(group.getPoint_code()); - if (!point.getRegion_code().equals("YCL")) { - continue; - } - MdBaseMaterial material = materialService.getById(group.getMaterial_id()); - Assert.notNull(material, "物料信息有误!未查询出对应的物料信息,物料id:" + group.getMaterial_id()); - VehicleLinkVo vehicleLinkVo = new VehicleLinkVo(); - vehicleLinkVo.setMaterial_id(group.getMaterial_id()); - vehicleLinkVo.setGroup_id(group.getGroup_id()); - vehicleLinkVo.setVehicle_code(group.getVehicle_code()); - vehicleLinkVo.setMaterial_name(material.getMaterial_name()); - vehicleLinkVo.setPoint_code(group.getPoint_code()); - vehicleLinkVo.setPoint_name(group.getPoint_name()); - vehicleLinkVo.setPcsn(group.getPcsn()); - vehicleLinkVo.setVehicle_type(group.getVehicle_type()); - vehicleLinkVo.setMaterial_code(material.getMaterial_code()); - vehicleLinkVo.setMaterial_qty(group.getMaterial_qty()); - vehicleLinkVoList.add(vehicleLinkVo); + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getLink_status, LinkStatusEnum.LINK_FINISH.getType()); + SchBaseVehiclematerialgroup groupOne = vehiclematerialgroupService.getOne(lqw); + if (ObjectUtil.isNotEmpty(groupOne)) { + this.checkQty(groupOne, residue_num); } - return vehicleLinkVoList; + JSONObject param = new JSONObject(); + param.put("device_code", requestParam.getPoint_code()); + param.put("config_code", "JLHCHKTask"); + param.put("requestNo", IdUtil.simpleUUID()); + param.put("user_id", "1"); + taskService.apply(param); + return PdaResponseVo.pdaResultOk("余料回库请求成功"); } + @Override - public List queryAllPoints() { - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - //除这些区域外 其它区域都存在定点流转任务 - //叫料缓存区、组盘区、空托盘缓存区1、空托盘缓存区2、原材料 - lqw.notIn(SchBasePoint::getRegion_code, "JLHC", "ZP", "KTPHC1", "KTPHC2", "YCL") - .and(la -> la.isNotNull(SchBasePoint::getNext_point_code)) - .eq(SchBasePoint::getIs_used, true); - List list = this.copyPointVoList(pointService.list(lqw)); - for (PointVo pointVo : list) { - List end_points = pointVo.getEnd_points(); - SchBasePoint point = pointService.getOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, pointVo.getPoint_code()).eq(SchBasePoint::getIs_used, true)); - if (StrUtil.isNotEmpty(point.getNext_point_code())) { - String[] nextPointCodes = point.getNext_point_code().split(","); - for (int i = 0; i < nextPointCodes.length; i++) { - String nextPointCode = nextPointCodes[i]; - SchBasePoint one = pointService.getOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, nextPointCode).eq(SchBasePoint::getIs_used, true)); - PointVo pv = new PointVo(); - pv.setPoint_id(IdUtil.simpleUUID()); - pv.setPoint_code(one.getPoint_code()); - pv.setPoint_name(one.getPoint_name()); - end_points.add(pv); - } - } + public List queryEndPointsByStart(FullVehicleOutDto requestParam) { + Assert.notNull(requestParam, "请求参数不能为空!"); + Assert.notBlank(requestParam.getPoint_code1(), "当前点位不能为空!"); + SchBasePoint point = pointService.getById(requestParam.getPoint_code1()); + Assert.notNull(point, requestParam.getPoint_code1() + "对应的点位信息不存在!"); + List regions = Arrays.asList(RegionEnum.ZP.getRegion_code(), RegionEnum.JLHC.getRegion_code(), RegionEnum.YCL.getRegion_code()); + if (regions.contains(point.getRegion_code())) { + throw new BadRequestException("当前点位信息有误,请检查该点位是否为任务流传所属区域!"); + } + List list = new ArrayList<>(); + if (StrUtil.isEmpty(point.getNext_point_code())) { + return list; + } + String[] nextPointCodes = point.getNext_point_code().split(","); + for (int i = 0; i < nextPointCodes.length; i++) { + String nextPointCode = nextPointCodes[i]; + SchBasePoint one = pointService.getOne(new LambdaQueryWrapper().eq(SchBasePoint::getPoint_code, nextPointCode).eq(SchBasePoint::getIs_used, true)); + PointVo pv = new PointVo(); + pv.setPoint_code2(one.getPoint_code()); + pv.setPoint_name(one.getPoint_name()); + list.add(pv); } return list; } @@ -388,19 +480,125 @@ public class PdaServiceImpl implements PdaService { param.put("requestNo", IdUtil.simpleUUID()); param.put("user_id", "1"); taskService.apply(param); - return PdaResponseVo.pdaResultOk("创建点对点任务请求成功"); + return PdaResponseVo.pdaResultOk("下料请求成功"); + } + + @Override + public PdaResponseVo unbindVehicle(BindVehicleDto requestParam) { + Assert.notNull(requestParam, "请求参数不能为空!"); + Assert.notBlank(requestParam.getPoint_code(), "当前点位不能为空!"); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SchBaseVehiclematerialgroup::getPoint_code, requestParam.getPoint_code()) + .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getLink_status, LinkStatusEnum.LINK_FINISH.getType()); + SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getOne(lqw); + if (ObjectUtil.isNotEmpty(vehiclematerialgroup)) { + vehiclematerialgroup.setPoint_code(null); + vehiclematerialgroup.setPoint_name(null); + vehiclematerialgroupService.update(vehiclematerialgroup); + } + SchBasePoint point = pointService.getById(requestParam.getPoint_code()); + Assert.notNull(point, requestParam.getPoint_code() + "对应点位信息不存在!"); + point.setPoint_status(PointStatusEnum.EMPTY_POINT.getCode()); + point.setVehicle_code(""); + point.setVehicle_type(""); + point.setVehicle_qty(0); + pointService.update(point); + return PdaResponseVo.pdaResultOk("解绑成功"); + } + + @Override + public PdaResponseVo bindVehicle(BindVehicleDto requestParam) { + Assert.notNull(requestParam, "请求参数不能为空!"); + Assert.notBlank(requestParam.getPoint_code(), "当前点位不能为空!"); + Assert.notBlank(requestParam.getVehicle_code(), "载具编码不能为空!"); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code, requestParam.getVehicle_code()) + .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getLink_status, LinkStatusEnum.LINK_FINISH.getType()); + SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getOne(lqw); + SchBasePoint point = pointService.getById(requestParam.getPoint_code()); + Assert.notNull(point, requestParam.getPoint_code() + "对应点位信息不存在!"); + String point_status = PointStatusEnum.EMPTY_VEHICLE.getCode(); + if (ObjectUtil.isNotEmpty(vehiclematerialgroup)) { + point_status = PointStatusEnum.FULL_POINT.getCode(); + vehiclematerialgroup.setPoint_code(requestParam.getPoint_code()); + vehiclematerialgroup.setPoint_name(point.getPoint_name()); + vehiclematerialgroupService.update(vehiclematerialgroup); + } + point.setPoint_status(point_status); + point.setVehicle_code(requestParam.getVehicle_code()); + point.setVehicle_qty(1); + pointService.update(point); + return PdaResponseVo.pdaResultOk("绑定成功"); + } + + @Override + public List queryDevice() { + List regions = regionService.list(); + List points = pointService.list(new LambdaQueryWrapper() + .eq(SchBasePoint::getIs_used, true)); + return regions.stream().map(region -> { + RegionVo regionVo = new RegionVo(); + regionVo.setRegion_code(region.getRegion_code()); + regionVo.setRegion_name(region.getRegion_name()); + List deviceArr = points.stream() + .filter(point -> point.getRegion_code().equals(region.getRegion_code())) + .map(point -> { + Map map = new HashMap<>(); + map.put("point_code", point.getPoint_code()); + map.put("point_name", point.getPoint_name()); + return map; + }) + .collect(Collectors.toList()); + regionVo.setDeviceArr(deviceArr); + return regionVo; + }).collect(Collectors.toList()); + } + + @Override + public PdaResponseVo taskConfirm(FullVehicleOutDto requestParam) { + Assert.notNull(requestParam, "参数不能为空!"); + Assert.notBlank(requestParam.getPoint_code1(), "起点点位不能为空!"); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SchBasePoint::getPoint_code, requestParam.getPoint_code1()) + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + .eq(SchBasePoint::getIs_used, true); + SchBasePoint point1 = pointService.getOne(lqw); + if (ObjectUtil.isNotEmpty(point1)) { + throw new BadRequestException(requestParam.getPoint_code1() + "点位状态为空位,无法进行定点任务下发!"); + } + Assert.notBlank(requestParam.getPoint_code2(), "终点点位不能为空!"); + lqw = new LambdaQueryWrapper<>(); + lqw.eq(SchBasePoint::getPoint_code, requestParam.getPoint_code2()) + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + .eq(SchBasePoint::getIs_used, true); + SchBasePoint point2 = pointService.getOne(lqw); + if (ObjectUtil.isEmpty(point2)) { + throw new BadRequestException(requestParam.getPoint_code2() + "点位状态不为空位,无法进行定点任务下发!"); + } + JSONObject param = new JSONObject(); + param.put("device_code", requestParam.getPoint_code1()); + param.put("device_code2", requestParam.getPoint_code2()); + param.put("config_code", "FixPointTask"); + param.put("requestNo", IdUtil.simpleUUID()); + param.put("user_id", "1"); + taskService.apply(param); + return PdaResponseVo.pdaResultOk("创建定点任务请求成功"); } @Override public List copyPointVoList(List list) { List pointVoList = new ArrayList<>(); - for (SchBasePoint point : list) { - PointVo pointVo = new PointVo(); - pointVo.setPoint_id(IdUtil.simpleUUID()); - pointVo.setPoint_code(point.getPoint_code()); - pointVo.setPoint_name(point.getPoint_name()); - pointVoList.add(pointVo); - } +// for (SchBasePoint point : list) { +// PointVo pointVo = new PointVo(); +// pointVo.setPoint_id(IdUtil.simpleUUID()); +// pointVo.setPoint_code(point.getPoint_code()); +// pointVo.setPoint_name(point.getPoint_name()); +// pointVoList.add(pointVo); +// } return pointVoList; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/region/service/RegionEnum.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/region/service/RegionEnum.java new file mode 100644 index 0000000..9e58243 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/region/service/RegionEnum.java @@ -0,0 +1,31 @@ +package org.nl.wms.sch.region.service; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @Description TODO + * @Author Gengby + * @Date 2024/2/27 + */ +@Getter +@AllArgsConstructor +public enum RegionEnum { + ZP("ZP", "组盘区"), + _2FMCZKJ("2FMCZKJ", "2F面层制壳间"), + _3FLMZS("3FLMZS", "3F蜡模组树区"), + BCXKZB("BCXKZB", "备成型壳制备区"), + JLHC("JLHC", "叫料缓存区"), + KTPHC1("KTPHC1", "空托盘缓存1区"), + KTPHC2("KTPHC2", "空托盘缓存2区"), + LMZB("LMZB", "蜡模制备区"), + LMZP("LMZP", "蜡模组盘区"), + XKBS("XKBS", "型壳焙烧区"), + YCL("YCL", "原材料库"), + ZDZK("ZDZK", "自动制壳区"), + ZQTL("ZQTL", "蒸汽脱蜡区"); + + private String region_code; + private String region_name; + +} \ No newline at end of file diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.java deleted file mode 100644 index 11b6965..0000000 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.nl.wms.sch.task_manage.task.tasks.dtk.mapper; - -import org.nl.wms.sch.point.service.dao.SchBasePoint; - -import java.util.List; - -/** - * @Author: lyd - * @Description: 叠托库mapper - * @Date: 2023/6/21 - */ -public interface DTKMapper { - List findPointForDTSK(List regionCode); - - /** - * 拆盘机找空盘 - * - * @param regionCode - * @return - */ - List findPointForCTQK(List regionCode); -} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml deleted file mode 100644 index 87b0685..0000000 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/lmzb/LMZBQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/lmzb/LMZBQKTask.java index 1ec5b88..cd8238e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/lmzb/LMZBQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/lmzb/LMZBQKTask.java @@ -70,7 +70,8 @@ public class LMZBQKTask extends AbstractTask { task.setPoint_code1(point.getPoint_code()); task.setRemark(""); task.setVehicle_qty(point.getVehicle_qty()); - task.setVehicle_type(point.getCan_vehicle_type()); + task.setVehicle_type(point.getVehicle_type()); + task.setVehicle_code(point.getVehicle_code()); task.setTask_status(TaskStatus.CREATED.getCode()); taskService.save(task); // 点位更新 @@ -147,11 +148,21 @@ public class LMZBQKTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); + SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); // 起点清空 if (ObjectUtil.isNotEmpty(startPointObj)) { PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.clearPoint(startPointObj); - //终点不需要记录点位状态和载具信息 + startPointObj.setIng_task_code(""); + pointService.update(startPointObj); + } + //终点更新载具信息 点位状态 + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setVehicle_type(taskObj.getVehicle_type()); + endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); + pointService.update(endPointObj); } // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/lmzp/LMZPQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/lmzp/LMZPQKTask.java index aa31362..1adef34 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/lmzp/LMZPQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/lmzp/LMZPQKTask.java @@ -70,7 +70,8 @@ public class LMZPQKTask extends AbstractTask { task.setPoint_code1(point.getPoint_code()); task.setRemark(""); task.setVehicle_qty(point.getVehicle_qty()); - task.setVehicle_type(point.getCan_vehicle_type()); + task.setVehicle_type(point.getVehicle_type()); + task.setVehicle_code(point.getVehicle_code()); task.setTask_status(TaskStatus.CREATED.getCode()); taskService.save(task); // 点位更新 @@ -147,11 +148,21 @@ public class LMZPQKTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); + SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); // 起点清空 if (ObjectUtil.isNotEmpty(startPointObj)) { PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.clearPoint(startPointObj); - //终点不需要记录点位状态和载具信息 + startPointObj.setIng_task_code(""); + pointService.update(startPointObj); + } + //终点更新载具信息 点位状态 + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setVehicle_type(taskObj.getVehicle_type()); + endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); + endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); + pointService.update(endPointObj); } // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/p2p/FixPointTask.java similarity index 52% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/p2p/FixPointTask.java index 5eda411..9411cc1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/p2p/FixPointTask.java @@ -1,131 +1,105 @@ -package org.nl.wms.sch.task_manage.task.tasks.dtk; +package org.nl.wms.sch.task_manage.task.tasks.p2p; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.notice.ISysNoticeService; +import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; -import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; -import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.GeneralDefinition; -import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; -import org.nl.wms.sch.task_manage.enums.PointStatusEnum; -import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.enums.*; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.nl.wms.sch.task_manage.task.tasks.dtk.mapper.DTKMapper; import org.nl.wms.util.PointUtils; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - /** - * @Author: lyd - * @Description: 拆盘机呼叫空托 - * @Date: 2023/6/21 + * 定点作业 + * + * @author onepiece */ -@Component(value = "DTKQKTask") -@TaskType("DTKQKTask") -public class CTQKTask extends AbstractTask { - private static final String TASK_CONFIG_CODE = "DTKQKTask"; +@Component(value = "FixPointTask") +@TaskType("FixPointTask") +public class FixPointTask extends AbstractTask { + private static final String TASK_CONFIG_CODE = "FixPointTask"; @Autowired private ISchBasePointService pointService; @Autowired private ISchBaseTaskService taskService; @Autowired - private ISchBaseTaskconfigService taskConfigService; - @Autowired private ISysNoticeService noticeService; @Autowired - private DTKMapper dtkMapper; + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Override public void create() throws BadRequestException { - // 获取任务 - List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); - // 配置信息 - SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() - .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); - for (SchBaseTask task : tasks) { - TaskUtils.setUpdateByAcs(task); - List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) - .collect(Collectors.toList()); - // 找起点 - SchBasePoint point = findStartPoint(startRegionStr); - if (ObjectUtil.isEmpty(point)) { - task.setRemark("暂无托盘!"); - taskService.updateById(task); - // 消息通知 - noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getPoint_code2(), - NoticeTypeEnum.WARN.getCode()); - continue; - } - // 设置终点并修改创建成功状态 - task.setPoint_code1(point.getPoint_code()); - task.setRemark(""); - task.setVehicle_qty(point.getVehicle_qty()); - task.setTask_status(TaskStatus.CREATED.getCode()); - taskService.updateById(task); - // 点位信息更新 - point.setIng_task_code(task.getTask_code()); - pointService.update(point); - PointUtils.setUpdateByAcs(point); - pointService.updateById(point); - } } + @Override @Transactional(rollbackFor = Exception.class) public void createCompletion(SchBaseTask task) { - // 配置信息 - SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() - .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); - TaskUtils.setUpdateByAcs(task); - List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) - .collect(Collectors.toList()); - // 找起点 - SchBasePoint point = findStartPoint(startRegionStr); - if (ObjectUtil.isEmpty(point)) { + String point_code1 = task.getPoint_code1(); + SchBasePoint point1 = this.findPoint(point_code1); + if (ObjectUtil.isEmpty(point1)) { // 消息通知 - noticeService.createNotice("拆盘机暂无托盘!", TASK_CONFIG_CODE + task.getPoint_code2(), + noticeService.createNotice("定点任务创建失败," + point1 + "存在任务!", TASK_CONFIG_CODE + task.getPoint_code1(), NoticeTypeEnum.WARN.getCode()); - throw new BadRequestException("拆盘机暂无托盘!"); + throw new BadRequestException("定点任务创建失败," + point1 + "存在任务!"); + } + String point_code2 = task.getPoint_code2(); + SchBasePoint point2 = this.findPoint(point_code2); + if (ObjectUtil.isEmpty(point2)) { + // 消息通知 + noticeService.createNotice("定点任务创建失败," + point2 + "存在任务!", TASK_CONFIG_CODE + task.getPoint_code2(), + NoticeTypeEnum.WARN.getCode()); + throw new BadRequestException("定点任务创建失败," + point2 + "存在任务!"); } // 设置终点并修改创建成功状态 - task.setPoint_code1(point.getPoint_code()); task.setRemark(""); - task.setVehicle_qty(point.getVehicle_qty()); - task.setVehicle_type(GeneralDefinition.STEEL_TRAY); + task.setVehicle_code(point1.getVehicle_code()); + task.setVehicle_qty(point1.getVehicle_qty()); + task.setVehicle_type(point1.getVehicle_type()); task.setTask_status(TaskStatus.CREATED.getCode()); + task.setCreate_mode(GeneralDefinition.HAND_CREATION); taskService.save(task); // 点位更新 - point.setIng_task_code(task.getTask_code()); - PointUtils.setUpdateByAcs(point); - pointService.updateById(point); + point1.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point1); + pointService.updateById(point1); + point2.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point2); + pointService.updateById(point2); } + /** - * 从区域中获取一推钢托盘 + * 创建定点任务时判断点位是否存在任务 * - * @param startRegionStr + * @param point_code * @return */ - private SchBasePoint findStartPoint(List startRegionStr) { - // 钢托盘缓存区域的空盘是1 状态不同 - List points = dtkMapper.findPointForCTQK(startRegionStr); - return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; + private SchBasePoint findPoint(String point_code) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SchBasePoint::getPoint_code, point_code) + .and(la -> la.isNull(SchBasePoint::getIng_task_code) + .or() + .eq(SchBasePoint::getIng_task_code, "")) + .eq(SchBasePoint::getIs_used, true); + return pointService.getOne(lqw); } + @Override protected void updateStatus(String task_code, TaskStatus status) { // 校验任务 @@ -174,16 +148,34 @@ public class CTQKTask extends AbstractTask { // 获取参数 SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); - // 起点清空 - if (ObjectUtil.isNotEmpty(startPointObj)) { - PointUtils.setUpdateByType(startPointObj, taskFinishedType); - PointUtils.clearPoint(startPointObj); - endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); - endPointObj.setVehicle_type(GeneralDefinition.STEEL_TRAY); - endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); + if (ObjectUtil.isNotEmpty(startPointObj) && ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setVehicle_qty(startPointObj.getVehicle_qty()); + endPointObj.setVehicle_code(startPointObj.getVehicle_code()); + endPointObj.setVehicle_type(startPointObj.getVehicle_type()); + endPointObj.setPoint_status(startPointObj.getPoint_status()); + endPointObj.setIng_task_code(""); endPointObj.setUpdate_time(DateUtil.now()); PointUtils.setUpdateByType(endPointObj, taskFinishedType); pointService.updateById(endPointObj); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code, startPointObj.getVehicle_code()) + .eq(SchBaseVehiclematerialgroup::getGroup_status, GroupStatusEnum.IN_STORAGE.getType()) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getLink_status, LinkStatusEnum.LINK_FINISH.getType()); + SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getOne(lqw); + if (ObjectUtil.isNotEmpty(vehiclematerialgroup)) { + vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code()); + vehiclematerialgroup.setPoint_name(endPointObj.getPoint_name()); + vehiclematerialgroup.setMove_way(vehiclematerialgroup.getMove_way() + " -> " + endPointObj.getPoint_code()); + vehiclematerialgroup.setUpdate_id(SecurityUtils.getCurrentUserId()); + vehiclematerialgroup.setUpdate_name(SecurityUtils.getCurrentNickName()); + vehiclematerialgroup.setUpdate_time(DateUtil.now()); + vehiclematerialgroupService.update(vehiclematerialgroup); + } + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + PointUtils.clearPoint(startPointObj); + startPointObj.setIng_task_code(""); + pointService.updateById(startPointObj); } // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); @@ -197,12 +189,19 @@ public class CTQKTask extends AbstractTask { public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); + SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); // 起点解锁 if (ObjectUtil.isNotEmpty(startPointObj)) { startPointObj.setIng_task_code(""); PointUtils.setUpdateByType(startPointObj, taskFinishedType); pointService.updateById(startPointObj); } + //终点解锁 + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); + } taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setRemark(GeneralDefinition.TASK_CANCEL); taskObj.setFinished_type(taskFinishedType.getCode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/p2p/P2PTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/p2p/P2PTask.java index 5bf23ab..b2b1c47 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/p2p/P2PTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/p2p/P2PTask.java @@ -9,7 +9,6 @@ import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; -import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.GeneralDefinition; @@ -29,8 +28,7 @@ import java.util.List; import java.util.stream.Collectors; /** - * 手持点对点任务 - * 流转点位 + * 生产下料 * 如果手持指定终点则使用该终点 * 如果手持未指定终点,则根据点位表中配置的下一点位信息进行查找 * @@ -56,10 +54,18 @@ public class P2PTask extends AbstractTask { @Transactional(rollbackFor = Exception.class) public void createCompletion(SchBaseTask task) { TaskUtils.setUpdateByAcs(task); + String point_code1 = task.getPoint_code1(); + SchBasePoint point1 = pointService.getById(point_code1); + if (ObjectUtil.isEmpty(point1)) { + // 消息通知 + noticeService.createNotice("任务创建失败,'" + point_code1 + "'对应的点位信息不存在!", TASK_CONFIG_CODE + task.getPoint_code1(), + NoticeTypeEnum.WARN.getCode()); + throw new BadRequestException("任务创建失败,'" + point_code1 + "'对应的点位信息不存在!"); + } String point_code2 = task.getPoint_code2(); - SchBasePoint endPoint = null; + SchBasePoint point2 = null; if (StrUtil.isEmpty(point_code2)) { - endPoint = findEndPoint(task.getPoint_code1()); + point2 = findEndPoint(task.getPoint_code1()); } else { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(SchBasePoint::getPoint_code, point_code2) @@ -67,26 +73,30 @@ public class P2PTask extends AbstractTask { .or() .eq(SchBasePoint::getIng_task_code, "")) .eq(SchBasePoint::getIs_used, true); - endPoint = pointService.getOne(lqw); + point2 = pointService.getOne(lqw); } - if (ObjectUtil.isEmpty(endPoint)) { + if (ObjectUtil.isEmpty(point2)) { // 消息通知 - noticeService.createNotice("任务创建失败,该点位存在任务!", TASK_CONFIG_CODE + task.getPoint_code1(), + noticeService.createNotice("任务创建失败,该点位存在任务!", TASK_CONFIG_CODE + task.getPoint_code2(), NoticeTypeEnum.WARN.getCode()); throw new BadRequestException("任务创建失败,该点位存在任务!"); } // 设置终点并修改创建成功状态 - task.setPoint_code2(endPoint.getPoint_code()); + task.setPoint_code2(point2.getPoint_code()); task.setRemark(""); - task.setVehicle_qty(endPoint.getVehicle_qty()); - task.setVehicle_type(endPoint.getCan_vehicle_type()); + task.setVehicle_qty(point1.getVehicle_qty()); + task.setVehicle_type(point1.getCan_vehicle_type()); + task.setVehicle_code(point1.getVehicle_code()); task.setTask_status(TaskStatus.CREATED.getCode()); task.setCreate_mode(GeneralDefinition.HAND_CREATION); taskService.save(task); // 点位更新 - endPoint.setIng_task_code(task.getTask_code()); - PointUtils.setUpdateByAcs(endPoint); - pointService.updateById(endPoint); + point1.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point1); + pointService.updateById(point1); + point2.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point2); + pointService.updateById(point2); } /** @@ -166,25 +176,23 @@ public class P2PTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); + SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); // 起点清空 if (ObjectUtil.isNotEmpty(startPointObj)) { PointUtils.setUpdateByType(startPointObj, taskFinishedType); PointUtils.clearPoint(startPointObj); + startPointObj.setIng_task_code(""); pointService.updateById(startPointObj); - //终点不需要记录点位状态和载具信息 - //如果终点是空托盘缓存1区或者空托盘缓存2区 则更改终点点位的状态 - SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); - if (ObjectUtil.isNotEmpty(endPointObj)) { - if ("KTPHC1".equals(endPointObj.getRegion_code()) || "KTPHC2".equals(endPointObj.getRegion_code())) { - endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); - //endPointObj.setVehicle_type(GeneralDefinition.VEHICLE_TYPE_1500_1500); - //endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); - } - endPointObj.setIng_task_code(""); - endPointObj.setUpdate_time(DateUtil.now()); - PointUtils.setUpdateByType(endPointObj, taskFinishedType); - pointService.updateById(endPointObj); - } + } + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setIng_task_code(""); + endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); + endPointObj.setVehicle_type(taskObj.getVehicle_type()); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); + endPointObj.setUpdate_time(DateUtil.now()); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); } // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); @@ -197,8 +205,14 @@ public class P2PTask extends AbstractTask { @Transactional(rollbackFor = Exception.class) public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 + SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1()); SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); // 起点解锁 + if (ObjectUtil.isNotEmpty(startPointObj)) { + startPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + pointService.updateById(startPointObj); + } if (ObjectUtil.isNotEmpty(endPointObj)) { endPointObj.setIng_task_code(""); PointUtils.setUpdateByType(endPointObj, taskFinishedType); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/JLHCHKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/JLHCHKTask.java index f28d306..10b9b11 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/JLHCHKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/JLHCHKTask.java @@ -76,12 +76,9 @@ public class JLHCHKTask extends AbstractTask { //判断组盘信息中对应的物料信息是否为0 为0就不记录载具信息 //不为0 就记录载具信息 SchBasePoint startPointObj = pointService.getById(task.getPoint_code1()); - boolean flag = this.isZero(startPointObj.getVehicle_code(), startPointObj.getPoint_code()); - if (!flag) { - task.setVehicle_qty(startPointObj.getVehicle_qty()); - task.setVehicle_type(startPointObj.getVehicle_type()); - task.setVehicle_code(startPointObj.getVehicle_code()); - } + task.setVehicle_qty(startPointObj.getVehicle_qty()); + task.setVehicle_type(startPointObj.getVehicle_type()); + task.setVehicle_code(startPointObj.getVehicle_code()); task.setTask_status(TaskStatus.CREATED.getCode()); task.setCreate_mode(GeneralDefinition.HAND_CREATION); taskService.save(task); @@ -182,15 +179,15 @@ public class JLHCHKTask extends AbstractTask { SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); if (ObjectUtil.isNotEmpty(endPointObj)) { endPointObj.setIng_task_code(""); + endPointObj.setVehicle_type(taskObj.getVehicle_type()); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); boolean flag = this.isZero(taskObj.getVehicle_code(), taskObj.getPoint_code1()); if (!flag) { endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode()); - endPointObj.setVehicle_type(taskObj.getVehicle_type()); - endPointObj.setVehicle_code(taskObj.getVehicle_code()); - endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code,taskObj.getVehicle_code()) - .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,GroupBindMaterialStatusEnum.BOUND.getValue()); + lqw.eq(SchBaseVehiclematerialgroup::getVehicle_code, taskObj.getVehicle_code()) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()); SchBaseVehiclematerialgroup vehiclematerialgroup = vehiclematerialgroupService.getOne(lqw); vehiclematerialgroup.setPoint_code(endPointObj.getPoint_code()); vehiclematerialgroup.setPoint_name(endPointObj.getPoint_name()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/JLHCQMTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/JLHCQMTask.java index 521b1f4..7dd7d6b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/JLHCQMTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/JLHCQMTask.java @@ -55,7 +55,7 @@ public class JLHCQMTask extends AbstractTask { SchBasePoint startPointObj = findPoint(task.getPoint_code1()); if (ObjectUtil.isEmpty(startPointObj)) { // 消息通知 - noticeService.createNotice(task.getPoint_code1() + "点位存在任务!", TASK_CONFIG_CODE + task.getPoint_code2(), + noticeService.createNotice(task.getPoint_code1() + "点位存在任务!", TASK_CONFIG_CODE + task.getPoint_code1(), NoticeTypeEnum.WARN.getCode()); throw new BadRequestException(task.getPoint_code1() + "点位存在任务!"); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPKTPRKTask.java similarity index 63% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPKTPRKTask.java index 955f5d3..b04a7e2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPKTPRKTask.java @@ -1,9 +1,13 @@ -package org.nl.wms.sch.task_manage.task.tasks.dtk; +package org.nl.wms.sch.task_manage.task.tasks.ycl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; import org.nl.system.service.notice.ISysNoticeService; +import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; @@ -12,12 +16,12 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.GeneralDefinition; +import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; import org.nl.wms.sch.task_manage.enums.PointStatusEnum; import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; -import org.nl.wms.sch.task_manage.task.tasks.dtk.mapper.DTKMapper; import org.nl.wms.util.PointUtils; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -29,14 +33,14 @@ import java.util.List; import java.util.stream.Collectors; /** - * @Author: lyd - * @Description: 叠托送空盘任务:-> 货架 - * @Date: 2023/6/21 + * 组盘区空托入库 + * + * @author onepiece */ -@Component(value = "DTKSKTask") -@TaskType("DTKSKTask") -public class DTSKTask extends AbstractTask { - private static final String TASK_CONFIG_CODE = "DTKSKTask"; +@Component(value = "ZPKTPRKTask") +@TaskType("ZPKTPRKTask") +public class ZPKTPRKTask extends AbstractTask { + private static final String TASK_CONFIG_CODE = "ZPKTPRKTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -46,40 +50,11 @@ public class DTSKTask extends AbstractTask { @Autowired private ISysNoticeService noticeService; @Autowired - private DTKMapper dtkMapper; + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; @Override public void create() throws BadRequestException { - // 获取任务 - List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); - // 配置信息 - SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() - .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); - for (SchBaseTask task : tasks) { - TaskUtils.setUpdateByAcs(task); - List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")) - .collect(Collectors.toList()); - // 找终点 - SchBasePoint point = findNextPoint(nextRegionStr); - if (ObjectUtil.isEmpty(point)) { - task.setRemark("未找到所需点位!"); - taskService.updateById(task); - // 消息通知 - noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getPoint_code1(), - NoticeTypeEnum.WARN.getCode()); - continue; - } - // 设置终点并修改创建成功状态 - task.setPoint_code2(point.getPoint_code()); - task.setVehicle_type(GeneralDefinition.STEEL_TRAY); - task.setTask_status(TaskStatus.CREATED.getCode()); - task.setRemark(""); - taskService.updateById(task); - point.setIng_task_code(task.getTask_code()); - PointUtils.setUpdateByAcs(point); - pointService.updateById(point); - } } @Override @@ -92,29 +67,45 @@ public class DTSKTask extends AbstractTask { List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")) .collect(Collectors.toList()); // 找终点 - SchBasePoint point = findNextPoint(nextRegionStr); + SchBasePoint point = findEndPoint(nextRegionStr); if (ObjectUtil.isEmpty(point)) { // 消息通知 - noticeService.createNotice("货架暂无货位存放空托盘!", TASK_CONFIG_CODE + task.getPoint_code1(), + noticeService.createNotice("原材料库未找到终点空位!", TASK_CONFIG_CODE + task.getPoint_code2(), NoticeTypeEnum.WARN.getCode()); - throw new BadRequestException("货架暂无货位存放空托盘!"); + throw new BadRequestException("原材料库未找到终点空位!"); } // 设置终点并修改创建成功状态 task.setPoint_code2(point.getPoint_code()); - task.setVehicle_type(GeneralDefinition.STEEL_TRAY); - task.setTask_status(TaskStatus.CREATED.getCode()); task.setRemark(""); + task.setVehicle_qty(1); + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setCreate_mode(GeneralDefinition.HAND_CREATION); taskService.save(task); - + // 点位更新 point.setIng_task_code(task.getTask_code()); PointUtils.setUpdateByAcs(point); pointService.updateById(point); - } - private SchBasePoint findNextPoint(List nextRegionStr) { - List points = dtkMapper.findPointForDTSK(nextRegionStr); - return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; + /** + * 从原材料库找空位 + * + * @param nextRegionStr + * @return + */ + private SchBasePoint findEndPoint(List nextRegionStr) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + // 默认一直都有载具 + lam.in(SchBasePoint::getRegion_code, nextRegionStr) + // 点位状态是空位 + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + // 当前执行的任务为空或者NULL,有数据表示锁住 + .and(la -> la.isNull(SchBasePoint::getIng_task_code) + .or() + .eq(SchBasePoint::getIng_task_code, "")) + .eq(SchBasePoint::getIs_used, true); + List schBasePoints = pointService.list(lam); + return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; } @Override @@ -162,24 +153,19 @@ public class DTSKTask extends AbstractTask { @Transactional(rollbackFor = Exception.class) public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { - // 获取参数 - String startPoint = taskObj.getPoint_code1(); - String endPoint = taskObj.getPoint_code2(); - String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) ? taskObj.getVehicle_type() : ""; - SchBasePoint endPointObj = pointService.getById(endPoint); - SchBasePoint startPointObj = pointService.getById(startPoint); - // 设置载具类型、点位状态、释放点位 - if (ObjectUtil.isNotEmpty(endPoint)) { + //更新终点的点位信息 + SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); + if (ObjectUtil.isNotEmpty(endPointObj)) { endPointObj.setIng_task_code(""); - endPointObj.setVehicle_type(vehicleType); - // 设置载具数量 - endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setVehicle_type(taskObj.getVehicle_type()); + endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); + endPointObj.setUpdate_time(DateUtil.now()); PointUtils.setUpdateByType(endPointObj, taskFinishedType); pointService.updateById(endPointObj); - // 起点清空 - PointUtils.clearPoint(startPointObj); } + // 任务完成 taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setRemark(GeneralDefinition.TASK_FINISH); taskObj.setFinished_type(taskFinishedType.getCode()); @@ -190,10 +176,9 @@ public class DTSKTask extends AbstractTask { @Transactional(rollbackFor = Exception.class) public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 - String endPoint = taskObj.getPoint_code2(); - SchBasePoint endPointObj = pointService.getById(endPoint); - // 释放点位 - if (ObjectUtil.isNotEmpty(endPoint)) { + SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); + // 起点解锁 + if (ObjectUtil.isNotEmpty(endPointObj)) { endPointObj.setIng_task_code(""); PointUtils.setUpdateByType(endPointObj, taskFinishedType); pointService.updateById(endPointObj); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPQKTask.java index eefd77d..ee7619d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPQKTask.java @@ -67,9 +67,9 @@ public class ZPQKTask extends AbstractTask { // 设置起点并修改创建成功状态 task.setPoint_code1(point.getPoint_code()); task.setRemark(""); - //task.setVehicle_code(point.getVehicle_code()); - //task.setVehicle_qty(point.getVehicle_qty()); - //task.setVehicle_type(point.getCan_vehicle_type()); + task.setVehicle_code(point.getVehicle_code()); + task.setVehicle_qty(point.getVehicle_qty()); + task.setVehicle_type(point.getVehicle_type()); task.setTask_status(TaskStatus.CREATED.getCode()); task.setCreate_mode(GeneralDefinition.HAND_CREATION); taskService.save(task); @@ -157,6 +157,9 @@ public class ZPQKTask extends AbstractTask { //终点更新 SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + endPointObj.setVehicle_qty(taskObj.getVehicle_qty()); + endPointObj.setVehicle_type(taskObj.getVehicle_type()); endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); PointUtils.setUpdateByType(endPointObj, taskFinishedType); pointService.updateById(endPointObj); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPRKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPRKTask.java index 0bb9012..d62f59b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPRKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ycl/ZPRKTask.java @@ -198,7 +198,7 @@ public class ZPRKTask extends AbstractTask { public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { // 获取参数 SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); - // 起点解锁 + // 解锁 if (ObjectUtil.isNotEmpty(endPointObj)) { endPointObj.setIng_task_code(""); PointUtils.setUpdateByType(endPointObj, taskFinishedType); diff --git a/lms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue b/lms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue index 4e5fec5..a5f6fa0 100644 --- a/lms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue +++ b/lms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue @@ -59,27 +59,27 @@ - - - + + + - - - + + + - - - + + +