src/main/java/com/zy/asrs/entity/TestMast.java
New file @@ -0,0 +1,195 @@ package com.zy.asrs.entity; import com.core.common.Cools;import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.enums.IdType; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotations.TableField; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty; import java.text.SimpleDateFormat; import java.util.Date; import io.swagger.annotations.ApiModelProperty; import java.text.SimpleDateFormat; import java.util.Date; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotations.TableName; import java.io.Serializable; @TableName("asr_test_mast") public class TestMast implements Serializable { private static final long serialVersionUID = 1L; /** * 编号 */ @ApiModelProperty(value= "编号") @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 通道 */ @ApiModelProperty(value= "") private Integer channel; /** * 库位号 */ @ApiModelProperty(value= "库位号") @TableField("loc_no") private String locNo; /** * PACK码 */ @ApiModelProperty(value= "PACK码") private String barcode; /** * 用户码 */ @ApiModelProperty(value= "用户码") private String userId; /** * 状态 0: 待申请 1: 申请中 2: 已复核;3.测试中;4 */ @ApiModelProperty(value= "状态 0: 待申请 1: 申请中 2: 已复核 3:测试中 4:完成") private Integer status; /** * 修改时间 */ @ApiModelProperty(value= "修改时间") @TableField("modi_time") private Date modiTime; /** * 添加时间 */ @ApiModelProperty(value= "添加时间") @TableField("appe_time") private Date appeTime; public TestMast() {} public TestMast(String locNo,String barcode,String userId,Integer status,Date modiTime,Date appeTime) { this.locNo = locNo; this.barcode = barcode; this.userId = userId; this.status = status; this.modiTime = modiTime; this.appeTime = appeTime; } // TestMast testMast = new TestMast( // null, // 库位号[非空] // null, // PACK码 // null, // 用户码 // null, // 状态 // null, // 修改时间 // null // 添加时间 // ); public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Integer getChannel() { return channel; } public void setChannel(Integer channel) { this.channel = channel; } public String getLocNo() { return locNo; } public void setLocNo(String locNo) { this.locNo = locNo; } public String getBarcode() { return barcode; } public void setBarcode(String barcode) { this.barcode = barcode; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public Integer getStatus() { return status; } public String getStatus$(){ if (null == this.status){ return null; } switch (this.status){ case 0: return "待申请"; case 1: return "申请中"; case 2: return "已复核"; case 3: return "测试中"; case 4: return "完成"; default: return String.valueOf(this.status); } } public void setStatus(Integer status) { this.status = status; } public Date getModiTime() { return modiTime; } public String getModiTime$(){ if (Cools.isEmpty(this.modiTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); } public void setModiTime(Date modiTime) { this.modiTime = modiTime; } public Date getAppeTime() { return appeTime; } public String getAppeTime$(){ if (Cools.isEmpty(this.appeTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); } public void setAppeTime(Date appeTime) { this.appeTime = appeTime; } } src/main/java/com/zy/asrs/mapper/TestMastMapper.java
New file @@ -0,0 +1,12 @@ package com.zy.asrs.mapper; import com.zy.asrs.entity.TestMast; import com.baomidou.mybatisplus.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Mapper @Repository public interface TestMastMapper extends BaseMapper<TestMast> { } src/main/java/com/zy/asrs/service/TestMastService.java
New file @@ -0,0 +1,8 @@ package com.zy.asrs.service; import com.zy.asrs.entity.TestMast; import com.baomidou.mybatisplus.service.IService; public interface TestMastService extends IService<TestMast> { } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -9,15 +9,13 @@ import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.TestMastMapper; import com.zy.asrs.mapper.WaitPakinMapper; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.asrs.utils.VersionUtils; import com.zy.common.model.LocTypeDto; import com.zy.common.model.MatDto; import com.zy.common.model.SearchLocParam; import com.zy.common.model.StartupDto; import com.zy.common.model.*; import com.zy.common.service.CommonService; import com.zy.common.utils.CollectionUtils; import com.zy.common.utils.HttpHandler; @@ -87,9 +85,14 @@ private BasErrLogService basErrLogService; @Autowired private BasCrnErrorMapper basCrnErrorMapper; @Autowired private TestMastService testMastService; @Value("${wms.url}") private String wmsUrl; @Value("${test.url}") private String testUrl; /** * 组托 @@ -1886,8 +1889,6 @@ } catch (Exception e) { e.printStackTrace(); } } public void outOfDevp() { @@ -1903,5 +1904,54 @@ } } /** * 根据PLC按钮测试信号,发送启动申请到测试系统 */ public void startTest() { try { // 根据输送线plc遍历 for (DevpSlave devp : slaveProperties.getDevp()) { SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); if(null != devpThread){ if (devpThread.startSignal1 == 1){ TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() .eq("channel",1).eq("status",0)); if(null != testMast){ Date now = new Date(); //http请求测试 TestDto testDto = new TestDto(); testDto.setLocNo(testMast.getLocNo()); testDto.setBarcode(testMast.getBarcode()); testDto.setUserId(testMast.getUserId()); testDto.setRequestTime(DateUtils.convert(now)); String response = new HttpHandler.Builder() .setUri(testUrl) .setPath("/testUrlPath") .setJson(JSON.toJSONString(testDto)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { //更新测试表状态 testMast.setStatus(1); testMast.setModiTime(now); testMastService.update(testMast,new EntityWrapper<TestMast>() .eq("channel",1).eq("status",0)); //复位PLC信号 boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, 0)); } else { log.error("请求接口失败!!!url:{},request:{},response:{}", testUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(testDto), response); } } } } } } catch (Exception e) { e.printStackTrace(); } } } src/main/java/com/zy/asrs/service/impl/TestMastServiceImpl.java
New file @@ -0,0 +1,12 @@ package com.zy.asrs.service.impl; import com.zy.asrs.mapper.TestMastMapper; import com.zy.asrs.entity.TestMast; import com.zy.asrs.service.TestMastService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @Service("testMastService") public class TestMastServiceImpl extends ServiceImpl<TestMastMapper, TestMast> implements TestMastService { } src/main/java/com/zy/common/CodeBuilder.java
@@ -18,8 +18,9 @@ generator.url="192.168.4.15:1433;databasename=gzynasrs"; generator.username="sa"; generator.password="sa@123"; generator.table="asr_fire_log"; generator.table="asr_test_mast"; generator.packagePath="com.zy.asrs"; generator.controller=false; generator.htmlDetail=false; generator.html=false; generator.js=false; src/main/java/com/zy/common/model/TestDto.java
New file @@ -0,0 +1,23 @@ package com.zy.common.model; import lombok.Data; /** * Created by vincent on 2020/8/6 */ @Data public class TestDto { // 库位号 private String locNo; // 用户码 private String userId; // pack码 private String barcode; //请求时间 private String requestTime; } src/main/java/com/zy/core/MainProcess.java
@@ -45,9 +45,9 @@ // mainService.ioConvert(); // 入库 ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档 mainService.generateStoreWrkFile(); // 组托 mainService.generateStoreWrkFile0(); // WMS入库 // mainService.generateStoreWrkFile0(); // WMS入库 // 拣料、并板、盘点再入库 mainService.stnToCrnStnPick(); // mainService.stnToCrnStnPick(); // 出库 ===>> 堆垛机出库站到出库站 mainService.crnStnToOutStn(); // 入出库 ===>> 堆垛机入出库作业下发 @@ -67,6 +67,9 @@ mainService.outOfDevp(); //启动测试系统测试 mainService.startTest(); } catch (Exception e) { e.printStackTrace(); } src/main/java/com/zy/core/ServerBootstrap.java
@@ -103,13 +103,13 @@ SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread); } // 初始化条码扫描仪线程 log.info("初始化Socket线程..................................................."); for (SocketSlave socket : slaveProperties.getSocket()) { SocketThread socketThread = new SocketThread(socket); new Thread(socketThread).start(); SlaveConnection.put(SlaveType.Socket, socket.getId(), socketThread); } // // 初始化条码扫描仪线程 // log.info("初始化Socket线程..................................................."); // for (SocketSlave socket : slaveProperties.getSocket()) { // SocketThread socketThread = new SocketThread(socket); // new Thread(socketThread).start(); // SlaveConnection.put(SlaveType.Socket, socket.getId(), socketThread); // } // // 初始化LED线程 // log.info("初始化LED线程..................................................."); // for (LedSlave led : slaveProperties.getLed()) { src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -82,6 +82,10 @@ case 2: write((StaProtocol)task.getData()); break; //复位测试信号 case 3: siemensS7Net.Write("DB100." + (150 + ((int)task.getData()) * 2), 0); break; default: break; } src/main/resources/application.yml
@@ -58,15 +58,33 @@ crnInStn[0]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 103 row: 3 row: 1 bay: 1 lev: 1 crnInStn[1]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 108 row: 1 bay: 19 lev: 1 # 堆垛机出库站点 crnOutStn[0]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 101 staNo: 107 row: 2 bay: 1 lev: 1 crnOutStn[1]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 108 row: 1 bay: 19 lev: 1 crnOutStn[2]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 109 row: 2 bay: 19 lev: 1 # 输送线 @@ -85,7 +103,7 @@ staNo: 103 # 出库口1 outSta[0]: staNo: 102 staNo: 104 # # 拣料入库口1 # pickSta[0]: # staNo: 103 @@ -95,19 +113,19 @@ id: 1 ip: 10.10.10.52 port: 51236 # LED1 led[0]: id: 1 ip: 10.10.10.60 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 110 #socket socket[0]: id: 1 ip: 10.10.10.100 port: 10001 # # LED1 # led[0]: # id: 1 # ip: 10.10.10.60 # port: 5005 # devpPlcId: ${wcs-slave.devp[0].id} # staArr: 110 # # #socket # socket[0]: # id: 1 # ip: 10.10.10.100 # port: 10001 # tcp服务端配置 tcp: @@ -126,4 +144,7 @@ #上下行日志打印 printPacLog: true #条码长度 barcodeLen: 8 barcodeLen: 8 test: url: 127.0.0.1:8080/test src/main/resources/mapper/TestMastMapper.xml
New file @@ -0,0 +1,17 @@ <?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.TestMastMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.TestMast"> <id column="id" property="id" /> <result column="loc_no" property="locNo" /> <result column="barcode" property="barcode" /> <result column="userId" property="userId" /> <result column="status" property="status" /> <result column="modi_time" property="modiTime" /> <result column="appe_time" property="appeTime" /> </resultMap> </mapper>