From 9d5f39fb3be0d9aed1fd975dad19d2c7fdecdde7 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 21 三月 2024 09:15:57 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/entity/BasRgv.java | 209 ++++++ src/main/java/com/zy/core/enums/RgvModeType.java | 43 + src/main/resources/mapper/BasRgvErrMapper.xml | 16 src/main/java/com/zy/asrs/service/BasRgvErrService.java | 8 src/main/java/com/zy/asrs/service/BasRgvService.java | 8 src/main/java/com/zy/core/thread/SiemensRgvThread.java | 489 ++++++++++++++++ src/main/java/com/zy/asrs/mapper/BasRgvErrMapper.java | 12 src/main/java/com/zy/core/model/RgvSlave.java | 57 + src/main/java/com/zy/core/enums/SlaveType.java | 1 src/main/java/com/zy/core/cache/OutputQueue.java | 4 src/main/java/com/zy/core/model/command/RgvCommand.java | 129 ++++ src/main/java/com/zy/asrs/entity/BasRgvErr.java | 127 ++++ src/main/java/com/zy/asrs/controller/BasRgvErrController.java | 123 ++++ src/main/java/com/zy/core/enums/RgvStatusType.java | 46 + src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java | 12 src/main/java/com/zy/asrs/mapper/BasRgvMapper.java | 12 src/main/java/com/zy/core/cache/MessageQueue.java | 14 src/main/java/com/zy/asrs/controller/BasRgvController.java | 123 ++++ src/main/java/com/zy/asrs/service/impl/BasRgvServiceImpl.java | 12 src/main/java/com/zy/common/CodeBuilder.java | 2 src/main/java/com/zy/core/ServerBootstrap.java | 4 src/main/java/com/zy/core/properties/SlaveProperties.java | 2 src/main/resources/mapper/BasRgvMapper.xml | 24 src/main/java/com/zy/core/RgvThread.java | 4 src/main/java/com/zy/core/model/protocol/RgvProtocol.java | 231 +++++++ src/main/java/com/zy/core/enums/RgvTaskModeType.java | 47 + 26 files changed, 1,757 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/BasRgvController.java b/src/main/java/com/zy/asrs/controller/BasRgvController.java new file mode 100644 index 0000000..0725a43 --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/BasRgvController.java @@ -0,0 +1,123 @@ +package com.zy.asrs.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.core.common.DateUtils; +import com.zy.asrs.entity.BasRgv; +import com.zy.asrs.service.BasRgvService; +import com.core.annotations.ManagerAuth; +import com.core.common.BaseRes; +import com.core.common.Cools; +import com.core.common.R; +import com.zy.common.web.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +public class BasRgvController extends BaseController { + + @Autowired + private BasRgvService basRgvService; + + @RequestMapping(value = "/basRgv/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") String id) { + return R.ok(basRgvService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/basRgv/list/auth") + @ManagerAuth + public R list(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<BasRgv> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + return R.ok(basRgvService.selectPage(new Page<>(curr, limit), wrapper)); + } + + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ + for (Map.Entry<String, Object> entry : map.entrySet()){ + String val = String.valueOf(entry.getValue()); + if (val.contains(RANGE_TIME_LINK)){ + String[] dates = val.split(RANGE_TIME_LINK); + wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); + wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + } else { + wrapper.like(entry.getKey(), val); + } + } + } + + @RequestMapping(value = "/basRgv/add/auth") + @ManagerAuth + public R add(BasRgv basRgv) { + basRgvService.insert(basRgv); + return R.ok(); + } + + @RequestMapping(value = "/basRgv/update/auth") + @ManagerAuth + public R update(BasRgv basRgv){ + if (Cools.isEmpty(basRgv) || null==basRgv.getRgvNo()){ + return R.error(); + } + basRgvService.updateById(basRgv); + return R.ok(); + } + + @RequestMapping(value = "/basRgv/delete/auth") + @ManagerAuth + public R delete(@RequestParam(value="ids[]") Long[] ids){ + for (Long id : ids){ + basRgvService.deleteById(id); + } + return R.ok(); + } + + @RequestMapping(value = "/basRgv/export/auth") + @ManagerAuth + public R export(@RequestBody JSONObject param){ + EntityWrapper<BasRgv> wrapper = new EntityWrapper<>(); + List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); + Map<String, Object> map = excludeTrash(param.getJSONObject("basRgv")); + convert(map, wrapper); + List<BasRgv> list = basRgvService.selectList(wrapper); + return R.ok(exportSupport(list, fields)); + } + + @RequestMapping(value = "/basRgvQuery/auth") + @ManagerAuth + public R query(String condition) { + EntityWrapper<BasRgv> wrapper = new EntityWrapper<>(); + wrapper.like("rgv_no", condition); + Page<BasRgv> page = basRgvService.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (BasRgv basRgv : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", basRgv.getRgvNo()); + map.put("value", basRgv.getRgvNo()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/basRgv/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<BasRgv> wrapper = new EntityWrapper<BasRgv>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != basRgvService.selectOne(wrapper)){ + return R.parse(BaseRes.REPEAT).add(getComment(BasRgv.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + +} diff --git a/src/main/java/com/zy/asrs/controller/BasRgvErrController.java b/src/main/java/com/zy/asrs/controller/BasRgvErrController.java new file mode 100644 index 0000000..287d351 --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/BasRgvErrController.java @@ -0,0 +1,123 @@ +package com.zy.asrs.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.core.common.DateUtils; +import com.zy.asrs.entity.BasRgvErr; +import com.zy.asrs.service.BasRgvErrService; +import com.core.annotations.ManagerAuth; +import com.core.common.BaseRes; +import com.core.common.Cools; +import com.core.common.R; +import com.zy.common.web.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +public class BasRgvErrController extends BaseController { + + @Autowired + private BasRgvErrService basRgvErrService; + + @RequestMapping(value = "/basRgvErr/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") String id) { + return R.ok(basRgvErrService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/basRgvErr/list/auth") + @ManagerAuth + public R list(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<BasRgvErr> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + return R.ok(basRgvErrService.selectPage(new Page<>(curr, limit), wrapper)); + } + + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ + for (Map.Entry<String, Object> entry : map.entrySet()){ + String val = String.valueOf(entry.getValue()); + if (val.contains(RANGE_TIME_LINK)){ + String[] dates = val.split(RANGE_TIME_LINK); + wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); + wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + } else { + wrapper.like(entry.getKey(), val); + } + } + } + + @RequestMapping(value = "/basRgvErr/add/auth") + @ManagerAuth + public R add(BasRgvErr basRgvErr) { + basRgvErrService.insert(basRgvErr); + return R.ok(); + } + + @RequestMapping(value = "/basRgvErr/update/auth") + @ManagerAuth + public R update(BasRgvErr basRgvErr){ + if (Cools.isEmpty(basRgvErr) || null==basRgvErr.getErrorCode()){ + return R.error(); + } + basRgvErrService.updateById(basRgvErr); + return R.ok(); + } + + @RequestMapping(value = "/basRgvErr/delete/auth") + @ManagerAuth + public R delete(@RequestParam(value="ids[]") Long[] ids){ + for (Long id : ids){ + basRgvErrService.deleteById(id); + } + return R.ok(); + } + + @RequestMapping(value = "/basRgvErr/export/auth") + @ManagerAuth + public R export(@RequestBody JSONObject param){ + EntityWrapper<BasRgvErr> wrapper = new EntityWrapper<>(); + List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); + Map<String, Object> map = excludeTrash(param.getJSONObject("basRgvErr")); + convert(map, wrapper); + List<BasRgvErr> list = basRgvErrService.selectList(wrapper); + return R.ok(exportSupport(list, fields)); + } + + @RequestMapping(value = "/basRgvErrQuery/auth") + @ManagerAuth + public R query(String condition) { + EntityWrapper<BasRgvErr> wrapper = new EntityWrapper<>(); + wrapper.like("id", condition); + Page<BasRgvErr> page = basRgvErrService.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (BasRgvErr basRgvErr : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", basRgvErr.getErrorCode()); + map.put("value", basRgvErr.getErrorCode()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/basRgvErr/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<BasRgvErr> wrapper = new EntityWrapper<BasRgvErr>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != basRgvErrService.selectOne(wrapper)){ + return R.parse(BaseRes.REPEAT).add(getComment(BasRgvErr.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + +} diff --git a/src/main/java/com/zy/asrs/entity/BasRgv.java b/src/main/java/com/zy/asrs/entity/BasRgv.java new file mode 100644 index 0000000..b6c5525 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/BasRgv.java @@ -0,0 +1,209 @@ +package com.zy.asrs.entity; + +import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.enums.IdType; +import com.baomidou.mybatisplus.annotations.TableField; +import com.core.common.SpringUtils; +import com.zy.system.service.UserService; +import com.zy.system.entity.User; +import java.text.SimpleDateFormat; +import java.util.Date; +import org.springframework.format.annotation.DateTimeFormat; +import com.core.common.SpringUtils; +import com.zy.system.service.UserService; +import com.zy.system.entity.User; +import java.text.SimpleDateFormat; +import java.util.Date; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +@Data +@TableName("asr_bas_rgv") +public class BasRgv implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * RGV缂栧彿 + */ + @ApiModelProperty(value= "RGV缂栧彿") + @TableId(value = "rgv_no", type = IdType.INPUT) + @TableField("rgv_no") + private Integer rgvNo; + + /** + * 鍙叆 + */ + @ApiModelProperty(value= "鍙叆") + @TableField("in_enable") + private Integer inEnable; + + /** + * 鍙嚭 + */ + @ApiModelProperty(value= "鍙嚭") + @TableField("out_enable") + private Integer outEnable; + + /** + * 浣滀笟鎬� + */ + @ApiModelProperty(value= "浣滀笟鎬�") + @TableField("rgv_sts") + private Integer rgvSts; + + /** + * 浠诲姟鍙� + */ + @ApiModelProperty(value= "浠诲姟鍙�") + @TableField("wrk_no1") + private Integer wrkNo1; + + /** + * 鍫嗗灈鏈哄彿 + */ + @ApiModelProperty(value= "鍫嗗灈鏈哄彿") + @TableField("wrk_no2") + private Integer wrkNo2; + + /** + * 閿欒鐮� + */ + @ApiModelProperty(value= "閿欒鐮�") + @TableField("rgv_err") + private Long rgvErr; + + /** + * 鏍囪 + */ + @ApiModelProperty(value= "鏍囪") + @TableField("pak_mk") + private String pakMk; + + /** + * 鐘舵�� 1: 姝e父 0: 绂佺敤 + */ + @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ") + private Integer status; + + /** + * 娣诲姞浜哄憳 + */ + @ApiModelProperty(value= "娣诲姞浜哄憳") + @TableField("create_by") + private Long createBy; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("create_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 淇敼浜哄憳 + */ + @ApiModelProperty(value= "淇敼浜哄憳") + @TableField("update_by") + private Long updateBy; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("update_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 澶囨敞 + */ + @ApiModelProperty(value= "澶囨敞") + private String memo; + + public BasRgv() {} + + public BasRgv(Integer rgvNo,Integer inEnable,Integer outEnable,Integer rgvSts,Integer wrkNo1,Integer wrkNo2,Long rgvErr,String pakMk,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { + this.rgvNo = rgvNo; + this.inEnable = inEnable; + this.outEnable = outEnable; + this.rgvSts = rgvSts; + this.wrkNo1 = wrkNo1; + this.wrkNo2 = wrkNo2; + this.rgvErr = rgvErr; + this.pakMk = pakMk; + this.status = status; + this.createBy = createBy; + this.createTime = createTime; + this.updateBy = updateBy; + this.updateTime = updateTime; + this.memo = memo; + } + +// BasRgv basRgv = new BasRgv( +// null, // RGV缂栧彿[闈炵┖] +// null, // 鍙叆 +// null, // 鍙嚭 +// null, // 浣滀笟鎬� +// null, // 浠诲姟鍙� +// null, // 鍫嗗灈鏈哄彿 +// null, // 閿欒鐮� +// null, // 鏍囪 +// null, // 鐘舵�� +// null, // 娣诲姞浜哄憳 +// null, // 娣诲姞鏃堕棿 +// null, // 淇敼浜哄憳 +// null, // 淇敼鏃堕棿 +// null // 澶囨敞 +// ); + + public String getStatus$(){ + if (null == this.status){ return null; } + switch (this.status){ + case 1: + return "姝e父"; + case 0: + return "绂佺敤"; + default: + return String.valueOf(this.status); + } + } + + public String getCreateBy$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.createBy); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getId()); + } + return null; + } + + public String getCreateTime$(){ + if (Cools.isEmpty(this.createTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); + } + + public String getUpdateBy$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.updateBy); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getId()); + } + return null; + } + + public String getUpdateTime$(){ + if (Cools.isEmpty(this.updateTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); + } + + +} diff --git a/src/main/java/com/zy/asrs/entity/BasRgvErr.java b/src/main/java/com/zy/asrs/entity/BasRgvErr.java new file mode 100644 index 0000000..d9558ea --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/BasRgvErr.java @@ -0,0 +1,127 @@ +package com.zy.asrs.entity; + +import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.enums.IdType; +import com.baomidou.mybatisplus.annotations.TableField; +import com.core.common.SpringUtils; +import com.zy.system.service.UserService; +import com.zy.system.entity.User; +import java.text.SimpleDateFormat; +import java.util.Date; +import org.springframework.format.annotation.DateTimeFormat; +import com.core.common.SpringUtils; +import com.zy.system.service.UserService; +import com.zy.system.entity.User; +import java.text.SimpleDateFormat; +import java.util.Date; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +@Data +@TableName("asr_bas_rgv_err") +public class BasRgvErr implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 寮傚父鐮� + */ + @ApiModelProperty(value= "寮傚父鐮�") + @TableId(value = "error_code", type = IdType.INPUT) + @TableField("error_code") + private Long errorCode; + + /** + * 寮傚父 + */ + @ApiModelProperty(value= "寮傚父") + @TableField("err_name") + private String errName; + + /** + * 淇敼浜哄憳 + */ + @ApiModelProperty(value= "淇敼浜哄憳") + @TableField("modi_user") + private Long modiUser; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("modi_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date modiTime; + + /** + * 娣诲姞浜哄憳 + */ + @ApiModelProperty(value= "娣诲姞浜哄憳") + @TableField("appe_user") + private Long appeUser; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("appe_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date appeTime; + + public BasRgvErr() {} + + public BasRgvErr(Long errorCode,String errName,Long modiUser,Date modiTime,Long appeUser,Date appeTime) { + this.errorCode = errorCode; + this.errName = errName; + this.modiUser = modiUser; + this.modiTime = modiTime; + this.appeUser = appeUser; + this.appeTime = appeTime; + } + +// BasRgvErr basRgvErr = new BasRgvErr( +// null, // 寮傚父鐮乕闈炵┖] +// null, // 寮傚父 +// null, // 淇敼浜哄憳 +// null, // 淇敼鏃堕棿 +// null, // 娣诲姞浜哄憳 +// null // 娣诲姞鏃堕棿 +// ); + + public String getModiUser$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.modiUser); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getNickname()); + } + return null; + } + + public String getModiTime$(){ + if (Cools.isEmpty(this.modiTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); + } + + public String getAppeUser$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.appeUser); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getNickname()); + } + return null; + } + + public String getAppeTime$(){ + if (Cools.isEmpty(this.appeTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); + } + + +} diff --git a/src/main/java/com/zy/asrs/mapper/BasRgvErrMapper.java b/src/main/java/com/zy/asrs/mapper/BasRgvErrMapper.java new file mode 100644 index 0000000..4b3a44e --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/BasRgvErrMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.zy.asrs.entity.BasRgvErr; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface BasRgvErrMapper extends BaseMapper<BasRgvErr> { + +} diff --git a/src/main/java/com/zy/asrs/mapper/BasRgvMapper.java b/src/main/java/com/zy/asrs/mapper/BasRgvMapper.java new file mode 100644 index 0000000..cb45640 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/BasRgvMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.zy.asrs.entity.BasRgv; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface BasRgvMapper extends BaseMapper<BasRgv> { + +} diff --git a/src/main/java/com/zy/asrs/service/BasRgvErrService.java b/src/main/java/com/zy/asrs/service/BasRgvErrService.java new file mode 100644 index 0000000..754bb63 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/BasRgvErrService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.BasRgvErr; +import com.baomidou.mybatisplus.service.IService; + +public interface BasRgvErrService extends IService<BasRgvErr> { + +} diff --git a/src/main/java/com/zy/asrs/service/BasRgvService.java b/src/main/java/com/zy/asrs/service/BasRgvService.java new file mode 100644 index 0000000..12d4aba --- /dev/null +++ b/src/main/java/com/zy/asrs/service/BasRgvService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.zy.asrs.entity.BasRgv; +import com.baomidou.mybatisplus.service.IService; + +public interface BasRgvService extends IService<BasRgv> { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java new file mode 100644 index 0000000..dcf62fd --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.zy.asrs.mapper.BasRgvErrMapper; +import com.zy.asrs.entity.BasRgvErr; +import com.zy.asrs.service.BasRgvErrService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service("basRgvErrService") +public class BasRgvErrServiceImpl extends ServiceImpl<BasRgvErrMapper, BasRgvErr> implements BasRgvErrService { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/BasRgvServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasRgvServiceImpl.java new file mode 100644 index 0000000..36c7bb0 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/BasRgvServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.zy.asrs.mapper.BasRgvMapper; +import com.zy.asrs.entity.BasRgv; +import com.zy.asrs.service.BasRgvService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service("basRgvService") +public class BasRgvServiceImpl extends ServiceImpl<BasRgvMapper, BasRgv> implements BasRgvService { + +} diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java index 79e22e1..e776910 100644 --- a/src/main/java/com/zy/common/CodeBuilder.java +++ b/src/main/java/com/zy/common/CodeBuilder.java @@ -20,7 +20,7 @@ generator.url="127.0.0.1:1433;databasename=ghtzasrs"; generator.username="sa"; generator.password="sa@123"; - generator.table="sys_saas_log"; + generator.table="asr_bas_rgv_err"; generator.packagePath="com.zy.asrs"; generator.js = false; generator.html = false; diff --git a/src/main/java/com/zy/core/RgvThread.java b/src/main/java/com/zy/core/RgvThread.java new file mode 100644 index 0000000..503000f --- /dev/null +++ b/src/main/java/com/zy/core/RgvThread.java @@ -0,0 +1,4 @@ +package com.zy.core; + +public interface RgvThread extends ThreadHandler{ +} diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index a97d9a0..415ce12 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -59,6 +59,10 @@ for (Slave barcode : slaveProperties.getBarcode()) { MessageQueue.init(SlaveType.Barcode, barcode); } + // 鍒濆鍖朢gv灏忚溅mq + for (Slave rgv : slaveProperties.getRgv()) { + MessageQueue.init(SlaveType.Rgv, rgv); + } // // 鍒濆鍖朙ed鐏痬q // for (Slave led : slaveProperties.getLed()) { // MessageQueue.init(SlaveType.Led, led); diff --git a/src/main/java/com/zy/core/cache/MessageQueue.java b/src/main/java/com/zy/core/cache/MessageQueue.java index b98b430..cdabb4b 100644 --- a/src/main/java/com/zy/core/cache/MessageQueue.java +++ b/src/main/java/com/zy/core/cache/MessageQueue.java @@ -29,6 +29,7 @@ // 鍙拌溅mq浜ゆ崲鏈� private static final Map<Integer, ConcurrentLinkedQueue<Task>> CAR_EXCHANGE = new ConcurrentHashMap<>(); + private static final Map<Integer, LinkedBlockingQueue<Task>> RGV_EXCHANGE = new ConcurrentHashMap<>(); /** * mq 浜ゆ崲鏈哄垵濮嬪寲 */ @@ -36,6 +37,9 @@ switch (type) { case Crn: CRN_EXCHANGE.put(slave.getId(), new LinkedBlockingQueue<>(1)); + break; + case Rgv: + RGV_EXCHANGE.put(slave.getId(), new LinkedBlockingQueue<>(1)); break; case Devp: DEVP_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>()); @@ -65,6 +69,8 @@ switch (type) { case Crn: return CRN_EXCHANGE.get(id).offer(task); + case Rgv: + return RGV_EXCHANGE.get(id).offer(task); case Devp: return DEVP_EXCHANGE.get(id).offer(task); case Barcode: @@ -88,6 +94,8 @@ switch (type) { case Crn: return CRN_EXCHANGE.get(id).poll(); + case Rgv: + return RGV_EXCHANGE.get(id).poll(); case Devp: return DEVP_EXCHANGE.get(id).poll(); case Barcode: @@ -110,6 +118,8 @@ switch (type) { case Crn: return CRN_EXCHANGE.get(id).peek(); + case Rgv: + return RGV_EXCHANGE.get(id).peek(); case Devp: return DEVP_EXCHANGE.get(id).peek(); case Barcode: @@ -128,9 +138,11 @@ public static void clear(SlaveType type, Integer id){ switch (type) { case Crn: - CRN_EXCHANGE.get(id).clear(); break; + case Rgv: + RGV_EXCHANGE.get(id).clear(); + break; case Devp: DEVP_EXCHANGE.get(id).clear(); break; diff --git a/src/main/java/com/zy/core/cache/OutputQueue.java b/src/main/java/com/zy/core/cache/OutputQueue.java index 6563854..a5c050d 100644 --- a/src/main/java/com/zy/core/cache/OutputQueue.java +++ b/src/main/java/com/zy/core/cache/OutputQueue.java @@ -17,4 +17,8 @@ public static ArrayBlockingQueue<JSONObject> BARCODE = new ArrayBlockingQueue<>(32); // 纾呯Г杈撳嚭鏃ュ織 public static ArrayBlockingQueue<JSONObject> SCALE = new ArrayBlockingQueue<>(32); + + // 鍫嗗灈鏈鸿緭鍑烘棩蹇� + public static ArrayBlockingQueue<String> RGV = new ArrayBlockingQueue<>(32); + } diff --git a/src/main/java/com/zy/core/enums/RgvModeType.java b/src/main/java/com/zy/core/enums/RgvModeType.java new file mode 100644 index 0000000..3a344bb --- /dev/null +++ b/src/main/java/com/zy/core/enums/RgvModeType.java @@ -0,0 +1,43 @@ +package com.zy.core.enums; + +public enum RgvModeType { + + NONE(-1, "绂荤嚎"), + STOP(0, "鍏虫満"), + HAND(1, "鎵嬪姩"), + HALF_AUTO(2, "鍗婅嚜鍔�"), + AUTO(3, "鑷姩"), + AUTO2(100, "鍏跺畠"), + ; + + public Integer id; + public String desc; + RgvModeType(Integer id, String desc) { + this.id = id; + this.desc = desc; + } + + public static RgvModeType get(Short id) { + if (null == id) { + return null; + } + for (RgvModeType type : RgvModeType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return null; + } + + public static RgvModeType get(RgvModeType type) { + if (null == type) { + return null; + } + for (RgvModeType rgvModeType : RgvModeType.values()) { + if (rgvModeType == type) { + return rgvModeType; + } + } + return null; + } +} diff --git a/src/main/java/com/zy/core/enums/RgvStatusType.java b/src/main/java/com/zy/core/enums/RgvStatusType.java new file mode 100644 index 0000000..2b1abff --- /dev/null +++ b/src/main/java/com/zy/core/enums/RgvStatusType.java @@ -0,0 +1,46 @@ +package com.zy.core.enums; + +public enum RgvStatusType { + + NONE(-1, "绂荤嚎"), + IDLE(0, "绌洪棽"), + WORKING(1, "浣滀笟涓�"), + SOS(2, "鎶ヨ"), + WORKING1(3, "浣滀笟涓�"), + FETCHING(11, "鍙栬揣涓�"), + PUTTING(12, "鏀捐揣涓�"), + WAITING(90, "浠诲姟瀹屾垚绛夊緟WCS纭"), + FETCHWAITING(91, "鍙栬揣浠诲姟瀹屾垚绛夊緟WCS纭"), + ; + + public Integer id; + public String desc; + RgvStatusType(Integer id, String desc) { + this.id = id; + this.desc = desc; + } + + public static RgvStatusType get(Short id) { + if (null == id) { + return null; + } + for (RgvStatusType type : RgvStatusType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return NONE; + } + + public static RgvStatusType get(RgvStatusType type) { + if (null == type) { + return null; + } + for (RgvStatusType rgvStatusType : RgvStatusType.values()) { + if (rgvStatusType == type) { + return rgvStatusType; + } + } + return null; + } +} diff --git a/src/main/java/com/zy/core/enums/RgvTaskModeType.java b/src/main/java/com/zy/core/enums/RgvTaskModeType.java new file mode 100644 index 0000000..cd241f4 --- /dev/null +++ b/src/main/java/com/zy/core/enums/RgvTaskModeType.java @@ -0,0 +1,47 @@ +package com.zy.core.enums; + +public enum RgvTaskModeType { + + NONE(0), // 鏃� + FETCH(1), // 鍙栬揣 + PUT(2), // 鏀捐揣 + FETCH_PUT(3), // 鍙栨斁璐� + X_MOVE(4), // 绔欎綅绉昏浆 +// Y_MOVE(5), // 绔欎綅绉昏浆 +// XY_MOVE(6), // 绔欎綅绉昏浆 + GO_ORIGIN(7), // 鍥炲師鐐� +// BACK_ORIGIN(8), // 鍥炲弽鍘熺偣 +// CLEAR(9), // 娓呴敊 + ; + + public Integer id; + RgvTaskModeType(Integer id) { + this.id = id; + } + + + public static RgvTaskModeType get(Short id) { + if (null == id) { + return null; + } + for (RgvTaskModeType type : RgvTaskModeType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return null; + } + + public static RgvTaskModeType get(RgvTaskModeType type) { + if (null == type) { + return null; + } + for (RgvTaskModeType rgvTaskModeType : RgvTaskModeType.values()) { + if (rgvTaskModeType == type) { + return rgvTaskModeType; + } + } + return null; + } + +} diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java index 56330fe..7f64d13 100644 --- a/src/main/java/com/zy/core/enums/SlaveType.java +++ b/src/main/java/com/zy/core/enums/SlaveType.java @@ -8,6 +8,7 @@ Led, Scale, Car, + Rgv ; public static SlaveType findInstance(String s){ diff --git a/src/main/java/com/zy/core/model/RgvSlave.java b/src/main/java/com/zy/core/model/RgvSlave.java new file mode 100644 index 0000000..04db042 --- /dev/null +++ b/src/main/java/com/zy/core/model/RgvSlave.java @@ -0,0 +1,57 @@ +package com.zy.core.model; + +import com.zy.core.Slave; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.ArrayList; +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Data +public class RgvSlave extends Slave { + + private Integer rack; + + private Integer slot; + + private Integer offset; + + private Boolean demo; + + // RGV鍏ュ簱婧愮珯鐐� + private List<RgvStn> rgvInSStn = new ArrayList<>(); + + // RGV鍑哄簱婧愮珯鐐� + private List<RgvStn> rgvOutSStn = new ArrayList<>(); + + // RGV鍙犵洏 + private List<RgvStn> rgvEmptyInSStn = new ArrayList<>(); + + // RGV绌烘澘鍏ュ簱 + private List<RgvStn> rgvEmptyOutSStn = new ArrayList<>(); + + // RGV鍑哄簱鐩爣绔欑偣 + private List<RgvStn> rgvDestStn = new ArrayList<>(); + + @Data + public static class RgvStn { + + // 杈撻�佺嚎plc缂栧彿 + private Integer devpPlcId; + + // RGV绔欑偣缂栧彿 + private Integer staNo; + +// // 鎺� +// private Integer row; +// +// // 鍒� +// private Integer bay; +// +// // 灞� +// private Integer lev; + + } + +} \ No newline at end of file diff --git a/src/main/java/com/zy/core/model/command/RgvCommand.java b/src/main/java/com/zy/core/model/command/RgvCommand.java new file mode 100644 index 0000000..5be8072 --- /dev/null +++ b/src/main/java/com/zy/core/model/command/RgvCommand.java @@ -0,0 +1,129 @@ +package com.zy.core.model.command; + +import com.alibaba.fastjson.annotation.JSONField; +import com.zy.core.enums.RgvTaskModeType; +import lombok.Data; + +import java.util.Calendar; +import java.util.Date; + +/** + * 鍫嗗灈鏈哄懡浠ゆ姤鏂� + * Created by vincent on 2020/8/11 + */ +@Data +public class RgvCommand { + + // Rgv缂栧彿 + private Integer rgvNo = 0; + + // 宸ヤ綅1浠诲姟瀹屾垚纭浣� + private Short ackFinish1 = 0; + + // 宸ヤ綅1浠诲姟鍙� + private Short taskNo1 = 0; + + /** + * 浠诲姟妯″紡锛� + * 0 = 鏃� + * 1 = 鍙栬揣 + * 2 = 鏀捐揣 + * 3 = 鍙栨斁璐� + */ + private Short taskMode1 = 0; + + @JSONField(serialize = false) + private RgvTaskModeType taskModeType1; + + /* + 宸ヤ綅1婧愮珯 + */ + private Short sourceStaNo1 = 0; + + /* + 宸ヤ綅1鐩爣绔� + */ + private Short destinationStaNo1 = 0; + + ////////////////////// 宸ヤ綅2瀹氫箟 ////////////////////////////////////////////////// + // 宸ヤ綅1浠诲姟瀹屾垚纭浣� + private Short ackFinish2 = 0; + + // 宸ヤ綅2浠诲姟鍙� + private Short taskNo2 = 0; + + /** + * 浠诲姟妯″紡锛� + * 0 = 鏃� + * 1 = 鍙栬揣 + * 2 = 鏀捐揣 + * 3 = 鍙栨斁璐� + */ + private Short taskMode2 = 0; + + @JSONField(serialize = false) + private RgvTaskModeType taskModeType2; + + /* + 宸ヤ綅1婧愮珯 + */ + private Short sourceStaNo2 = 0; + + /* + 宸ヤ綅1鐩爣绔� + */ + private Short destinationStaNo2 = 0; + /////////////////////////////////////////////////////////////////////////////////////// + + /** + * 浠诲姟妯″紡锛� + * 0 = 鏈‘璁� + * 1 = 宸ヤ綅1浠诲姟纭 + * 2 = 宸ヤ綅2浠诲姟纭 + * 3 = 宸ヤ綅1銆�2浠诲姟鍚屾椂纭 + */ + private Short command = 0; + + public void setTaskMode1(Short taskMode1){ + this.taskMode1 = taskMode1; + this.taskModeType1 = RgvTaskModeType.get(taskModeType1); + } + + public void setTaskMode1(RgvTaskModeType type1) { + this.taskModeType1 = type1; + this.taskMode1 = RgvTaskModeType.get(type1).id.shortValue(); + } + + public void setTaskMode2(Short taskMode2){ + this.taskMode2 = taskMode2; + this.taskModeType2 = RgvTaskModeType.get(taskModeType2); + } + + public void setTaskMode2(RgvTaskModeType type2) { + this.taskModeType2 = type2; + this.taskMode2 = RgvTaskModeType.get(type2).id.shortValue(); + } + + public static void main(String[] args) { + Date date = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + System.out.println(cal.get(Calendar.YEAR)); + //榛樿浠�0-11 + System.out.println(cal.get(Calendar.MONTH)+1); + System.out.println(cal.get(Calendar.DATE)); + int hour = cal.get(Calendar.HOUR_OF_DAY); + System.out.println("鏃�"); + System.out.println(hour); + int minute = cal.get(Calendar.MINUTE); + System.out.println("鍒�"); + System.out.println(minute); + int second = cal.get(Calendar.SECOND); + System.out.println("绉�"); + System.out.println(second); + int mm = cal.get(Calendar.DAY_OF_WEEK) - 1; // 鏄熸湡锛�0(鏃�)锝�6(鍏�) + System.out.println("绀兼嫓"); + System.out.println(mm); + } +} diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java new file mode 100644 index 0000000..1dffde9 --- /dev/null +++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java @@ -0,0 +1,231 @@ +package com.zy.core.model.protocol; + +import com.zy.asrs.entity.BasRgv; +import com.zy.core.enums.RgvModeType; +import com.zy.core.enums.RgvStatusType; +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created by vincent on 2020/8/7 + */ +@Data +public class RgvProtocol implements Cloneable{ + + private Integer RgvNo; + + /** + * 1 = 鎵嬪姩妯″紡 + * 2 = 鑷姩妯″紡 + * 3 = 鐢佃剳妯″紡 + */ + public Short mode; + + public RgvModeType modeType; + + /** + * RGV褰撳墠鐘舵�� + * 0锛氱┖闂诧紝鏃犱换鍔� + * 1锛氫綔涓氫腑 + * 2锛氭姤璀� + */ + public Short status; + + /** + * 鐘舵�佹灇涓� + */ + public RgvStatusType statusType; + + /** + * 宸ヤ綅1浠诲姟鍙� + */ + public Short taskNo1 = 0; + + /** + * RGV宸ヤ綅1褰撳墠鐘舵�� + * 0锛氱┖闂诧紝鏃犱换鍔� + * 11锛氬彇璐т腑 + * 12锛氭斁璐т腑 + * 10锛氫换鍔″畬鎴愮瓑寰匴CS纭 + */ + public Short status1; + + /** + * 鐘舵�佹灇涓� + */ + public RgvStatusType statusType1; + + /** + * 宸ヤ綅1鏈夌墿 + */ + public Short loaded1; + + /** + * RGV褰撳墠浣嶇疆 + */ + public Short RgvPos; + + /** + * 璧拌鍦ㄥ畾浣� + * 0 = 鍦ㄥ畾浣� + * 1 = 涓嶅湪瀹氫綅 + */ + public Short walkPos; + + ////////////////////// 宸ヤ綅2瀹氫箟 ////////////////////////////////////////////////// +// /** +// * 宸ヤ綅2浠诲姟鍙� +// */ +// public Short taskNo2 = 0; +// +// /** +// * RGV宸ヤ綅2褰撳墠鐘舵�� +// * 0锛氱┖闂诧紝鏃犱换鍔� +// * 11锛氬彇璐т腑 +// * 12锛氭斁璐т腑 +// * 10锛氫换鍔″畬鎴愮瓑寰匴CS纭 +// */ +// public Short status2; +// +// /** +// * 鐘舵�佹灇涓� +// */ +// public RgvStatusType statusType2; +// +// /** +// * 宸ヤ綅2鏈夌墿 +// */ +// public Short loaded2; + /////////////////////////////////////////////////////////////////////////////////////// + + /** + * 寮傚父鐮� + */ + public Short alarm; + + /** + * 蹇冭烦鎸囦护 1-2姣忕鍒囨崲涓�娆� + */ + public Short heart; + + private Short temp1; + + private Short temp2; + + private Short temp3; + + private Short temp4; + + private Short temp5; + + /** + * X琛岃蛋琛岄�熷害m/min + */ + private Float xSpeed; + + /** + * 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯m + */ + public Float xDistance; + + /** + * 鍫嗗灈鏈虹疮璁¤蛋琛屾椂闀縣 + */ + public Float xDuration; + + public void setMode(Short mode) { + this.mode = mode; + this.modeType = RgvModeType.get(mode); + } + + public void setMode(RgvModeType type) { + this.modeType = type; + this.mode = RgvModeType.get(type).id.shortValue(); + } + + public void setStatus(Short status){ + this.status = status; + this.statusType = RgvStatusType.get(status); + } + + public void setStatus(RgvStatusType type){ + this.statusType = type; + this.status = RgvStatusType.get(type).id.shortValue(); + } + + public void setStatus1(Short status1){ + this.status1 = status1; + this.statusType1 = RgvStatusType.get(status1); + } + + public void setStatus1(RgvStatusType type1){ + this.statusType1 = type1; + this.status1 = RgvStatusType.get(type1).id.shortValue(); + } + +// public void setStatus2(Short status2){ +// this.status2 = status2; +// this.statusType2 = RgvStatusType.get(status2); +// } +// +// public void setStatus2(RgvStatusType type2){ +// this.statusType2 = type2; +// this.status2 = RgvStatusType.get(type2).id.shortValue(); +// } + + /** + * 鏈�杩戜竴娆″叆鍑哄簱绫诲瀷 + * I:鍏ュ簱 + * O:鍑哄簱 + */ + private String lastIo = "I"; + + + public BasRgv toSqlModel(BasRgv basRgv){ + if (alarm!=null) { + basRgv.setRgvErr(alarm.longValue()); + } + basRgv.setWrkNo1(taskNo1.intValue()); +// basRgv.setWrkNo2(taskNo2.intValue()); + return basRgv; + } + + public void setxSpeed(Short xSpeed) { + this.xSpeed = Float.valueOf(xSpeed); + } + + public void setxDistance(Short xDistance) { + this.xDistance = Float.valueOf(xDistance); + } + + public void setxDuration(Short xDuration) { + this.xDuration = Float.valueOf(xDuration); + } + + public Integer getRgvPosI(){ + //闇�瑕佹牴鎹幇鍦烘敼閫� 鏍规嵁璇诲埌鐨勫�艰幏鍙栧搴旂珯鐐逛綅缃� + Map<Short,Integer> map = new HashMap<>(); + map.put((short) 1,100);map.put((short) 2,101); + map.put((short) 3,106);map.put((short) 4,107); + map.put((short) 5,112);map.put((short) 6,113); + map.put((short) 7,119);map.put((short) 8,124); + map.put((short) 9,149);map.put((short) 10,153); + map.put((short) 11,157);map.put((short) 12,161); + if (RgvPos==null) return 0; + + return map.get(RgvPos); + } + + @Override + public RgvProtocol clone() { + try { + return (RgvProtocol) super.clone(); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java index b2e19a4..866ea67 100644 --- a/src/main/java/com/zy/core/properties/SlaveProperties.java +++ b/src/main/java/com/zy/core/properties/SlaveProperties.java @@ -4,6 +4,7 @@ import com.zy.core.model.CrnSlave; import com.zy.core.model.DevpSlave; import com.zy.core.model.LedSlave; +import com.zy.core.model.RgvSlave; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; @@ -42,4 +43,5 @@ private List<Slave> car = new ArrayList<>(); + private List<RgvSlave> rgv = new ArrayList<>(); } diff --git a/src/main/java/com/zy/core/thread/SiemensRgvThread.java b/src/main/java/com/zy/core/thread/SiemensRgvThread.java new file mode 100644 index 0000000..f77c5a8 --- /dev/null +++ b/src/main/java/com/zy/core/thread/SiemensRgvThread.java @@ -0,0 +1,489 @@ +package com.zy.core.thread; + +import HslCommunication.Core.Types.OperateResult; +import HslCommunication.Core.Types.OperateResultExOne; +import HslCommunication.Profinet.Siemens.SiemensPLCS; +import HslCommunication.Profinet.Siemens.SiemensS7Net; +import com.alibaba.fastjson.JSON; +import com.core.common.DateUtils; +import com.core.common.SpringUtils; +import com.zy.asrs.entity.BasRgv; + +import com.zy.asrs.service.BasRgvService; + +import com.zy.core.RgvThread; +import com.zy.core.cache.MessageQueue; +import com.zy.core.cache.OutputQueue; +import com.zy.core.enums.RgvStatusType; +import com.zy.core.enums.RgvTaskModeType; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.RgvSlave; +import com.zy.core.model.Task; +import com.zy.core.model.command.RgvCommand; +import com.zy.core.model.protocol.RgvProtocol; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.text.MessageFormat; +import java.util.Date; + +@Data +@Slf4j +public class SiemensRgvThread implements Runnable, RgvThread { + + private SiemensS7Net siemensNet; + private RgvSlave slave; + private RgvProtocol rgvProtocol; + /** + * 宸ヤ綅1澶嶄綅淇″彿 + */ + private boolean resetFlag1 = false; + /** + * 宸ヤ綅2澶嶄綅淇″彿 + */ + private boolean resetFlag2 = false; + + //閿佸畾鏍囪 + private boolean PakMk = true; + + public SiemensRgvThread(RgvSlave slave) { + this.slave = slave; + } + + @Override + @SuppressWarnings("InfiniteLoopStatement") + public void run() { + this.connect(); + while (true) { + try { + int step = 1; + Task task = MessageQueue.poll(SlaveType.Rgv, slave.getId()); + if (task != null) { + step = task.getStep(); + } + switch (step) { + // 璇绘暟鎹� + case 1: + readStatus(); + break; +// // 宸ヤ綅1銆�2鍐欏叆鏁版嵁 +// case 2: +// write((RgvCommand) task.getData()); +// break; + //宸ヤ綅1鍐欏叆鏁版嵁 + case 4: + write1((RgvCommand) task.getData()); + break; +// //宸ヤ綅2鍐欏叆鏁版嵁 +// case 5: +// write2((RgvCommand) task.getData()); +// break; + // 澶嶄綅 + case 3: + RgvCommand command = (RgvCommand) task.getData(); + if (null == command) { + command = new RgvCommand(); + } + command.setRgvNo(slave.getId()); // RGV缂栧彿 + command.setTaskNo1((short) 0); // 宸ヤ綔鍙� + command.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡 + command.setSourceStaNo1((short)0); // 婧愮珯 + command.setDestinationStaNo1((short)0); // 鐩爣绔� + command.setCommand((short)0); + write1(command); + break; + // 鍥炲師鐐� 閬胯 + case 9: + RgvCommand commandAvoidanceXY = (RgvCommand) task.getData(); + if (null == commandAvoidanceXY) { + commandAvoidanceXY = new RgvCommand(); + } + commandAvoidanceXY.setRgvNo(slave.getId()); // RGV缂栧彿 + commandAvoidanceXY.setTaskNo1((short) 9999); // 宸ヤ綔鍙� + commandAvoidanceXY.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣� + commandAvoidanceXY.setTaskMode1(RgvTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡 + commandAvoidanceXY.setSourceStaNo1((short)0); // 婧愮珯 + commandAvoidanceXY.setDestinationStaNo1((short)0); // 鐩爣绔� +// commandAvoidanceXY.setTaskNo2((short) 0); // 宸ヤ綔鍙� +// commandAvoidanceXY.setAckFinish2((short) 1); // 浠诲姟瀹屾垚纭浣� +// commandAvoidanceXY.setTaskMode2(RgvTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡 +// commandAvoidanceXY.setSourceStaNo2((short)0); // 婧愮珯 +// commandAvoidanceXY.setDestinationStaNo2((short)0); // 鐩爣绔� + commandAvoidanceXY.setCommand((short)0); + write(commandAvoidanceXY); + break; + default: + break; + } + Thread.sleep(500); + } catch (Exception e) { +// e.printStackTrace(); + } + + } + } + + /** + * 鍒濆鍖朢GV鐘舵�� + */ + private void initRgv() { + if (null == rgvProtocol) { + rgvProtocol = new RgvProtocol(); + } + rgvProtocol.setMode((short) -1); + rgvProtocol.setStatus((short)-1); + rgvProtocol.setTaskNo1((short)0); + rgvProtocol.setStatus1((short)-1); + rgvProtocol.setLoaded1((short)0); + rgvProtocol.setWalkPos((short)0); + rgvProtocol.setRgvPos((short)0); +// rgvProtocol.setTaskNo2((short)0); +// rgvProtocol.setStatus2((short)-1); +// rgvProtocol.setLoaded2((short)0); + rgvProtocol.setAlarm((short)0); + rgvProtocol.setxSpeed((short) 0); + rgvProtocol.setxDistance((short) 0); + rgvProtocol.setxDuration((short) 0); + } + + @Override + public boolean connect() { + boolean result = false; + siemensNet = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp()); + siemensNet.setRack(slave.getRack().byteValue()); + siemensNet.setSlot(slave.getSlot().byteValue()); + OperateResult connect = siemensNet.ConnectServer(); + if(connect.IsSuccess){ + result = true; + OutputQueue.RGV.offer(MessageFormat.format( "銆恵0}銆慠GV plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); + log.info("RGV plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + } else { + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慠GV plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); + log.error("RGV plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + initRgv(); + } +// siemensNet.ConnectClose(); + return result; + } + + /** + * 璇诲彇鐘舵�� + */ + private void readStatus(){ + try { + OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 30); + if (result.IsSuccess) { + if (null == rgvProtocol || rgvProtocol.getRgvNo() == null) { + rgvProtocol = new RgvProtocol(); + rgvProtocol.setRgvNo(slave.getId()); + } + rgvProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0)); + rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 2)); + rgvProtocol.setTaskNo1(siemensNet.getByteTransform().TransInt16(result.Content, 4)); + rgvProtocol.setStatus1(siemensNet.getByteTransform().TransInt16(result.Content, 6)); + rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransInt16(result.Content, 8)); + rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt16(result.Content, 10)); + rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12)); + rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 14)); +// rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 16)); + rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 18)); +// rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20)); + rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 22)); +// rgvProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 24)); + rgvProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 26)); +// rgvProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 28)); +// rgvProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 30)); +// rgvProtocol.setTemp5(siemensNet.getByteTransform().TransInt16(result.Content, 32)); +// rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28)); +// rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40)); +// rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48)); + + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId())); + + // 宸ヤ綅1澶嶄綅淇″彿 + if (rgvProtocol.getStatusType1().equals(RgvStatusType.WAITING) + || rgvProtocol.getStatusType1().equals(RgvStatusType.FETCHWAITING)) { + if (resetFlag1) { + RgvCommand rgvCommand = new RgvCommand(); + rgvCommand.setAckFinish1((short)1); + if (write(rgvCommand)) { + resetFlag1 = false; + } + } + } + + // 宸ヤ綅2澶嶄綅淇″彿 +// if (rgvProtocol.getStatusType2().equals(RgvStatusType.WAITING) +// || rgvProtocol.getStatusType2().equals(RgvStatusType.FETCHWAITING)) { +// if (resetFlag2) { +// RgvCommand rgvCommand = new RgvCommand(); +// rgvCommand.setAckFinish2((short)1); +// if (write(rgvCommand)) { +// resetFlag2 = false; +// } +// } +// } + + try { + // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� + BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class); + BasRgv basRgv = new BasRgv(); + basRgv.setRgvNo(slave.getId()); + basRgv.setRgvSts((int)rgvProtocol.getMode()); + if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))){ + log.error("RGV plc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + } + } catch (Exception ignore){ + System.out.println(ignore); + } + + } else { + initRgv(); + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戣鍙朢GV plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); +// log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + } + } catch (Exception e) { + e.printStackTrace(); + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戣鍙朢GV plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); +// log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + initRgv(); + } + } + + /** + * 宸ヤ綅1銆�2鍚屾椂鍐欏叆鏁版嵁 + */ + private boolean write(RgvCommand command) throws InterruptedException { + if (null == command) { + log.error("RGV鍐欏叆鍛戒护涓虹┖"); + return false; + } +// convertRow(command); + command.setRgvNo(slave.getId()); + short[] array = new short[11]; + array[0] = command.getAckFinish1(); + array[1] = command.getTaskNo1(); + array[2] = command.getTaskMode1(); + array[3] = command.getSourceStaNo1(); + array[4] = command.getDestinationStaNo1(); +// array[0] = command.getAckFinish1(); +// array[1] = command.getTaskNo1(); +// array[2] = command.getTaskMode1(); +// array[3] = command.getSourceStaNo1(); +// array[4] = command.getDestinationStaNo1(); +// array[5] = command.getAckFinish2(); +// array[6] = command.getTaskNo2(); +// array[7] = command.getTaskMode2(); +// array[8] = command.getSourceStaNo2(); +// array[9] = command.getDestinationStaNo2(); +// array[10] = command.getCommand(); + OperateResult result = siemensNet.Write("DB100.0", array); + +// if (command.getAckFinish1() == 0 && command.getAckFinish2() == 0) { +// short commandFinish = 3; //宸ヤ綅1銆�2浠诲姟鍚屾椂鍐欏叆 +// Thread.sleep(100L); +// result = siemensNet.Write("DB100.20", commandFinish); +// } + + + + if (result != null && result.IsSuccess) { + Thread.sleep(200); + this.readStatus(); + log.info("RGV 鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); + return true; + } else { + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + log.error("鍐欏叆RGV plc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + return false; + } + } + + /** + * 宸ヤ綅1鍐欏叆鏁版嵁 + */ + private boolean write1(RgvCommand command) throws InterruptedException { + if (null == command) { + log.error("RGV鍐欏叆鍛戒护涓虹┖"); + return false; + } + +// siemensNet.Write("DB100.20", command.getCommand()); + + command.setRgvNo(slave.getId()); + short[] array = new short[5]; + array[0] = command.getAckFinish1(); + array[1] = command.getTaskNo1(); + array[2] = command.getTaskMode1(); + array[3] = command.getSourceStaNo1(); + array[4] = command.getDestinationStaNo1(); + siemensNet.Write("DB100.10", command.getCommand()); + + OperateResult result = siemensNet.Write("DB100.0", array); + + if (!result.IsSuccess){ + log.error("鍐欏叆RGVplc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===> [id:{}],{}",slave.getId(),JSON.toJSON(command)); + MessageQueue.offer(SlaveType.Rgv,slave.getId(),new Task(4,command)); + Thread.sleep(100); + readStatus(); + return false; + } + + //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔� + Thread.sleep(400); + try { + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 12); + if (resultRead.IsSuccess){ + RgvCommand one = new RgvCommand(); +// one.setAckFinish1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0)); + one.setTaskNo1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); + one.setTaskMode1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); + one.setSourceStaNo1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); + one.setDestinationStaNo1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8)); + if ( + !command.getTaskNo1().equals(one.getTaskNo1()) || + !command.getTaskMode1().equals(one.getTaskMode1()) || + !command.getSourceStaNo1().equals(one.getSourceStaNo1()) || + !command.getDestinationStaNo1().equals(one.getDestinationStaNo1()) + ){ + try{ + log.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + }catch (Exception e){ + try{ + log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead)); + }catch (Exception e1){ + log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); + } + } + log.error("Rgv鍛戒护鍥炶澶辫触鍚庯紝閲嶆柊娣诲姞浠诲姟鍒伴槦鍒� ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); + MessageQueue.offer(SlaveType.Rgv, slave.getId(), new Task(4, command)); + Thread.sleep(100); + readStatus(); + return false; + }else { + log.info("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + } + } + }catch (Exception e){ + log.error("RGV鍛戒护鍦板潃鍐欏叆鍚庡洖璇诲嚭閿�"); + } + + if (command.getAckFinish1() == 0) { + if (result.IsSuccess) { + Thread.sleep(300); + //浠诲姟涓嬪彂娆℃暟 + int writeCount2 = 0; + + do { + writeCount2++; + short commandFinish = (short) 1; + result = siemensNet.Write("DB100.10", commandFinish); + if(result.IsSuccess){ + //RGV浠诲姟鍐欏叆鍚庯紝鍥炶涓�娆★紝鐪嬫槸鍚︽垚鍔� + Thread.sleep(200); + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.10", (short) 2); + if (resultRead.IsSuccess) { + commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); + if (commandFinish != 1){ + log.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + }else{ + //浠诲姟鍛戒护鍐欏叆鎴愬姛 + log.info("RGV浠诲姟纭浣�"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + break; + } + }else { + log.error("RGV浠诲姟纭浣�"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + } + } else { + log.error("RGV浠诲姟纭浣�"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + } + }while (writeCount2<5); + } + } + +// if (command.getAckFinish1() == 0) { +// short commandFinish = 1; //宸ヤ綅1浠诲姟鍐欏叆 +// Thread.sleep(200); +// result = siemensNet.Write("DB100.10", commandFinish); +// } + + + + if (result != null && result.IsSuccess) { + Thread.sleep(200); + this.readStatus(); + log.info("RGV 宸ヤ綅1鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 宸ヤ綅1鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); + return true; + } else { + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc宸ヤ綅1鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + log.error("鍐欏叆RGV plc宸ヤ綅1鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + return false; + } + } + + /** + * 宸ヤ綅2鍐欏叆鏁版嵁 + */ + private boolean write2(RgvCommand command) throws InterruptedException { + if (null == command) { + log.error("RGV鍐欏叆鍛戒护涓虹┖"); + return false; + } + + command.setRgvNo(slave.getId()); + short[] array = new short[6]; + array[0] = command.getAckFinish2(); + array[1] = command.getTaskNo2(); + array[2] = command.getTaskMode2(); + array[3] = command.getSourceStaNo2(); + array[4] = command.getDestinationStaNo2(); + array[5] = command.getCommand(); + + OperateResult result = siemensNet.Write("DB100.10", array); + + if (command.getAckFinish2() == 0) { + short commandFinish = 2; //宸ヤ綅2浠诲姟鍐欏叆 + Thread.sleep(100L); + result = siemensNet.Write("DB100.20", commandFinish); + } + + + + if (result != null && result.IsSuccess) { + Thread.sleep(200); + this.readStatus(); + log.info("RGV 宸ヤ綅2鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 宸ヤ綅2鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); + return true; + } else { + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc宸ヤ綅2鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + log.error("鍐欏叆RGV plc宸ヤ綅2鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + return false; + } + } + + @Override + public void close() { + siemensNet.ConnectClose(); + } + + /******************************************************************************************/ + /**************************************** 娴嬭瘯涓撶敤 *****************************************/ + /*****************************************************************************************/ + public static void main(String[] args) throws InterruptedException { + RgvSlave slave = new RgvSlave(); + slave.setId(1); + slave.setIp("192.168.6.9"); + slave.setRack(0); + slave.setSlot(0); + SiemensRgvThread rgvThread = new SiemensRgvThread(slave); + rgvThread.connect(); + rgvThread.readStatus(); + System.out.println(JSON.toJSONString(rgvThread.rgvProtocol)); + Thread.sleep(3000L); + + } +} diff --git a/src/main/resources/mapper/BasRgvErrMapper.xml b/src/main/resources/mapper/BasRgvErrMapper.xml new file mode 100644 index 0000000..c3eb284 --- /dev/null +++ b/src/main/resources/mapper/BasRgvErrMapper.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.zy.asrs.mapper.BasRgvErrMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasRgvErr"> + <result column="error_code" property="errorCode" /> + <result column="err_name" property="errName" /> + <result column="modi_user" property="modiUser" /> + <result column="modi_time" property="modiTime" /> + <result column="appe_user" property="appeUser" /> + <result column="appe_time" property="appeTime" /> + + </resultMap> + +</mapper> diff --git a/src/main/resources/mapper/BasRgvMapper.xml b/src/main/resources/mapper/BasRgvMapper.xml new file mode 100644 index 0000000..a826fab --- /dev/null +++ b/src/main/resources/mapper/BasRgvMapper.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.zy.asrs.mapper.BasRgvMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasRgv"> + <result column="rgv_no" property="rgvNo" /> + <result column="in_enable" property="inEnable" /> + <result column="out_enable" property="outEnable" /> + <result column="rgv_sts" property="rgvSts" /> + <result column="wrk_no1" property="wrkNo1" /> + <result column="wrk_no2" property="wrkNo2" /> + <result column="rgv_err" property="rgvErr" /> + <result column="pak_mk" property="pakMk" /> + <result column="status" property="status" /> + <result column="create_by" property="createBy" /> + <result column="create_time" property="createTime" /> + <result column="update_by" property="updateBy" /> + <result column="update_time" property="updateTime" /> + <result column="memo" property="memo" /> + + </resultMap> + +</mapper> -- Gitblit v1.9.1