diff --git a/web/src/main/java/com/zhehekeji/web/controller/StreetController.java b/web/src/main/java/com/zhehekeji/web/controller/StreetController.java index e2c4cb2..aa21a45 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/StreetController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/StreetController.java @@ -51,13 +51,13 @@ public class StreetController { @PostMapping("") @ApiOperation(value = "巷道新增") - public Result add(@RequestBody Street street){ + public Result add(@RequestBody StreetVO street){ return Result.success(streetService.add(street)); } @PutMapping("") @ApiOperation(value = "巷道修改") - public Result edit(@RequestBody Street street){ + public Result edit(@RequestBody StreetVO street){ streetService.edit(street); return Result.success(); } diff --git a/web/src/main/java/com/zhehekeji/web/pojo/street/StreetVO.java b/web/src/main/java/com/zhehekeji/web/pojo/street/StreetVO.java index 2f9e426..f3d09f1 100644 --- a/web/src/main/java/com/zhehekeji/web/pojo/street/StreetVO.java +++ b/web/src/main/java/com/zhehekeji/web/pojo/street/StreetVO.java @@ -9,4 +9,8 @@ public class StreetVO extends Street { private String camera1Name; private String camera2Name; + + private String lightSourceIp; + + private Integer lightSourcePort; } diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcCmdInfo.java b/web/src/main/java/com/zhehekeji/web/service/PlcCmdInfo.java index eed0c36..a8c78e4 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcCmdInfo.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcCmdInfo.java @@ -17,7 +17,7 @@ public class PlcCmdInfo { /** * 前两个命令 库内?苦口? 1:库内 2:库口 */ - private Integer inOut1; + private Integer side1; /** * 前两个命令 左?右? 1:左 2:右 @@ -34,12 +34,16 @@ public class PlcCmdInfo { */ private Integer row1; + /** + * 单伸 或 双伸内侧: 1 + * 双伸 外侧 :2 + */ private Integer separation1; /** * 后两个命令 库内?苦口? 1:库内 2:库口 */ - private Integer inOut2; + private Integer side2; /** * 后两个命令 左?右? 1:左 2:右 @@ -62,13 +66,13 @@ public class PlcCmdInfo { private String plcId; - public PlcCmdInfo(String plcId, String taskId, Integer inOut1, Integer leftRight1, Integer column1, Integer row1,Integer separation1, Integer inOut2, Integer leftRight2, Integer column2, Integer row2, Integer separation2) { + public PlcCmdInfo(String plcId, String taskId, Integer side1, Integer leftRight1, Integer column1, Integer row1, Integer separation1, Integer side2, Integer leftRight2, Integer column2, Integer row2, Integer separation2) { this.taskId = taskId; - this.inOut1 = inOut1; + this.side1 = side1; this.leftRight1 = leftRight1; this.column1 = column1; this.row1 = row1; - this.inOut2 = inOut2; + this.side2 = side2; this.leftRight2 = leftRight2; this.column2 = column2; this.row2 = row2; @@ -87,4 +91,15 @@ public class PlcCmdInfo { return ""; } } + + //针对单双伸货架 单身的是空,双伸且为外侧为 Out + public String getInOutStr(int times){ + if (times <= 2) { + return separation1 == 1 ? "" : "-Out"; + } else if(times <= 4) { + return separation2 == 1 ? "" : "-Out"; + }else { + return ""; + } + } } diff --git a/web/src/main/java/com/zhehekeji/web/service/PlcService.java b/web/src/main/java/com/zhehekeji/web/service/PlcService.java index 6c4bb21..d4fc125 100644 --- a/web/src/main/java/com/zhehekeji/web/service/PlcService.java +++ b/web/src/main/java/com/zhehekeji/web/service/PlcService.java @@ -101,7 +101,7 @@ public class PlcService { order.setStatus(0); order.setStartTime(LocalDateTime.now()); order.setStreetId(street.getId()); - order.setInOut1(plcCmdInfo.getInOut1()); + order.setInOut1(plcCmdInfo.getSide1()); order.setLeftRight1(plcCmdInfo.getLeftRight1()); order.setColumn1(plcCmdInfo.getColumn1()); order.setRow1(plcCmdInfo.getRow1()); @@ -135,7 +135,7 @@ public class PlcService { Order update = new Order(); update.setId(order.getId()); update.setEndTime(endTime); - update.setInOut2(plcCmdInfo.getInOut2()); + update.setInOut2(plcCmdInfo.getSide2()); update.setLeftRight2(plcCmdInfo.getLeftRight2()); update.setColumn2(plcCmdInfo.getColumn2()); update.setRow2(plcCmdInfo.getRow2()); @@ -442,18 +442,18 @@ public class PlcService { public void kescTest6(PlcCmdInfo plcCmdInfo,String code,String wmsCode){ long startTime = System.currentTimeMillis(); -// log.info("test startTime",startTime); -// check(plcCmdInfo,"C2-L",wmsCode); -// plcCmdInfo.setColumn1(plcCmdInfo.getColumn1()+1); -// check(plcCmdInfo,"C3-L",wmsCode); -// plcCmdInfo.setColumn1(plcCmdInfo.getColumn1()+1); -// check(plcCmdInfo,"C4-L",wmsCode); -// plcCmdInfo.setColumn1(plcCmdInfo.getColumn1()+1); -// check(plcCmdInfo,"C5",wmsCode); -// plcCmdInfo.setColumn1(plcCmdInfo.getColumn1()+1); -// check(plcCmdInfo,"E1",wmsCode); -// long endTime = System.currentTimeMillis(); - //log.info("test endTime:{},time:{}millisecond",endTime,(endTime - startTime)); + log.info("test startTime",startTime); + check(plcCmdInfo,"C2-L",wmsCode,"2"); + plcCmdInfo.setColumn1(plcCmdInfo.getColumn1()+1); + check(plcCmdInfo,"C3-L",wmsCode,"2"); + plcCmdInfo.setColumn1(plcCmdInfo.getColumn1()); + check(plcCmdInfo,"C4-L",wmsCode,"2"); + plcCmdInfo.setColumn1(plcCmdInfo.getColumn1()+1); + check(plcCmdInfo,"C5",wmsCode,"2"); + plcCmdInfo.setColumn1(plcCmdInfo.getColumn1()+1); + check(plcCmdInfo,"E1",wmsCode,"2"); + long endTime = System.currentTimeMillis(); + log.info("test endTime:{},time:{}millisecond",endTime,(endTime - startTime)); } public void check(PlcCmdInfo plcCmdInfo,String cmdCode,String wmsCode,String wmsTrayCode){ diff --git a/web/src/main/java/com/zhehekeji/web/service/StreetService.java b/web/src/main/java/com/zhehekeji/web/service/StreetService.java index 804b693..ffea962 100644 --- a/web/src/main/java/com/zhehekeji/web/service/StreetService.java +++ b/web/src/main/java/com/zhehekeji/web/service/StreetService.java @@ -1,15 +1,20 @@ package com.zhehekeji.web.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.zhehekeji.core.util.Assert; +import com.zhehekeji.web.entity.LightSource; import com.zhehekeji.web.entity.Street; +import com.zhehekeji.web.mapper.LightSourceMapper; import com.zhehekeji.web.mapper.StreetMapper; import com.zhehekeji.web.pojo.street.StreetSearch; import com.zhehekeji.web.pojo.street.StreetType; import com.zhehekeji.web.pojo.street.StreetVO; import com.zhehekeji.web.service.robotic.NettyClient; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; @@ -31,24 +36,34 @@ public class StreetService { private StreetMapper streetMapper; @Resource private NettyClient nettyClient; + @Resource + private LightSourceMapper lightSourceMapper; @Transactional(rollbackFor = Exception.class) @Caching( put = { - @CachePut(value = {"street"},key = "#street.id"), - @CachePut(value = {"streetByPlcId"},key = "#street.plcId"), + @CachePut(value = {"street"},key = "#streetVO.id"), + @CachePut(value = {"streetByPlcId"},key = "#streetVO.plcId"), }, evict = { @CacheEvict(value = "getStreetCount") } ) - public Street add(Street street) { + public Street add(StreetVO streetVO) { + Street street = new Street(); + BeanUtils.copyProperties(streetVO,street); List shelves = check(street); street.setCreateTime(LocalDateTime.now()); street.setUpdateTime(LocalDateTime.now()); street.setVideoStyleRow(1); - street.setVideoStyleColumn(1); + if(street.getCamera2Id() != null && street.getCamera2Id() != 0 && street.getCamera1Id() != null && street.getCamera1Id() != 0){ + //如果两个球机 就显示2列 + street.setVideoStyleColumn(2); + }else { + street.setVideoStyleColumn(1); + } + try { streetMapper.insert(street); } catch (DuplicateKeyException e) { @@ -67,6 +82,11 @@ public class StreetService { } }); thread.start(); + LightSource lightSource = new LightSource(); + lightSource.setStreetId(street.getId()); + lightSource.setIp(streetVO.getLightSourceIp()); + lightSource.setPort(streetVO.getLightSourcePort()); + lightSourceMapper.insert(lightSource); return street; } @@ -127,17 +147,40 @@ public class StreetService { @Caching( evict = { - @CacheEvict(value = "street",key="#street.id"), - @CacheEvict(value = "streetByPlcId",key="#street.plcId"), + @CacheEvict(value = "street",key="#streetVO.id"), + @CacheEvict(value = "streetByPlcId",key="#streetVO.plcId"), } ) - public void edit(Street street) { + public void edit(StreetVO streetVO) { + Street street = new Street(); + BeanUtils.copyProperties(streetVO,street); check(street); + if(street.getCamera2Id() != null && street.getCamera2Id() != 0 && street.getCamera1Id() != null && street.getCamera1Id() != 0){ + //如果两个球机 就显示2列 + street.setVideoStyleColumn(2); + }else { + street.setVideoStyleColumn(1); + } try { streetMapper.updateById(street); } catch (DuplicateKeyException e) { Assert.isTrue(false, "PLC ID已存在"); } + List list = lightSourceMapper.selectList(new QueryWrapper().eq("street_id",street.getId())); + if(list.size() == 0){ + LightSource lightSource = new LightSource(); + lightSource.setPort(streetVO.getLightSourcePort()); + lightSource.setIp(streetVO.getLightSourceIp()); + lightSource.setStreetId(street.getId()); + lightSourceMapper.insert(lightSource); + }else { + LightSource lightSource = new LightSource(); + lightSource.setPort(streetVO.getLightSourcePort()); + lightSource.setIp(streetVO.getLightSourceIp()); + lightSourceMapper.update(lightSource,new UpdateWrapper().eq("street_id",street.getId())); + } + + } @Cacheable(value = "street",key = "#id") diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java index 37aaa61..cfa3dce 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java @@ -72,7 +72,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { if (Cmd.isBaseAction(code)) { //执行动作,需要保存执行到第几步了 Integer times = GoodsActionTimes.put(plcCmdInfo.getOrderNum()); - code = code + "-" + plcCmdInfo.getLeftRightStr(times); + code = code + "-" + plcCmdInfo.getLeftRightStr(times) + plcCmdInfo.getInOutStr(times); //执行动作 plcService.action(plcCmdInfo, times, code); }else { diff --git a/web/src/main/resources/mapper/StreetMapper.xml b/web/src/main/resources/mapper/StreetMapper.xml index 57f8e5a..5a181f8 100644 --- a/web/src/main/resources/mapper/StreetMapper.xml +++ b/web/src/main/resources/mapper/StreetMapper.xml @@ -3,8 +3,9 @@