From 6a70aba6c93df402b0b3caa2271e517629b7fb1f Mon Sep 17 00:00:00 2001 From: tuqiang <437016993@qq.com> Date: Tue, 29 Jul 2025 14:16:04 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E6=96=B0=E5=A2=9E=E6=89=8B?= =?UTF-8?q?=E5=8A=A8=E4=B8=8B=E5=8F=91=E5=85=85=E7=94=B5=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/acs/agv/server/NDCAgvService.java | 2 + .../agv/server/impl/NDCAgvServiceImpl.java | 56 ++++++++ .../run/OneNDCSocketConnectionAutoRun.java | 28 ++++ .../nl/acs/device/rest/DeviceController.java | 9 ++ .../nl/acs/device/service/DeviceService.java | 2 + .../service/impl/DeviceServiceImpl.java | 14 ++ .../controller/dict/SysDictController.java | 29 ++-- .../controller/param/SysParamController.java | 13 +- .../system/service/dict/ISysDictService.java | 5 + .../service/dict/impl/SysDictServiceImpl.java | 59 ++++++-- .../service/param/ISysParamService.java | 3 + .../param/impl/SysParamServiceImpl.java | 30 ++++ acs2/nladmin-ui/src/api/acs/device/device.js | 9 +- acs2/nladmin-ui/src/api/system/dict.js | 9 +- .../src/views/acs/device/config.vue | 1 - .../nladmin-ui/src/views/acs/device/index.vue | 21 ++- .../src/views/system/dict/dictDetail.vue | 19 ++- .../src/views/system/param/index.vue | 2 +- .../src/views/system/param/param.js | 6 +- .../src/views/system/param/stationDialog.vue | 3 +- .../src/views/system/param/tubeDialog2.vue | 135 ++++++++++-------- 21 files changed, 361 insertions(+), 94 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/NDCAgvService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/NDCAgvService.java index b7f9389..9821fed 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/NDCAgvService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/NDCAgvService.java @@ -86,4 +86,6 @@ public interface NDCAgvService { public boolean createChargingTaskToNDC(String carno); public void charge(String carno); + + public void charge(String carno,String station); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java index f2e209c..fb299fe 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java @@ -17,6 +17,7 @@ import org.nl.acs.instruction.domain.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; +import org.nl.common.exception.BadRequestException; import org.nl.system.service.dict.ISysDictService; import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.param.ISysParamService; @@ -585,4 +586,59 @@ public class NDCAgvServiceImpl implements NDCAgvService { return AGVDeviceStatus; } + @Override + public void charge(String carno, String station) { + //判断当前充电桩是否已下发充电任务 + Dict temp = dictService.getDictByName2("station", station); + if (ObjectUtil.isNotEmpty(temp)) { + int satation = 0; + if(ObjectUtil.isNotEmpty(temp)){ + satation = Integer.parseInt(temp.getPara1()); + } + String instcode =CodeUtil.getNewCode("INSTRUCT_NO"); + byte ikeyhigh = (byte) IntToHexHigh(Integer.parseInt(instcode)); + byte ikeylow = (byte) IntToHexLow(Integer.parseInt(instcode)); + byte carhigh = (byte) IntToHexHigh(Integer.parseInt(carno)); + byte carlow = (byte) IntToHexLow(Integer.parseInt(carno)); + byte satationhigh = (byte) IntToHexHigh(satation); + byte satationlow = (byte) IntToHexLow(satation); + String str = "十进制下发:"; + String str1 = "十六进制下发:"; + str += "ikey:" + (Integer.parseInt(instcode)); + str1 += "ikey:" + hexToString(ikeyhigh & 0xFF) + hexToString(ikeylow & 0xFF); + str += "carno:" + (Integer.parseInt(carno)); + str1 += "carno:" + hexToString(carhigh & 0xFF) + hexToString(carlow & 0xFF); + str += "/satation:" + (satation); + str1 += "/satation:" + hexToString(satationhigh & 0xFF) + hexToString(satationlow & 0xFF); + //todo 核对NDC协议 + byte[] b = new byte[]{(byte) 0X87, (byte) 0XCD, + (byte) 0X00, (byte) 0X08, + (byte) 0X00, (byte) 0X0E, + (byte) 0X00, (byte) 0X01, + (byte) 0X00, (byte) 0X71, + (byte) 0X00, (byte) 0X0A, + (byte) 0X64, (byte) 0X80, + (byte) 0X00, (byte) 0X01, + (byte) ikeyhigh, (byte) ikeylow, + (byte) carhigh, (byte) carlow, + (byte) satationhigh, (byte) satationlow + + }; + log.info("下发AGV充电任务--{}", str1); + + try{ + OneNDCSocketConnectionAutoRun.write(b); + temp.setValue("1"); + temp.setPara2(String.valueOf(carno)); + dictService.updateDetail(temp); + } catch (Exception e){ + log.error("下发充电任务失败{}{}",e,e.getMessage()); + } + + } else { + log.info("当前充电桩{}已被使用!请检查充电桩状态再操作!", station); + throw new BadRequestException("当前充电桩已被使用或者车号不为空,请检查充电桩状态再操作!"); + } + } + } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java index 19f5de0..3cd3a01 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java @@ -17,6 +17,8 @@ import org.nl.acs.instruction.service.impl.InstructionServiceImpl; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.DeviceAppService; import org.nl.config.lucene.service.LuceneExecuteLogService; +import org.nl.system.service.dict.ISysDictService; +import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.param.ISysParamService; import org.nl.config.SpringContextHolder; import org.nl.system.service.param.impl.SysParamServiceImpl; @@ -62,6 +64,8 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { AutoRunService autoRunService; @Autowired LuceneExecuteLogService luceneExecuteLogService; + @Autowired + ISysDictService dictService; public OneNDCSocketConnectionAutoRun() { @@ -133,6 +137,8 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { int agvaddr = arr[18] * 256 + arr[19]; //车号 int carno = arr[20]; + //充电桩站点号 + int station = arr[25]; Instruction link_inst = null; Instruction inst = null; List insts = null; @@ -196,6 +202,28 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { } data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0); + }else if (phase == 0x64){ + log.info("AGV车号{}反馈充电任务下发成功,锁定充电桩{}",agvaddr,station); + Dict dict = dictService.getDictByName3("station",String.valueOf(agvaddr),null); + if (ObjectUtil.isNotEmpty(dict)){ + dict.setValue("1"); + dict.setPara2(String.valueOf(agvaddr)); + dict.setPara3("下发成功"); + dictService.updateDetail(dict); + } + //充电成功 + }else if (phase == 0x65){ + log.info("AGV车号{}反馈充电中,充电桩{}",agvaddr,station); + //充电取消上报 + }else if (phase == 0x66){ + log.info("AGV车号{}反馈充电任务已取消,释放充电桩{}",agvaddr,station); + Dict dict = dictService.getDictByName3("station",String.valueOf(agvaddr),null); + if (ObjectUtil.isNotEmpty(dict)){ + dict.setValue("0"); + dict.setPara2(""); + dict.setPara3("充电桩空闲"); + dictService.updateDetail(dict); + } } else { //上报异常信息 //(不需要WCS反馈) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceController.java index 70fedad..ea2b94a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/rest/DeviceController.java @@ -2,6 +2,7 @@ package org.nl.acs.device.rest; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device.service.dto.DeviceDto; @@ -55,6 +56,14 @@ public class DeviceController { deviceService.downDeviceDBloadCSV(deviceService.queryDeviceProtocol(whereJson), response); } + @GetMapping("/selectCarList") + @Log("下拉选车号") + @ApiOperation("下拉选车号") + //@PreAuthorize("@el.check('routePlan:list')") + public ResponseEntity selectCarList() { + return new ResponseEntity<>(deviceService.selectCarList(), HttpStatus.OK); + } + @PostMapping @Log("新增设备") public ResponseEntity create(@Validated @RequestBody DeviceDto dto) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/DeviceService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/DeviceService.java index d0fb1a8..7582b73 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/DeviceService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/DeviceService.java @@ -383,4 +383,6 @@ public interface DeviceService extends CommonService { * @return */ JSONArray selectDriverCodeList(String device_code); + + JSONArray selectCarList(); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index c47e6cf..9fc61f9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -1989,4 +1989,18 @@ public class DeviceServiceImpl extends CommonServiceImpl i ja = JSONArray.parseArray(JSON.toJSONString(uniqueDriverSet)); return ja; } + + public JSONArray selectCarList() { + List deviceList = new LambdaQueryChainWrapper<>(deviceMapper).apply("device_type = 'agv' AND is_delete= '0' AND is_active= '1' AND is_config = 'true'").orderByAsc(Device::getDevice_code).list(); + JSONArray arr = JSONArray.parseArray(JSON.toJSONString(deviceList)); + JSONArray result = new JSONArray(); + for (int i = 0; i < arr.size(); i++) { + JSONObject obj = arr.getJSONObject(i); + JSONObject json = new JSONObject(); + json.put("device_code", obj.getString("device_code")); + json.put("device_name", obj.getString("device_name")); + result.add(json); + } + return result; + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dict/SysDictController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dict/SysDictController.java index 826b3ad..7158981 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dict/SysDictController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dict/SysDictController.java @@ -2,6 +2,7 @@ package org.nl.system.controller.dict; import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiOperation; import org.nl.common.base.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.common.logging.annotation.Log; @@ -36,13 +37,13 @@ public class SysDictController { @Log("查询字典") @GetMapping - + // @SaCheckPermission("dict:list") public ResponseEntity query(@RequestParam Map whereJson, PageQuery pageable){ return new ResponseEntity<>(TableDataInfo.build(dictService.queryAll(whereJson,pageable)), HttpStatus.OK); } - + @GetMapping(value = "/all") // @SaCheckPermission("dict:list") public ResponseEntity queryAll(){ @@ -51,16 +52,24 @@ public class SysDictController { @Log("新增字典") @PostMapping - + // @SaCheckPermission("dict:add") public ResponseEntity create(@RequestBody Dict dict){ dictService.create(dict); return new ResponseEntity<>(HttpStatus.CREATED); } + @Log("查询充电桩") + @PutMapping( "/{car}") + @ApiOperation("查询充电桩") +// @SaCheckPermission("dict:list") + public ResponseEntity selectStationByCar(@PathVariable String car){ + return new ResponseEntity<>(dictService.selectStationByCar(car), HttpStatus.OK); + } + @PutMapping @Log("修改字典") - + //@SaCheckPermission("@el.check('dict:edit')") public ResponseEntity updateDict(@Validated @RequestBody Dict dto){ dictService.updateDict(dto); @@ -68,7 +77,7 @@ public class SysDictController { } @Log("删除字典") - + @DeleteMapping // @SaCheckPermission("dict:del") public ResponseEntity delete(@RequestBody Set ids){ @@ -77,13 +86,13 @@ public class SysDictController { } @GetMapping("/dictDetail") - + public ResponseEntity queryDetails(@RequestParam Map criteria, PageQuery pageable){ DictQuery dictQuery = JSONObject.parseObject(JSONObject.toJSONString(criteria), DictQuery.class); return new ResponseEntity<>(TableDataInfo.build(dictService.queryAllDetail(dictQuery,pageable)),HttpStatus.OK); } - + @GetMapping(value = "/dictDetail/map") public ResponseEntity getDictDetailMaps(@RequestParam String dictName){ String[] names = dictName.split("[,,]"); @@ -95,7 +104,7 @@ public class SysDictController { } @Log("新增字典详情") - + @PostMapping("/dictDetail") // @SaCheckPermission("dict:add") public ResponseEntity createDetail(@RequestBody Dict resources){ @@ -104,7 +113,7 @@ public class SysDictController { } @Log("修改字典详情") - + @PutMapping("/dictDetail") // @SaCheckPermission("dict:edit") public ResponseEntity updateDetail(@RequestBody Dict resources){ @@ -113,7 +122,7 @@ public class SysDictController { } @Log("删除字典详情") - + @DeleteMapping(value = "/dictDetail/{id}") // @SaCheckPermission("dict:del") public ResponseEntity deleteDetail(@PathVariable String id){ diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java index 7796069..34f2bb8 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java @@ -3,6 +3,8 @@ package org.nl.system.controller.param; import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.nl.common.base.TableDataInfo; import org.nl.common.domain.query.PageQuery; @@ -36,7 +38,7 @@ class SysParamController { @Autowired private ISysParamService paramService; - + @GetMapping @Log("查询系统参数") //@SaCheckPermission("param:list") @@ -87,6 +89,15 @@ class SysParamController { paramService.setParam(whereJson); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/sendTask") + @Log("下发充电任务") + @ApiOperation("下发充电任务") + @SaIgnore + public ResponseEntity sendTask(@RequestBody JSONObject json) { + paramService.sendTask(json); + return new ResponseEntity<>(HttpStatus.OK); + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/ISysDictService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/ISysDictService.java index 52be08b..16a4f06 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/ISysDictService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/ISysDictService.java @@ -1,5 +1,6 @@ package org.nl.system.service.dict; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; @@ -103,4 +104,8 @@ public interface ISysDictService extends IService { * @return */ Dict getDictByName3(String name,String carno,String station); + + Dict getDictByName2(String name,String station); + + JSONArray selectStationByCar(String car); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java index 12810f0..1e2975b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java @@ -3,12 +3,17 @@ package org.nl.system.service.dict.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.ibatis.annotations.Lang; +import org.nl.acs.device.domain.Device; +import org.nl.acs.device.service.mapper.DeviceMapper; import org.nl.common.domain.query.PageQuery; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; @@ -37,6 +42,8 @@ import java.util.Set; public class SysDictServiceImpl extends ServiceImpl implements ISysDictService { @Autowired private SysDictMapper sysDictMapper; + @Autowired + private DeviceMapper deviceMapper; @Override public IPage queryAll(Map whereJson, PageQuery page) { @@ -197,14 +204,6 @@ public class SysDictServiceImpl extends ServiceImpl impleme sysDictMapper.deleteById(id); } - @Override - public List queryAll() { - return sysDictMapper.selectList(new QueryWrapper() - .select("MAX(dict_id) AS dictId, code, name") - .lambda() - .groupBy(Dict::getCode, Dict::getName)); - } - @Override @Transactional(rollbackFor = Exception.class) public void initDict(Dict dto) { @@ -223,6 +222,24 @@ public class SysDictServiceImpl extends ServiceImpl impleme sysDictMapper.updateById(dict); } + @Override + public JSONArray selectStationByCar(String car) { + Device device = deviceMapper.selectOne(new QueryWrapper().eq("device_code", car)); + String manufacturer = device.getManufacturer();//车间 + List stations = sysDictMapper.selectList(new LambdaQueryWrapper().eq(Dict::getDict_type, manufacturer)); + JSONArray arr = JSONArray.parseArray(JSON.toJSONString(stations)); + JSONArray result = new JSONArray(); + for (int i = 0; i < arr.size(); i++) { + JSONObject obj = arr.getJSONObject(i); + JSONObject json = new JSONObject(); + String value = obj.getString("value"); + json.put("label", obj.getString("label") + ("1".equals(obj.getString("value")) ? "(已使用)" : "(未使用)")); + json.put("para1", obj.getString("para1")); + result.add(json); + } + return result; + } + @Override public Dict getDictByName2(String name) { Dict dict = null; @@ -240,6 +257,32 @@ public class SysDictServiceImpl extends ServiceImpl impleme return dict; } + @Override + public Dict getDictByName2(String name, String station) { + Dict dict = null; + Dict dict1 = sysDictMapper.selectOne( + new LambdaQueryWrapper() + .eq(Dict::getCode, name) + .eq(ObjectUtil.isNotEmpty(station), Dict::getPara1, station) + .eq(Dict::getValue, "0") + .and(slam -> slam.isNull(Dict::getPara2) + .or() + .eq(Dict::getPara2, "")) + ); + if (ObjectUtil.isNotEmpty(dict1)) { + dict = dict1; + } + return dict; + } + + @Override + public List queryAll() { + return sysDictMapper.selectList(new QueryWrapper() + .select("MAX(dict_id) AS dictId, code, name") + .lambda() + .groupBy(Dict::getCode, Dict::getName)); + } + @Override public Dict getDictByName3(String name,String carno,String station) { Dict dict = null; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/ISysParamService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/ISysParamService.java index e42a09d..cb16e34 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/ISysParamService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/ISysParamService.java @@ -1,5 +1,6 @@ package org.nl.system.service.param; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -61,4 +62,6 @@ public interface ISysParamService extends IService { Map queryParam(); void setParam(Map whereJson); + + void sendTask(JSONObject json); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java index cea26a2..ad55733 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java @@ -3,6 +3,8 @@ package org.nl.system.service.param.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -10,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.nl.acs.AcsConfig; +import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.task.domain.Task; import org.nl.acs.utils.PageUtil; import org.nl.common.domain.query.PageQuery; @@ -17,10 +20,13 @@ import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.config.MapOf; import org.nl.config.language.LangProcess; +import org.nl.system.service.dict.ISysDictService; +import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.param.ISysParamService; import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.dao.mapper.SysParamMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,6 +49,11 @@ public class SysParamServiceImpl extends ServiceImpl impl @Autowired private SysParamMapper paramMapper; + @Lazy + @Autowired + private NDCAgvService ndcAgvService; + @Autowired + private ISysDictService dictService; @Override public IPage queryPage(Map whereJson, Pageable page) { @@ -170,4 +181,23 @@ public class SysParamServiceImpl extends ServiceImpl impl paramMapper.updateById(param_electric_end); } + + @Override + public void sendTask(JSONObject json) { + String carno = json.getString("carno"); + String station = json.getString("station"); + if (StrUtil.isEmpty(carno)){ + throw new BadRequestException("车辆编号不能为空"); + } + if (StrUtil.isEmpty(station)){ + throw new BadRequestException("充电站编号不能为空"); + } + //判断是否已下发充电任务 + Dict dict1 = dictService.getDictByName3("station",carno,null); + if(ObjectUtil.isNotEmpty(dict1)){ + log.info("当前车辆{}已分配充电桩{},退出后续判断",carno,dict1.getPara1()); + }else { + ndcAgvService.charge(carno, station); + } + } } diff --git a/acs2/nladmin-ui/src/api/acs/device/device.js b/acs2/nladmin-ui/src/api/acs/device/device.js index ef698b6..84cb4c4 100644 --- a/acs2/nladmin-ui/src/api/acs/device/device.js +++ b/acs2/nladmin-ui/src/api/acs/device/device.js @@ -164,6 +164,13 @@ export function selectListByType() { }) } +export function selectCarList() { + return request({ + url: 'api/device/selectCarList', + method: 'get' + }) +} + export default { add, edit, del, selectDeviceList, selectDeviceListByRegion, callAgv, responseAgv, selectDeviceDevicerInfo, autoCreateTask, changeDeviceStatus, cleanTask, queryStorageExtra, selectConDeviceList, saveBarcode, selectDeviceListOne, selectDeviceListTwo, selectDeviceListThree, - addMaterial, cleanMaterial, reload, excelImport, selectListByType } + addMaterial, cleanMaterial, reload, excelImport, selectListByType, selectCarList } diff --git a/acs2/nladmin-ui/src/api/system/dict.js b/acs2/nladmin-ui/src/api/system/dict.js index 99170f7..007c7b3 100644 --- a/acs2/nladmin-ui/src/api/system/dict.js +++ b/acs2/nladmin-ui/src/api/system/dict.js @@ -31,4 +31,11 @@ export function edit(data) { }) } -export default { add, edit, del } +export function selectStationByCar(car) { + return request({ + url: 'api/dict/' + car, + method: 'put' + }) +} + +export default { add, edit, del, selectStationByCar } diff --git a/acs2/nladmin-ui/src/views/acs/device/config.vue b/acs2/nladmin-ui/src/views/acs/device/config.vue index f8f67d7..5f73b43 100644 --- a/acs2/nladmin-ui/src/views/acs/device/config.vue +++ b/acs2/nladmin-ui/src/views/acs/device/config.vue @@ -124,7 +124,6 @@ export default { get(this.device_code).then(data => { this.form = data.device // 默认是普通站点 - // this.currentComponent = 'standard_ordinary_site' if (data.device.driver_code) { this.currentComponent = data.device.driver_code } diff --git a/acs2/nladmin-ui/src/views/acs/device/index.vue b/acs2/nladmin-ui/src/views/acs/device/index.vue index ccab7fe..97b98dd 100644 --- a/acs2/nladmin-ui/src/views/acs/device/index.vue +++ b/acs2/nladmin-ui/src/views/acs/device/index.vue @@ -145,9 +145,21 @@ - - - + + + + + @@ -192,7 +204,7 @@ - + @@ -253,6 +265,7 @@ const defaultForm = { export default { name: 'Device', components: { pagination, crudOperation, rrOperation, udOperation, UploadDialog }, + dicts: ['area'], mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ diff --git a/acs2/nladmin-ui/src/views/system/dict/dictDetail.vue b/acs2/nladmin-ui/src/views/system/dict/dictDetail.vue index 7424d3c..61c00c8 100644 --- a/acs2/nladmin-ui/src/views/system/dict/dictDetail.vue +++ b/acs2/nladmin-ui/src/views/system/dict/dictDetail.vue @@ -73,6 +73,21 @@ + + + + +