diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index e7d76be..cc650c4 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -291,8 +291,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } }); data = feedBackStatus(data, index, 2, inst, task, 2, false); + actionFinishRequest2(task,device_code); } else if (device_code.contains("_02")) { data = feedBackStatus(data, index, 2, inst, task, 2, false); + actionFinishRequest2(task,device_code); } else { CompletableFuture.runAsync(() -> { try { @@ -315,15 +317,18 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } }); data = feedBackStatus(data, index, 2, inst, task, 2, false); + actionFinishRequest2(task,device_code); } } else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { try { data = feedBackStatus(data, index, 2, inst, task, 1, false); + actionFinishRequest2(task,device_code); } catch (Exception e) { log.info("取货完成反馈AGV状态失败:{}", e.getMessage()); } } else { data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0); + actionFinishRequest2(task,device_code); } //到达放货等待点 //(需要WCS反馈) @@ -633,4 +638,13 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic return data; } + public void actionFinishRequest2(TaskDto task,String device_code){ + String hasWms = paramService.findByCode("hasWms").getValue(); + if (StrUtil.isNotEmpty(hasWms) && "1".equals(hasWms)) { + JSONObject jo = new JSONObject(); + jo.put("task_code", task.getTask_code()); + jo.put("device_code", device_code); + HttpResponse httpResponse = acsToWmsService.actionFinishRequest2(jo); + } + } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index e7f3e19..980809e 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -85,11 +85,10 @@ public class WmsToAcsController { @Log(value = "WMS查询设备DB值") @ApiOperation("WMS查询设备DB值") @SaIgnore - public ResponseEntity queryDeviceDBValue(@RequestBody String whereJson){ + public ResponseEntity queryDeviceDBValue(@RequestBody String whereJson) { return new ResponseEntity<>(wmstoacsService.queryDeviceDBValue(whereJson), HttpStatus.OK); } - @PostMapping("/putPlusPullAction") @Log(value = "WMS下发插拔轴动作") @ApiOperation("WMS下发插拔轴动作") diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index 04d9478..c4dd7c6 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -134,4 +134,6 @@ public interface AcsToWmsService { * 任务阶段反馈最新点位 */ String feedbackState(BaseRequest request); + + HttpResponse actionFinishRequest2(JSONObject jsonObject); } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 27322d5..14d28f1 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -23,7 +23,6 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; -import org.nl.config.SpringContextHolder; import org.nl.system.service.lucene.LuceneExecuteLogService; import org.nl.system.service.lucene.dto.LuceneLogDto; import org.nl.system.service.param.ISysParamService; @@ -562,6 +561,36 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return result; } + @Override + public HttpResponse actionFinishRequest2(JSONObject from) { + String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue(); + AddressDto addressDto = addressService.findByCode("actionFinishRequest2"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + HttpResponse result = null; + log.info("actionFinishRequest2----请求参数{}", from); + try { + result = HttpRequest.post(url) + .body(String.valueOf(from)) + .execute(); + LuceneLogDto reqlogDto = LuceneLogDto.builder() + .device_code(from.getString("device_code")) + .task_code(from.getString("task_code")) + .status_code(StrUtil.toString(result.getStatus())) + .requestparam("请求参数:"+ from) + .responseparam("响应参数:"+result.body()) + .content(result.body()) + .method("actionFinishRequest2") + .build(); + luceneExecuteLogService.interfaceExecuteLog(reqlogDto); + log.info("actionFinishRequest2----返回参数{}", result); + } catch (Exception e) { + String msg = e.getMessage(); + log.info("actionFinishRequest2----报错{}", msg); + } + return result; + } + @Override public String applyTask(BaseRequest requestParam) { try { diff --git a/lms/nladmin-system/nlsso-server/pom.xml b/lms/nladmin-system/nlsso-server/pom.xml index 6c2ba37..5ecd0cc 100644 --- a/lms/nladmin-system/nlsso-server/pom.xml +++ b/lms/nladmin-system/nlsso-server/pom.xml @@ -542,6 +542,12 @@ lucene-analyzers-common ${lucene.version} + + + org.redisson + redisson-spring-boot-starter + 3.16.4 + com.github.magese ik-analyzer diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java index 5278baa..5d9f3d3 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/controller/AcsToWmsController.java @@ -118,5 +118,11 @@ public class AcsToWmsController { public ResponseEntity feedTaskStatus(@RequestBody JSONObject param) { return new ResponseEntity<>(acsToWmsService.feedTaskStatus(param), HttpStatus.OK); } + @PostMapping("/actionFinishRequest2") + @SaIgnore + public ResponseEntity actionFinishRequest2(@RequestBody JSONObject jo) { + return new ResponseEntity<>(acsToWmsService.actionFinishRequest2(jo), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index 1202555..c129efa 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -49,4 +49,11 @@ public interface AcsToWmsService { * @return */ Object feedTaskStatus(JSONObject param); + + /** + * 二楼取货完成请求 + * @param param / + * @return / + */ + JSONObject actionFinishRequest2(JSONObject param); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 283c8be..216f8cb 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -3,6 +3,7 @@ package org.nl.wms.ext.acs.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -330,6 +331,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { break; } } + return null; } @@ -377,7 +379,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public Object feedTaskStatus(JSONObject param) { - if (ObjectUtil.isNotEmpty(param)) { +// String pickupcomplete= param.getString("pickupcomplete"); +// if (ObjectUtil.isNotEmpty(param)&&pickupcomplete.equals("0")) { + if (ObjectUtil.isNotEmpty(param)) { String task_code = param.getString("task_code"); String task_status = param.getString("task_status"); if (StrUtil.isEmpty(task_code) || StrUtil.isEmpty(task_status)) { @@ -398,11 +402,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { AbstractTask connectorTask = taskFactory.getTask(schBaseTask.getConfig_code()); connectorTask.forceFinish(schBaseTask.getTask_code()); break; + case "3": + //任务取消 + taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class) + .set(SchBaseTask::getTask_status, TaskStatus.CANCELED.getCode()) + .eq(SchBaseTask::getTask_code, task_code)); default: break; } } +// else{ +// String task_code = param.getString("task_code"); +// SchBaseTask schBaseTask = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class) +// .eq(SchBaseTask::getTask_code, task_code).in(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode(), TaskStatus.ISSUED.getCode())); +// if (ObjectUtil.isEmpty(schBaseTask)) throw new BadRequestException("任务不存在!task_code:" + task_code); +// taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class) +// .eq(SchBaseTask::getTask_code, task_code) +// .set(SchBaseTask::getIs_pickup, "1")); +// } return null; } @@ -682,5 +700,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return result; } + @Override + public JSONObject actionFinishRequest2(JSONObject param) { + String taskCode = param.getString("task_code"); + String deviceCode = param.getString("device_code"); + Assert.notBlank(taskCode, "任务编码不能为空"); + SchBaseTask task = taskService.getByCode(taskCode); + SchBasePoint schBasePoint=pointService.getByCode(deviceCode); + if (ObjectUtil.isNotEmpty(schBasePoint)) { + PointUtils.updateByIngTaskCode(schBasePoint); + pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class) + .eq(SchBasePoint::getPoint_code, deviceCode) + .set(SchBasePoint::getIs_lock, false) + .set(SchBasePoint::getVehicle_code, null) + .set(SchBasePoint::getPoint_status, GoodsEnum.OUT_OF_STOCK.getValue())); + } + JSONObject result = new JSONObject(); + result.put("status", org.springframework.http.HttpStatus.OK.value()); + result.put("message", "取货完成请求成功!"); + return result; + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java index 07e402d..db424d7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java @@ -28,12 +28,15 @@ import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.task.ConnectorUtil; import org.nl.wms.sch.task_manage.task.TaskFactory; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; @Slf4j @Service @@ -50,6 +53,8 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { private TaskFactory taskFactory; @Autowired private ISchBaseVehiclematerialgroupService iSchBaseVehiclematerialgroupService; + @Autowired + private RedissonClient redissonClient; @Override public Map createTaskByConnector(JSONArray jsonArray) { @@ -89,30 +94,43 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService { } else if (schBasePoint.getIs_lock()) { map1.put("task_code", task_code); map1.put("status", HttpStatus.HTTP_INTERNAL_ERROR); - map1.put("message", start_device_code + "该设备正在执行任务!"); + map1.put("message", start_device_code + "·!"); log.info(start_device_code + "该设备正在执行任务!"); return map1; } //TODO:固定的载具类型,根据载具类型来决定终点 - String task_type = data.getString("task_type"); - String is_empty = data.getString("is_empty"); - String remark = data.getString("remark"); - String params = data.getString("params"); - task_type = "1".equals(task_type) ? "1" : "2"; - AbstractTask connectorTask = taskFactory.getTask("CNTTask"); - // 准备参数:设备编码 - JSONObject param = new JSONObject(); - param.put("device_code", start_device_code); - param.put("config_code", "CNTTask"); - param.put("create_mode", GeneralDefinition.AUTO_CREATION); - param.put("vehicle_code", vehicle_code); - param.put("task_type", task_type); - param.put("task_code", task_code); - param.put("remark", remark); - param.put("ext_data", data); - connectorTask.apply(param); - schBasePoint.setIs_lock(true); - schBasePointService.updateById(schBasePoint); + String tasktype ="CNTTask"; + RLock lock = redissonClient.getLock(tasktype); + boolean tryLock = lock.tryLock(10, TimeUnit.SECONDS); + try { + if (tryLock) { + String task_type = data.getString("task_type"); + String is_empty = data.getString("is_empty"); + String remark = data.getString("remark"); + String params = data.getString("params"); + task_type = "1".equals(task_type) ? "1" : "2"; + AbstractTask connectorTask = taskFactory.getTask("CNTTask"); + // 准备参数:设备编码 + JSONObject param = new JSONObject(); + param.put("device_code", start_device_code); + param.put("config_code", "CNTTask"); + param.put("create_mode", GeneralDefinition.AUTO_CREATION); + param.put("vehicle_code", vehicle_code); + param.put("task_type", task_type); + param.put("task_code", task_code); + param.put("remark", remark); + param.put("ext_data", data); + connectorTask.apply(param); + schBasePoint.setIs_lock(true); + schBasePointService.updateById(schBasePoint); + } else { + throw new BadRequestException("其他设备占用锁,等待结束!"); + } + }finally{ + if (tryLock) { + lock.unlock(); + } + } } map.put("status", HttpStatus.HTTP_OK); map.put("message", "操作成功!"); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/controller/FabController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/controller/FabController.java index 8d57a27..1916268 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/controller/FabController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/fab/controller/FabController.java @@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.nl.common.base.TableDataInfo; +import org.nl.common.enums.GoodsEnum; import org.nl.common.enums.VehicleTypeEnum; import org.nl.common.enums.region.RegionEnum; import org.nl.common.exception.BadRequestException; @@ -244,11 +245,23 @@ public class FabController { if (REGION_CODE.get("内部加工").equals(materInfo.getPoint_code())) { List mater = materInfo.getMater(); if (CollUtil.isEmpty(mater)) throw new BadRequestException("物料信息为空,请确认!"); + SchBasePoint schBasePoint = iSchBasePointService.selectGroundByRegionCode(RegionEnum.NBJG.getRegion_code(), GoodsEnum.OUT_OF_STOCK.getValue()); + if (ObjectUtil.isEmpty(schBasePoint)) { + throw new BadRequestException("仓库收货区域点位已满请清理"); + } toJSON.put("material_info", mater); toJSON.put("region_code", RegionEnum.NBJG.getRegion_code()); } else if (REGION_CODE.get("外协加工").equals(materInfo.getPoint_code())) { + SchBasePoint schBasePoint = iSchBasePointService.selectGroundByRegionCode(RegionEnum.WXJG.getRegion_code(), GoodsEnum.OUT_OF_STOCK.getValue()); + if (ObjectUtil.isEmpty(schBasePoint)) { + throw new BadRequestException("外协加工区域点位已满请清理"); + } toJSON.put("region_code", RegionEnum.WXJG.getRegion_code()); } else if (REGION_CODE.get("内部过道").equals(materInfo.getPoint_code())) { + SchBasePoint schBasePoint = iSchBasePointService.selectGroundByRegionCode(RegionEnum.NBGD.getRegion_code(), GoodsEnum.OUT_OF_STOCK.getValue()); + if (ObjectUtil.isEmpty(schBasePoint)) { + throw new BadRequestException("内部过道区域点位已满请清理"); + } toJSON.put("region_code", RegionEnum.NBGD.getRegion_code()); } else if (REGION_CODE.get("其他加工").equals(materInfo.getPoint_code())) { toJSON.put("region_code", RegionEnum.QTJG.getRegion_code()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/controller/HandheldController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/controller/HandheldController.java index 18dd9d3..865d0a2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/controller/HandheldController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/controller/HandheldController.java @@ -141,16 +141,32 @@ public class HandheldController { return new ResponseEntity<>(handheldService.selectPointByRegion(regionCode),HttpStatus.OK); } - @GetMapping("/createPointInPointTask") - @Log("创建点对点任务") - public ResponseEntity createPointTask(String regionCode) { - return new ResponseEntity<>(handheldService.selectPointByRegion(regionCode), HttpStatus.OK); + @PostMapping("/deletevehiclemessage") + @Log("根据点位删除点位所在的载具信息") + public ResponseEntity deletevehiclemessage(String pointCode) { + return new ResponseEntity<>(handheldService.deletevehiclemessage(pointCode),HttpStatus.OK); } - @GetMapping("/selectMaterialAndJpg") + @PostMapping("/createPointInPointTask") + @Log("创建点对点任务") + public ResponseEntity createPointTask(String pointCode) { + return new ResponseEntity<>(handheldService.selectPointByRegion(pointCode), HttpStatus.OK); + } + + @PostMapping("/selectMaterialAndJpg") @Log("查询托盘物料信息") public ResponseEntity selectMaterialAndJpg(String pointCode) { return new ResponseEntity<>(handheldService.selectMaterialAndJpg(pointCode), HttpStatus.OK); } - + @PostMapping("/getLlddw") + @Log("查询料笼对接位点位状态") + public ResponseEntity getLlddw() { + return new ResponseEntity<>(handheldService.getLlddw(), HttpStatus.OK); + } + @PostMapping("/fillUpEmpty") + @Log("料笼对接位点位变成空载具") + public ResponseEntity fillUpEmpty(@RequestBody JSONObject json) { + handheldService.fillUpEmpty(json); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/HandheldService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/HandheldService.java index 2cffb98..b448430 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/HandheldService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/HandheldService.java @@ -120,4 +120,12 @@ public interface HandheldService { * @return */ JSONObject selectMaterialAndJpg(String pointCode); + /** + * 根据点位删除点位所在的载具信息 + * @param pointCode + * @return + */ + JSONObject deletevehiclemessage(String pointCode); + List getLlddw(); + void fillUpEmpty(JSONObject json); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java index f766836..b4786a9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/handheld/service/impl/HandheldServiceImpl.java @@ -27,8 +27,10 @@ import org.nl.wms.ext.connector.service.WmsToConnectorService; import org.nl.wms.ext.handheld.service.HandheldService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper; import org.nl.wms.sch.region.service.ISchBaseRegionService; import org.nl.wms.sch.region.service.dao.SchBaseRegion; import org.nl.wms.sch.task.service.ISchBaseTaskService; @@ -73,6 +75,10 @@ public class HandheldServiceImpl implements HandheldService { private RedisUtils redisUtils; @Autowired private WmsToAcsService wmsToAcsService; + @Autowired + private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper; + @Autowired + private SchBasePointMapper schBasePointMapper; static final Map STATUS = MapOf.of("释放", "0", "锁定", "1"); @@ -126,6 +132,7 @@ public class HandheldServiceImpl implements HandheldService { .set(SchBasePoint::getIs_lock, true)); } + /** * 内部过道送托盘 */ @@ -241,7 +248,6 @@ public class HandheldServiceImpl implements HandheldService { public Object applyEmptyVehicle(JSONObject param) { return null; } - @Override @Transactional(rollbackFor = Exception.class) public void cageBlankingTask(JSONObject param) { @@ -660,6 +666,9 @@ public class HandheldServiceImpl implements HandheldService { keys.add(MapOf.of("material_id", item.get("material_id"), "material_path", item.get("material_path"))); }); JSONObject json = new JSONObject(); + Map map = new HashMap<>(); + map.put("vehicle_code", schBasePoint.getVehicle_code()); + keys.add(map); json.put("vehiclePath", maps.get(0).get("vehicle_path")); json.put("materialList", keys); return json; @@ -667,4 +676,34 @@ public class HandheldServiceImpl implements HandheldService { return null; } + @Override + public JSONObject deletevehiclemessage(String pointCode) { + if (StrUtil.isEmpty(pointCode)) { + throw new BadRequestException("当前点位不能为空!"); + } + SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode); + String vehicle_code=schBasePoint.getVehicle_code(); + List schBaseVehiclematerialgroup=iSchBaseVehiclematerialgroupService.selectByVehicleCode(vehicle_code); + iSchBasePointService.update(Wrappers.lambdaUpdate(schBasePoint) + .set(SchBasePoint::getPoint_status, "0") + .set(SchBasePoint::getVehicle_code, null)); + for (SchBaseVehiclematerialgroup item : schBaseVehiclematerialgroup) { + String group_id = item.getGroup_id(); + vehiclematerialgroupMapper.deleteById(group_id); + } + return null; + } + @Override + public List getLlddw(){ + return schBasePointMapper.getLlddw(); + } + + @Override + public void fillUpEmpty(JSONObject json) { + String pointCode=json.getString("point_code"); + SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode); + iSchBasePointService.update(Wrappers.lambdaUpdate(SchBasePoint.class) + .eq(SchBasePoint::getPoint_code,pointCode) + .set(SchBasePoint::getPoint_status, "1")); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/controller/SchBaseVehiclematerialgroupController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/controller/SchBaseVehiclematerialgroupController.java index b0e3508..3947f19 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/controller/SchBaseVehiclematerialgroupController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/controller/SchBaseVehiclematerialgroupController.java @@ -97,4 +97,11 @@ public class SchBaseVehiclematerialgroupController { public ResponseEntity createTask(@RequestBody JSONObject entity){ return new ResponseEntity<>(schBaseVehiclematerialgroupService.createTask(entity), HttpStatus.OK); } + + @PostMapping("/fixnextstyle") + @Log("修改下道工序") + @ApiOperation("修改下道工序") + public ResponseEntity fixnextstyle(@RequestBody JSONObject entity){ + return new ResponseEntity<>(schBaseVehiclematerialgroupService.fixnextstyle(entity), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java index 4834d74..839f1f7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.nl.wms.ext.fab.service.dto.SendVehicleVo; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery; +import org.nl.wms.sch.point.service.dao.SchBasePoint; import java.util.List; import java.util.Map; @@ -45,6 +46,7 @@ public interface ISchBaseVehiclematerialgroupService extends IService ids); + /** * 根据载具编码返回数据 * @param entity @@ -96,6 +98,13 @@ public interface ISchBaseVehiclematerialgroupService extends IService selectByVehicleCode(String vehicle_code); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java index 26199e5..aa250dd 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java @@ -32,4 +32,6 @@ public interface SchBaseVehiclematerialgroupMapper extends BaseMapper selectMaterialPathByIsEmpty(); String selectDueDateByVehicleCode(@Param("sendVehicle") SendVehicleVo sendVehicleVo); + + String selectRegioncodeByVehicleCode(String vehicle_code); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml index 0656c19..897fa13 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml @@ -48,6 +48,7 @@ AND vg.vehicle_type = #{vehicle_type} + AND vg.group_bind_material_status = '2' @@ -71,6 +72,7 @@ ROW_NUMBER() OVER (PARTITION BY vg.vehicle_code ORDER BY vg.due_date) AS rn FROM sch_base_vehiclematerialgroup vg + LEFT JOIN sch_base_point po ON vg.vehicle_code = po.vehicle_code AND vg.vehicle_code LIKE CONCAT('%', #{query.vehicle_code}, '%') @@ -161,6 +163,11 @@ WHERE sbv.material_id = #{sendVehicle.material_code} AND sbv.order_code = #{sendVehicle.order_code} limit 1 + + - + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java index f24d903..39e1dfd 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java @@ -219,6 +219,12 @@ public class SchBasePointServiceImpl extends ServiceImpl lam = new QueryWrapper().lambda(); + lam.eq(SchBasePoint::getPoint_code, device_code); + return this.getOne(lam); + } @Override public void updateStatus(JSONObject jsonObject) { @@ -530,7 +536,7 @@ public class SchBasePointServiceImpl extends ServiceImpl collect = null; - List structList = pointMapper.getStructList(regionCode, null, s); + List structList = pointMapper.getStructList(regionCode, s); if ("1".equals(last_regionCode)) { collect = structList.stream().collect(Collectors.groupingBy( OrderMater::getVehicle_code, @@ -638,9 +644,20 @@ public class SchBasePointServiceImpl extends ServiceImpl structList=null; if(schBasePoint.getPoint_code().equals("13-01-01")||schBasePoint.getPoint_code().equals("13-01-04")){ - structList = pointMapper.getStructList(null, "G01", s); - }else{ - structList = pointMapper.getStructList(schBasePoint.getRegion_code(), "G01", s); + structList = pointMapper.getStructList(null, s); + } else if(schBasePoint.getPoint_code().equals("QTJGDJW01")||schBasePoint.getPoint_code().equals("QTJGDJW02")){ + String[] regionlist = {"111-06", "111-12", "111-13", "111-14", "111-15", "111-22", "111-23", "111-24", "111-26"}; + for (int i = 0; i structList1=null; + structList1 = pointMapper.getStructList1(regionlist[i], s); + if (structList == null) { + structList = new ArrayList<>(); + } + structList.addAll(structList1); + } + } + else{ + structList = pointMapper.getStructList(schBasePoint.getRegion_code(),s); } List collect = structList.stream().collect(Collectors.groupingBy( OrderMater::getVehicle_code, diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java index fba1d02..1760b4e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/SchBaseTask.java @@ -143,5 +143,6 @@ public class SchBaseTask implements Serializable { private String start_wait_point; @ApiModelProperty(value = "放货等待点") private String next_wait_point; - + private String startcode_name; + private String finishcode_name; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.java index a898965..cb6589b 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.java @@ -8,5 +8,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask; * @date 2023-05-15 **/ public interface SchBaseTaskMapper extends BaseMapper { + //根据点位编码得到点位名称 + String getdevicename(String point_code); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.xml index 9544698..f89dfc7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.xml @@ -1,5 +1,9 @@ - + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java index c1e9a4b..b32ee01 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -104,6 +104,14 @@ public class SchBaseTaskServiceImpl extends ServiceImpl pages = new Page<>(page.getPage() + 1, page.getSize()); schBaseTaskMapper.selectPage(pages, lam); + // 遍历结果,手动添加 startcode_name 和 finishcode_name 字段 + for (SchBaseTask task : pages.getRecords()) { + // 假设 getStartCodeName() 和 getFinishCodeName() 是你根据 task 的代码来查询名称的逻辑 + String startCodeName = schBaseTaskMapper.getdevicename(task.getPoint_code1()); + String finishCodeName = schBaseTaskMapper.getdevicename(task.getPoint_code2()); + task.setStartcode_name(startCodeName); + task.setFinishcode_name(finishCodeName); + } return pages; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java index 7ff3cca..5ac6519 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/ConnectorUtil.java @@ -19,6 +19,9 @@ import org.nl.wms.sch.task_manage.AcsTaskDto; import org.nl.wms.sch.task_manage.GeneralDefinition; import org.springframework.http.HttpStatus; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -172,7 +175,11 @@ public class ConnectorUtil { schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation()); schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(connectorDto)); schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder()); - schBaseVehiclematerialgroup.setDue_date(connectorDto.getDueDate()); + if(connectorDto.getDue_date()==null){ + LocalDateTime currentDateTime = LocalDateTime.now(); + schBaseVehiclematerialgroup.setDue_date(currentDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + }else{ + schBaseVehiclematerialgroup.setDue_date(connectorDto.getDue_date());} schBaseVehiclematerialgroup.setPriority(connectorDto.getPriority()); schBaseVehiclematerialgroup.setCreate_name(connectorDto.getCreate_name()); return schBaseVehiclematerialgroup; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/CNTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/CNTTask.java index 85dd9e8..af4791d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/CNTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/CNTTask.java @@ -70,9 +70,9 @@ public class CNTTask extends AbstractTask { tasks = tasks.stream().sorted(numericSuffixComparator).collect(Collectors.toList()); for (SchBaseTask task : tasks) { SchBasePoint schBasePoint = null; - if(CollUtil.contains(Arrays.asList(CUSTOMIZE_POINT),task.getPoint_code1())){ - schBasePoint = precedencePoint(); - } +// if(CollUtil.contains(Arrays.asList(CUSTOMIZE_POINT),task.getPoint_code1())){ +// schBasePoint = precedencePoint(); +// } if (ObjectUtil.isEmpty(schBasePoint) && TaskType.CARRY_TASK.getValue().equals(task.getTask_type())) { schBasePoint = schBasePointService.selectByRegionCode(RegionEnum.LAG_ROBOT_BEANDING_CELL.getRegion_code(), task.getVehicle_code(), "1"); } @@ -101,12 +101,14 @@ public class CNTTask extends AbstractTask { if (task.getPoint_code1().endsWith("1") || task.getPoint_code1().endsWith("3") || task.getPoint_code1().endsWith("5")) { task.setAcs_trace_id("4"); } else { - if(task.getPoint_code1().endsWith("2")){ - updateTaskStop("2","1", task); - } else if(task.getPoint_code1().endsWith("4")){ - updateTaskStop("4","3", task); - } else if(task.getPoint_code1().endsWith("6")){ - updateTaskStop("6","5", task); + if (task.getPoint_code1().startsWith("CY")) { + if (task.getPoint_code1().endsWith("2")) { + updateTaskStop("2", "1", task); + } else if (task.getPoint_code1().endsWith("4")) { + updateTaskStop("4", "3", task); + } else if (task.getPoint_code1().endsWith("6")) { + updateTaskStop("6", "5", task); + } } } TaskUtils.setUpdateByAcs(task); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java index 086d574..6a46bea 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/PcOperationSMTTask.java @@ -150,7 +150,7 @@ public class PcOperationSMTTask extends AbstractTask { schBaseVehiclematerialgroup.setPoint_code(schBasePoint.getPoint_code()); schBaseVehiclematerialgroup.setMaterial_id(smv.getMaterial_code()); schBaseVehiclematerialgroup.setMaterial_qty(smv.getMaterial_qty()); - schBaseVehiclematerialgroup.setRegion_code(smv.getRegion_code()); + schBaseVehiclematerialgroup.setRegion_code(sendMaterVo.getRegion_code()); schBaseVehiclematerialgroup.setOrder_code(smv.getOrder_code()); schBaseVehiclematerialgroup.setDue_date(smv.getDue_date()); schBaseVehiclematerialgroup.setPriority(smv.getPriority()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/ProcessingSMTTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/ProcessingSMTTask.java index c605473..8dafdfa 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/ProcessingSMTTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/pcoperation/ProcessingSMTTask.java @@ -32,6 +32,7 @@ import org.nl.wms.ext.fab.service.dto.SendVehicleVo; import org.nl.wms.ext.wms.service.LmsToWmsService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper; 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; @@ -83,6 +84,8 @@ public class ProcessingSMTTask extends AbstractTask { private LmsToWmsService lmsToWmsService; @Autowired private SysParamServiceImpl sysParamService; + @Autowired + private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper; @Override protected void create() throws BadRequestException { @@ -170,6 +173,8 @@ public class ProcessingSMTTask extends AbstractTask { cn.hutool.json.JSONObject jsonObject2 = JSONUtil.parseObj(taskObj.getRequest_param()); String region_code = jsonObject2.getStr("region_code"); JSONArray materials = jsonObject2.getJSONArray("material"); + String vehicle_code=taskObj.getVehicle_code(); + String region_code1=vehiclematerialgroupMapper.selectRegioncodeByVehicleCode(vehicle_code); if (CollUtil.isEmpty(materials)) { materials = jsonObject2.getJSONArray("mater"); } diff --git a/lms/nladmin-ui/src/views/wms/produceScreen/index.vue b/lms/nladmin-ui/src/views/wms/produceScreen/index.vue index 7726960..4b90749 100644 --- a/lms/nladmin-ui/src/views/wms/produceScreen/index.vue +++ b/lms/nladmin-ui/src/views/wms/produceScreen/index.vue @@ -14,6 +14,7 @@
缓存物料
当前托盘
回库
+
组盘删除
@@ -252,6 +253,10 @@ height="100%" @current-change="handleCurrentChange1" > + { + // 用户点击“确定”,执行隐藏操作 + this.show = false; + console.log("进入方法") + console.log(this.popData) + crudProduceScreen.deletevehiclemessage( this.popData.device_code ) + }).catch(() => { + // 用户点击“取消”,不执行任何操作 + console.log('用户取消了操作'); + }); + this.show = true + } }, handleCurrentChange(val) { this.imgSrc = '' diff --git a/lms/nladmin-ui/src/views/wms/produceScreen/produceScreen.js b/lms/nladmin-ui/src/views/wms/produceScreen/produceScreen.js index f9e5609..75dae25 100644 --- a/lms/nladmin-ui/src/views/wms/produceScreen/produceScreen.js +++ b/lms/nladmin-ui/src/views/wms/produceScreen/produceScreen.js @@ -111,7 +111,7 @@ export function loginOut(data) { export function selectMaterialAndJpg(code) { return request({ url: 'api/handheld/selectMaterialAndJpg?pointCode=' + code, - method: 'get' + method: 'post' }) } @@ -124,6 +124,14 @@ export function selectCacheTask(data) { }) } -export default { - authLogin, getUserOrDevice, deviceInLogin, regionOrder, fabMaterial, callMater, callEmp, fabOrders, sendMater, sendVehicle, getPointVehicle, loginOut, selectMaterialAndJpg, selectCacheTask +//15.组盘删除 +export function deletevehiclemessage(code) { + return request({ + url: 'api/handheld/deletevehiclemessage?pointCode=' + code, + method: 'post' + }) +} + +export default { + authLogin, getUserOrDevice, deviceInLogin, regionOrder, fabMaterial, callMater, callEmp, fabOrders, sendMater, sendVehicle, getPointVehicle, loginOut, selectMaterialAndJpg, selectCacheTask, deletevehiclemessage } diff --git a/lms/nladmin-ui/src/views/wms/sch/group/index.vue b/lms/nladmin-ui/src/views/wms/sch/group/index.vue index 2a0d44a..bb51eca 100644 --- a/lms/nladmin-ui/src/views/wms/sch/group/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/group/index.vue @@ -161,7 +161,7 @@ title="创建任务" :visible.sync="dialogVisible" width="350px" - :style="{ 'max-height': '80vh', overflowY: 'auto' }" + :style="{ 'max-height': '40vh', overflowY: 'auto' }" @close="resetForm" > @@ -189,6 +189,38 @@ 确 定 + + + + + + + + + + 取 消 + 确 定 + + - + + - + - + - + - - - - -