diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java index 0d1e78051..a15b2b664 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java @@ -138,4 +138,16 @@ public interface AcsConfig { * 选择A点还是B点 */ String CHOOSE = "choose"; + + String ELECTRIC ="electric"; + + String ELECTRIC2 ="electric2"; + + String ELECTRIC_BEGIN ="electric_begin"; + + String ELECTRIC_END ="electric_end"; + + String IS_ATUO_ELECTRIC ="is_atuo_electric"; + + String IS_ATUO_CAR ="is_atuo_car"; } 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 2abf2d5db..b7f9389b2 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 @@ -84,4 +84,6 @@ public interface NDCAgvService { * @return */ public boolean createChargingTaskToNDC(String carno); + + public void charge(String carno); } 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 56c06afb7..8c9c1be5e 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,10 +17,13 @@ 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.system.service.dict.ISysDictService; +import org.nl.system.service.dict.dao.Dict; import org.nl.system.service.param.ISysParamService; import org.nl.common.utils.CodeUtil; import org.nl.config.SpringContextHolder; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.Map; @@ -35,6 +38,7 @@ public class NDCAgvServiceImpl implements NDCAgvService { private final DeviceAppService deviceAppService; private final ISysParamService paramService; + private final ISysDictService dictService; private final AcsToWmsService acsToWmsService; private final DeviceExecuteLogService logServer; @@ -485,6 +489,69 @@ public class NDCAgvServiceImpl implements NDCAgvService { return true; } + @Override + @Transactional(rollbackFor = Exception.class) + public void charge(String carno) { + //检查数据字典station为0的参数 + //分配车辆 + Dict dict = dictService.getDictByName3("station",carno,null); + int satation=0; + if(ObjectUtil.isNotEmpty(dict)){ + log.info("当前车辆{}已分配充电桩{},退出后续判断",carno,dict.getPara1()); + return; + } + Dict temp = dictService.getDictByName2("station"); + if(ObjectUtil.isNotEmpty(temp)){ + satation = Integer.parseInt(temp.getPara1()); + } + if(satation!=0){ + 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); + + 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); + } catch (Exception e){ + log.error("下发充电任务失败{}{}",e,e.getMessage()); + } + + temp.setValue("1"); + temp.setPara2(carno); + temp.setPara3("下发充电"); + dictService.updateDetail(temp); + + }else{ + log.error("目前暂无可使用充电桩充电桩,暂不分配{}充电任务",carno); + } + } + String hexToString(int i) { return (i < 16 ? "0" + Integer.toHexString(i) : Integer.toHexString(i)).toUpperCase(); } 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 19f5de09f..635b65d90 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,7 +64,8 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { AutoRunService autoRunService; @Autowired LuceneExecuteLogService luceneExecuteLogService; - + @Autowired + ISysDictService dictService; public OneNDCSocketConnectionAutoRun() { this.recordTime = new Date((new Date()).getTime() - (long) this.recordTimeOut); @@ -133,6 +136,9 @@ 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,7 +202,30 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { } data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0); - } else { + } 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反馈) if (phase == 0x67) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 8dbbd7778..2d3796920 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.AcsConfig; import org.nl.acs.agv.server.NDCAgvService; import org.nl.acs.auto.run.TwoNDCSocketConnectionAutoRun; import org.nl.acs.common.base.CommonFinalParam; @@ -42,9 +43,12 @@ import org.nl.acs.task.service.impl.TaskServiceImpl; import org.nl.config.lucene.service.LuceneExecuteLogService; import org.nl.config.lucene.service.dto.LuceneLogDto; import org.nl.config.thread.ThreadPoolExecutorUtil; +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 java.time.LocalTime; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -60,6 +64,7 @@ import java.util.concurrent.ThreadPoolExecutor; public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements DeviceDriver, DeviceStageMonitor, FeedLmsRealFailed { ISysParamService ISysParamService = SpringContextHolder.getBean(ISysParamService.class); + ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class); InstructionService instructionService = SpringContextHolder.getBean(InstructionServiceImpl.class); TaskService taskService = SpringContextHolder.getBean(TaskServiceImpl.class); AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); @@ -69,6 +74,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class); + ISysDictService dictService = SpringContextHolder.getBean(ISysDictService.class); TwoAgvPhase twoAgvPhase = new TwoAgvPhase(); String error_code = "0"; @@ -93,6 +99,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic String error_type = "agv_error_type"; Boolean isonline = true; Boolean iserror = false; + boolean isCharge = false; private synchronized void setErrorInfo(int error, String error_code, String error_message) { this.error = error; @@ -2155,6 +2162,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic logDto.setLog_level(4); luceneExecuteLogService.deviceExecuteLog(logDto); } else if (phase == 0x73) { + log.info("接收agv上报信息,phase == 0x73:" + phase); //agv电量 electric_qty = ikey; LuceneLogDto logDto = LuceneLogDto.builder() @@ -2163,6 +2171,53 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic .build(); logDto.setLog_level(4); luceneExecuteLogService.deviceExecuteLog(logDto); + //自动充电的车号 + String is_atuo_car = paramService.findByCode(AcsConfig.IS_ATUO_CAR).getValue(); + //当前上报的车号 + String now_car = String.valueOf(this.agvaddr); + //如果配置的车号是诺宝车号 + if(now_car.equals(is_atuo_car)){ + //是否开启自动充电 + String is_atuo_electric = paramService.findByCode(AcsConfig.IS_ATUO_ELECTRIC).getValue(); + log.info("接收agv上报信息,is_atuo_electric:" + is_atuo_electric); + if("1".equals(is_atuo_electric)){ + String electric_begin = paramService.findByCode(AcsConfig.ELECTRIC_BEGIN).getValue(); + String[] begins = electric_begin.split(":"); + String electric_end = paramService.findByCode(AcsConfig.ELECTRIC_END).getValue(); + String[] ends = electric_end.split(":"); + // 定义时间段 + LocalTime startTime = LocalTime.of(Integer.parseInt(begins[0]), Integer.parseInt(begins[1])); // 上午8点 + LocalTime endTime = LocalTime.of(Integer.parseInt(ends[0]), Integer.parseInt(ends[1])); // 晚上22点 + // 获取当前时间 + LocalTime now = LocalTime.now(); + // 判断当前时间是否在时间段内 + boolean isInRange = !now.isBefore(startTime) && !now.isAfter(endTime); + int electric = 0 ; + //早上8-22点 + if(isInRange){ + electric = Integer.parseInt(paramService.findByCode(AcsConfig.ELECTRIC).getValue()); + }else{ + electric = Integer.parseInt(paramService.findByCode(AcsConfig.ELECTRIC2).getValue()); + } + if (electric_qty>0 && electric_qty < electric) { + log.info("当前车辆{}电量为{}低于{},开始判断是否需要充电!", this.agvaddr, electric_qty,electric); + //判断是否已下发充电任务 + Dict dict1 = dictService.getDictByName3("station",String.valueOf(this.agvaddr),null); + if(ObjectUtil.isNotEmpty(dict1)){ + log.info("当前车辆{}已分配充电桩{},退出后续判断",this.agvaddr,dict1.getPara1()); + }else{ + //未下发,判断是否有空闲充电桩 + Dict dict = dictService.getDictByName2("station"); + if(ObjectUtil.isNotEmpty(dict)){ + ndcAgvService.charge(String.valueOf(this.agvaddr)); + isCharge =true; + }else{ + log.info("当前车辆{}电量为{}低于{},但无空闲充电桩!", this.agvaddr, electric_qty,electric); + } + } + } + } + } } else if (phase == 0x74) { //三色灯状态 status = ikey; 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 689441eae..a719b4309 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; @@ -121,5 +122,20 @@ public class SysDictController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/initDict") + @Log("初始化充电桩点位信息") + @ApiOperation("初始化充电桩点位信息") + public ResponseEntity initDict(@Validated @RequestBody Dict dto){ + dictService.initDict(dto); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @GetMapping("/showDetail2") + @Log("查询字典明细") + @ApiOperation("查询字典明细") + public ResponseEntity showDetail2(@RequestParam String name){ + return new ResponseEntity<>(dictService.getDictByName(name), HttpStatus.OK); + } + } 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 72a54b28d..83ea63302 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,7 @@ package org.nl.system.controller.param; import cn.dev33.satoken.annotation.SaIgnore; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.nl.common.base.TableDataInfo; import org.nl.common.domain.query.PageQuery; @@ -43,7 +44,12 @@ class SysParamController { public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ return new ResponseEntity<>(TableDataInfo.build(paramService.queryPage(whereJson, page)), HttpStatus.OK); } - + @GetMapping("/queryParam") + @Log("查询自动充电配置") + @ApiOperation("查询自动充电配置") + public ResponseEntity queryParam(){ + return new ResponseEntity<>(paramService.queryParam(), HttpStatus.OK); + } @PostMapping @Log("新增系统参数") //@SaCheckPermission("param:add") @@ -75,7 +81,14 @@ class SysParamController { public ResponseEntity getValueByCode(@PathVariable String code) { return new ResponseEntity<>(paramService.findByCode(code), HttpStatus.CREATED); } - + @PostMapping("/setParam") + @Log("保存参数") + @ApiOperation("保存参数") + @SaIgnore + public ResponseEntity setParam(@RequestBody Map whereJson) { + paramService.setParam(whereJson); + 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 f56a0ba9f..6f793e17d 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 @@ -62,6 +62,12 @@ public interface ISysDictService extends IService { */ List getDictByName(String name); + /** + * 初始化充电桩点位信息 + * @param dto + */ + void initDict(Dict dto); + /** * 添加字典明细 * @param resources @@ -85,4 +91,18 @@ public interface ISysDictService extends IService { * @return */ List queryAll(); + + /** + * 获取字典明细 + * @param name + * @return + */ + Dict getDictByName2(String name); + + /** + * 获取字典明细 + * @param name + * @return + */ + Dict getDictByName3(String name,String carno,String station); } 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 e389ed070..927475ed9 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 @@ -131,6 +131,24 @@ public class SysDictServiceImpl extends ServiceImpl impleme return dictList; } + @Override + @Transactional(rollbackFor = Exception.class) + public void initDict(Dict dto) { + Dict dict = sysDictMapper.selectById(dto.getDict_id()); + if (ObjectUtil.isEmpty(dict)) { + throw new BadRequestException("字典不存在"); + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String currentNickName = SecurityUtils.getCurrentNickName(); + dict.setValue("0"); + dict.setPara2(""); + dict.setPara3("充电桩空闲"); + dict.setUpdate_id(currentUserId); + dict.setUpdate_name(currentNickName); + dict.setUpdate_time(DateUtil.now()); + sysDictMapper.updateById(dict); + } + @Override @Transactional(rollbackFor = Exception.class) public void createDetail(Dict dict) { @@ -205,4 +223,37 @@ public class SysDictServiceImpl extends ServiceImpl impleme .groupBy(Dict::getCode, Dict::getName)); } + @Override + public Dict getDictByName2(String name) { + Dict dict = null; + List dictList = sysDictMapper.selectList( + new LambdaQueryWrapper() + .eq(Dict::getCode, name) + .eq(Dict::getValue, "0") + .and(slam -> slam.isNull(Dict::getPara2) + .or() + .eq(Dict::getPara2, "")) + ); + if (ObjectUtil.isNotEmpty(dictList) && dictList.size()>0){ + dict = dictList.get(0); + } + return dict; + } + + @Override + public Dict getDictByName3(String name,String carno,String station) { + Dict dict = null; + List dictList = sysDictMapper.selectList( + new LambdaQueryWrapper() + .eq(Dict::getCode, name) + .eq(ObjectUtil.isNotEmpty(carno),Dict::getPara2, carno) + .eq(ObjectUtil.isNotEmpty(station),Dict::getPara1, station) + .eq(Dict::getValue,"1") + ); + if (ObjectUtil.isNotEmpty(dictList) && dictList.size()>0){ + dict = dictList.get(0); + } + return dict; + } + } 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 9e9107d1b..e42a09dac 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 @@ -57,4 +57,8 @@ public interface ISysParamService extends IService { * @return Param */ Param findByCode(String code); + + Map queryParam(); + + void setParam(Map whereJson); } 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 d77be167e..cea26a28b 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 @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; 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.task.domain.Task; import org.nl.acs.utils.PageUtil; import org.nl.common.domain.query.PageQuery; @@ -24,6 +25,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -102,4 +104,70 @@ public class SysParamServiceImpl extends ServiceImpl impl Param param = paramMapper.selectOne(queryWrapper); return param; } + + public Map queryParam(){ + HashMap map = new HashMap(); + //白班充电阈值 + Param electric = this.findByCode(AcsConfig.ELECTRIC); + if (ObjectUtil.isEmpty(electric)) throw new BadRequestException("白班充电阈值参数异常"); + //晚班充电阈值 + Param electric2 = this.findByCode(AcsConfig.ELECTRIC2); + if (ObjectUtil.isEmpty(electric2)) throw new BadRequestException("晚班充电阈值参数异常"); + //白班开始时间 + Param electric_begin = this.findByCode(AcsConfig.ELECTRIC_BEGIN); + if (ObjectUtil.isEmpty(electric_begin)) throw new BadRequestException("白班开始时间参数异常"); + //白班结束时间 + Param electric_end = this.findByCode(AcsConfig.ELECTRIC_END); + if (ObjectUtil.isEmpty(electric_end)) throw new BadRequestException("白班结束时间参数异常"); + + map.put("electric",electric.getValue()); + map.put("electric2",electric2.getValue()); + map.put("electric_begin",electric_begin.getValue()); + map.put("electric_end",electric_end.getValue()); + return map; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void setParam(Map whereJson){ + Integer electric = (Integer) whereJson.get("electric"); + Integer electric2 = (Integer) whereJson.get("electric2"); + String electric_begin = (String) whereJson.get("electric_begin"); + String electric_end = (String) whereJson.get("electric_end"); + + String now_time = DateUtil.now(); + //白班充电阈值 + Param param_electric = this.findByCode(AcsConfig.ELECTRIC); + if (ObjectUtil.isEmpty(param_electric)) throw new BadRequestException("白班充电阈值参数异常"); + param_electric.setValue(electric.toString()); + param_electric.setUpdate_id(SecurityUtils.getCurrentUserId()); + param_electric.setUpdate_name(SecurityUtils.getCurrentNickName()); + param_electric.setUpdate_time(now_time); + paramMapper.updateById(param_electric); + //晚班充电阈值 + Param param_electric2 = this.findByCode(AcsConfig.ELECTRIC2); + if (ObjectUtil.isEmpty(param_electric2)) throw new BadRequestException("晚班充电阈值参数异常"); + param_electric2.setValue(electric2.toString()); + param_electric2.setUpdate_id(SecurityUtils.getCurrentUserId()); + param_electric2.setUpdate_name(SecurityUtils.getCurrentNickName()); + param_electric2.setUpdate_time(now_time); + paramMapper.updateById(param_electric2); + //白班开始时间 + Param param_electric_begin = this.findByCode(AcsConfig.ELECTRIC_BEGIN); + if (ObjectUtil.isEmpty(param_electric_begin)) throw new BadRequestException("白班开始时间参数异常"); + param_electric_begin.setValue(electric_begin); + param_electric_begin.setUpdate_id(SecurityUtils.getCurrentUserId()); + param_electric_begin.setUpdate_name(SecurityUtils.getCurrentNickName()); + param_electric_begin.setUpdate_time(now_time); + paramMapper.updateById(param_electric_begin); + //白班结束时间 + Param param_electric_end = this.findByCode(AcsConfig.ELECTRIC_END); + if (ObjectUtil.isEmpty(param_electric_end)) throw new BadRequestException("白班开始时间参数异常"); + param_electric_end.setValue(electric_end); + param_electric_end.setUpdate_id(SecurityUtils.getCurrentUserId()); + param_electric_end.setUpdate_name(SecurityUtils.getCurrentNickName()); + param_electric_end.setUpdate_time(now_time); + paramMapper.updateById(param_electric_end); + + } } diff --git a/acs2/nladmin-ui/src/views/system/param/index.vue b/acs2/nladmin-ui/src/views/system/param/index.vue index 9cc2f083e..ec06186d2 100644 --- a/acs2/nladmin-ui/src/views/system/param/index.vue +++ b/acs2/nladmin-ui/src/views/system/param/index.vue @@ -3,7 +3,28 @@
- + + + 配置自动充电 + + + 充电桩管理 + +
+ + @@ -76,6 +99,8 @@ import CRUD, { presenter, header, form, crud } from '@crud/crud' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' +import TubeDialog2 from '@/views/system/param/tubeDialog2.vue' +import StationDialog from '@/views/system/param/stationDialog.vue' const defaultForm = { id: null, @@ -90,7 +115,7 @@ const defaultForm = { } export default { name: 'Param', - components: { pagination, crudOperation, udOperation }, + components: { pagination, crudOperation, udOperation, TubeDialog2, StationDialog }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ title: 'menu.table_title.SystemParam', url: 'api/param', idField: 'id', sort: 'id,desc', crudMethod: { ...crudParam }, @@ -110,7 +135,8 @@ export default { edit: ['admin', 'param:edit'], del: ['admin', 'param:del'] }, - + showView2: false, + showStation: false, rules: { id: [ { required: true, message: this.$t('SysParam.rules.NotNull'), trigger: 'blur' } @@ -151,6 +177,15 @@ export default { [CRUD.HOOK.beforeRefresh]() { return true }, + querytable() { + this.crud.toQuery() + }, + divOpen() { + this.showView2 = true + }, + divOpenStation() { + this.showStation = true + }, webSocket() { const that = this if (typeof (WebSocket) === 'undefined') { diff --git a/acs2/nladmin-ui/src/views/system/param/param.js b/acs2/nladmin-ui/src/views/system/param/param.js index 9050af5e8..54a6071d2 100644 --- a/acs2/nladmin-ui/src/views/system/param/param.js +++ b/acs2/nladmin-ui/src/views/system/param/param.js @@ -31,4 +31,35 @@ export function getValueByCode(code) { }) } -export default { add, edit, del, getValueByCode } +export function queryParam() { + return request({ + url: '/api/param/queryParam', + method: 'get' + }) +} + +export function setParam(data) { + return request({ + url: 'api/param/setParam', + method: 'post', + data + }) +} + +export function showDetail2(params) { + return request({ + url: 'api/dict/showDetail2', + method: 'get', + params + }) +} + +export function initDict(data) { + return request({ + url: 'api/dict/initDict', + method: 'post', + data + }) +} + +export default { add, edit, del, getValueByCode, queryParam, setParam, showDetail2, initDict } diff --git a/acs2/nladmin-ui/src/views/system/param/stationDialog.vue b/acs2/nladmin-ui/src/views/system/param/stationDialog.vue new file mode 100644 index 000000000..f0ad3622a --- /dev/null +++ b/acs2/nladmin-ui/src/views/system/param/stationDialog.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/system/param/tubeDialog2.vue b/acs2/nladmin-ui/src/views/system/param/tubeDialog2.vue new file mode 100644 index 000000000..3954ff684 --- /dev/null +++ b/acs2/nladmin-ui/src/views/system/param/tubeDialog2.vue @@ -0,0 +1,136 @@ + + + + +