From 9891b042e48b186bbb850ab2ed445308bf5eec72 Mon Sep 17 00:00:00 2001
From: 王佳豪 <g675230687@126.com>
Date: 星期五, 04 六月 2021 15:51:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/main/java/com/zy/asrs/entity/param/CombParam.java | 11 +
src/main/webapp/views/pda/combAgv.html | 50 ++--
src/main/java/com/zy/asrs/service/BasDevpService.java | 6
src/main/java/com/zy/common/utils/HttpHandler.java | 213 +++++++++++++++++++++
src/main/java/com/zy/asrs/mapper/BasDevpMapper.java | 4
src/main/java/com/zy/common/model/agv/AgvCommand.java | 41 ++++
pom.xml | 5
src/main/java/com/zy/asrs/controller/WorkController.java | 6
src/main/java/com/zy/asrs/service/BasAgvService.java | 4
src/main/java/com/zy/asrs/service/impl/BasAgvServiceImpl.java | 42 ++++
src/main/java/com/zy/common/model/agv/AgvResult.java | 25 ++
src/main/java/com/zy/common/model/agv/AgvInfo.java | 76 +++++++
src/main/java/com/zy/common/model/enums/AgvStatusType.java | 51 +++++
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 42 ++++
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java | 5
src/main/resources/application.yml | 3
16 files changed, 559 insertions(+), 25 deletions(-)
diff --git a/pom.xml b/pom.xml
index 778ccd0..012479b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,6 +97,11 @@
<version>1.16.22</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>com.squareup.okhttp3</groupId>
+ <artifactId>okhttp</artifactId>
+ <version>3.10.0</version>
+ </dependency>
</dependencies>
<build>
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index ec04118..34d71da 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -29,6 +29,12 @@
@Autowired
private BasDevpService basDevpService;
+ @RequestMapping("/agv/put/site")
+ @ManagerAuth(memo = "鑾峰彇AGV宸ヤ綔鍖�")
+ public R availableAgvSite(){
+ return R.ok().add(basDevpService.getAgvAvailableInSite());
+ }
+
@RequestMapping("/available/put/site")
@ManagerAuth(memo = "鑾峰彇鍏ュ簱绔欑偣")
public R availablePutSite(){
diff --git a/src/main/java/com/zy/asrs/entity/param/CombParam.java b/src/main/java/com/zy/asrs/entity/param/CombParam.java
index 51f4e35..d68b66a 100644
--- a/src/main/java/com/zy/asrs/entity/param/CombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -23,6 +23,9 @@
private String billNo;
+ // 灏忚溅鍙栬揣鐐�
+ private Integer agvSite;
+
public String getWarehouse() {
return warehouse;
}
@@ -117,4 +120,12 @@
public void setBillNo(String billNo) {
this.billNo = billNo;
}
+
+ public Integer getAgvSite() {
+ return agvSite;
+ }
+
+ public void setAgvSite(Integer agvSite) {
+ this.agvSite = agvSite;
+ }
}
diff --git a/src/main/java/com/zy/asrs/mapper/BasDevpMapper.java b/src/main/java/com/zy/asrs/mapper/BasDevpMapper.java
index 668d2ca..701f745 100644
--- a/src/main/java/com/zy/asrs/mapper/BasDevpMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasDevpMapper.java
@@ -4,6 +4,7 @@
import com.zy.asrs.entity.BasDevp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -12,6 +13,9 @@
@Repository
public interface BasDevpMapper extends BaseMapper<BasDevp> {
+ @Select("select dev_no from asr_bas_devp where 1=1 and fronting = 'Y' order by dev_no")
+ List<Integer> getAgvInArea();
+
List<Integer> getAvailableInSite(@Param("typeNo") Integer typeNo);
List<Integer> getAvailableOutSite(@Param("typeNo") Integer typeNo);
diff --git a/src/main/java/com/zy/asrs/service/BasAgvService.java b/src/main/java/com/zy/asrs/service/BasAgvService.java
index a412369..9d5bc4b 100644
--- a/src/main/java/com/zy/asrs/service/BasAgvService.java
+++ b/src/main/java/com/zy/asrs/service/BasAgvService.java
@@ -5,4 +5,8 @@
public interface BasAgvService extends IService<BasAgv> {
+ BasAgv selectIdleAgv();
+
+ String getAgvWorkNo();
+
}
diff --git a/src/main/java/com/zy/asrs/service/BasDevpService.java b/src/main/java/com/zy/asrs/service/BasDevpService.java
index 8628feb..888dd5c 100644
--- a/src/main/java/com/zy/asrs/service/BasDevpService.java
+++ b/src/main/java/com/zy/asrs/service/BasDevpService.java
@@ -8,6 +8,12 @@
public interface BasDevpService extends IService<BasDevp> {
/**
+ * Agv宸ヤ綔鍖�
+ * @return
+ */
+ List<Integer> getAgvAvailableInSite();
+
+ /**
* 鍏ュ簱绔�
* @return
*/
diff --git a/src/main/java/com/zy/asrs/service/impl/BasAgvServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasAgvServiceImpl.java
index c1ab0d6..4bc5994 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasAgvServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasAgvServiceImpl.java
@@ -1,12 +1,54 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
import com.zy.asrs.mapper.BasAgvMapper;
import com.zy.asrs.entity.BasAgv;
import com.zy.asrs.service.BasAgvService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Random;
+
+@Slf4j
@Service("basAgvService")
public class BasAgvServiceImpl extends ServiceImpl<BasAgvMapper, BasAgv> implements BasAgvService {
+ @Override
+ public BasAgv selectIdleAgv() {
+ List<BasAgv> idleAgvs = this.selectList(new EntityWrapper<BasAgv>()
+ .eq("in_enable", "Y")
+ .eq("is_user", 1)
+ .eq("status", 6)
+ );
+ if (Cools.isEmpty(idleAgvs)) {
+ log.warn("娌℃湁绌洪棽鐨凙gv灏忚溅");
+ throw new CoolException("娌℃湁绌洪棽鐨凙gv灏忚溅");
+ }
+ return idleAgvs.get(0);
+ }
+
+ @Override
+ public String getAgvWorkNo() {
+ String workNo = null;
+ for (int i = 0; i < 10; i++) {
+ workNo = getRandom();
+ int count = this.selectCount(new EntityWrapper<BasAgv>().eq("task_code", workNo));
+ if (count == 0) {
+ break;
+ }
+ }
+ if (Cools.isEmpty(workNo)) {
+ throw new CoolException("涓嬪彂AGV浠诲姟閿欒锛屽伐浣滃彿寮傚父");
+ }
+ return workNo;
+ }
+
+ private String getRandom() {
+ return String.format("%04d",new Random().nextInt(9999));
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
index e505de8..df975a3 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
@@ -18,6 +18,11 @@
private WrkMastService wrkMastService;
@Override
+ public List<Integer> getAgvAvailableInSite() {
+ return this.baseMapper.getAgvInArea();
+ }
+
+ @Override
public List<Integer> getAvailableInSite() {
return this.baseMapper.getAvailableInSite(1);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 3b05adb..cd015e6 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1,34 +1,48 @@
package com.zy.asrs.service.impl;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasAgv;
import com.zy.asrs.entity.MatCode;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.param.CombParam;
+import com.zy.asrs.service.BasAgvService;
import com.zy.asrs.service.MatCodeService;
import com.zy.asrs.service.MobileService;
import com.zy.asrs.service.WaitPakinService;
import com.zy.asrs.utils.VersionUtils;
+import com.zy.common.model.agv.AgvCommand;
+import com.zy.common.model.agv.AgvResult;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.io.IOException;
import java.util.Date;
/**
* 绉诲姩绔湇鍔℃牳蹇冪被
* Created by vincent on 2020/6/28
*/
+@Slf4j
@Service
public class MobileServiceImpl implements MobileService {
+ @Value("${agv.url}")
+ private String agvUrl;
@Autowired
private MatCodeService matCodeService;
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private BasAgvService basAgvService;
@Override
@Transactional
@@ -66,6 +80,34 @@
throw new CoolException("淇濆瓨鏁版嵁澶辫触");
}
}
+ // 灏忚溅鍏ュ簱鎼繍鍛戒护 ----------------------------------------------------
+ if (!Cools.isEmpty(param.getAgvSite())) {
+ BasAgv idleAgv = basAgvService.selectIdleAgv();
+ AgvCommand command = new AgvCommand();
+ command.setAgvId(idleAgv.getAgvId());
+ command.setInterCode(basAgvService.getAgvWorkNo());
+ command.setBeginLoc(String.valueOf(param.getAgvSite()));
+ command.setEndLoc("1088");
+ log.info(JSON.toJSONString(command));
+ String result;
+ try {
+ result = new HttpHandler.Builder()
+ .setUri(agvUrl + "/api/interfaceTask/SendTaskByThirdParty")
+ .setJson(JSON.toJSONString(command))
+ .build()
+ .doPost();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new CoolException("璁块棶AGV鎺ュ彛澶辫触");
+ }
+ AgvResult agvResult = JSON.parseObject(result, AgvResult.class);
+ log.info(JSON.toJSONString(agvResult));
+ if (!agvResult.getResult()) {
+ log.error("agv鍛戒护鍙戦�佸け璐agvId={}]锛岄敊璇俊鎭�={}", command.getAgvId(), agvResult.getExplain());
+ throw new CoolException("agv鍛戒护鍙戦�佸け璐agvId=" + command.getAgvId() + "]锛岄敊璇俊鎭�=" + agvResult.getExplain());
+ }
+ }
+
} else {
WaitPakin waitPakin = new WaitPakin();
waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
diff --git a/src/main/java/com/zy/common/model/agv/AgvCommand.java b/src/main/java/com/zy/common/model/agv/AgvCommand.java
new file mode 100644
index 0000000..cfaf0f9
--- /dev/null
+++ b/src/main/java/com/zy/common/model/agv/AgvCommand.java
@@ -0,0 +1,41 @@
+package com.zy.common.model.agv;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 2021/5/19
+ */
+@Data
+public class AgvCommand {
+
+ // 灏忚溅鍙�
+ private Integer AgvId;
+
+ // 浠诲姟鍙�
+ private String InterCode;
+
+ // 浠诲姟浼樺厛绾� 鍥哄畾 - 5
+ private String Sort = "5";
+
+ // 寮�濮嬭揣浣�
+ private String BeginLoc;
+
+ // 寮�濮嬭揣浣嶅眰绾� 鍥哄畾 - 1
+ private String BeginLevel = "1";
+
+ // 鐩殑璐т綅
+ private String EndLoc;
+
+ // 鐩殑璐т綅灞傜骇
+ private String EndLevel = "1";
+
+ // 浠诲姟绫诲瀷锛�3锛氬彇鏀捐揣锛�5锛氬彇璐�+杞借揣琛岃蛋锛�6锛� 杞借揣琛岃蛋+鏀捐揣锛� 鍥哄畾 3
+ private String TaskType = "3";
+
+ // 鎵樼洏鐮�
+ private String TrayCode;
+
+ // 鎵樼洏绫诲瀷 鍥哄畾 1
+ private String SalverType = "1";
+
+}
diff --git a/src/main/java/com/zy/common/model/agv/AgvInfo.java b/src/main/java/com/zy/common/model/agv/AgvInfo.java
new file mode 100644
index 0000000..ca004f5
--- /dev/null
+++ b/src/main/java/com/zy/common/model/agv/AgvInfo.java
@@ -0,0 +1,76 @@
+package com.zy.common.model.agv;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.core.common.Cools;
+import com.zy.asrs.entity.BasAgv;
+import com.zy.common.model.enums.AgvStatusType;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Created by vincent on 2021/5/19
+ */
+@Data
+public class AgvInfo implements Cloneable, Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ // 灏忚溅缂栧彿
+ private Integer Id;
+
+ // 鏄惁鍚敤锛坱rue:鍚敤,false:绂佺敤锛�
+ private Boolean IsUse;
+
+ // 褰撳墠浣嶇疆鐐逛綅
+ private String CurrentNode;
+
+ // 褰撳墠鐢甸噺
+ private String Power;
+
+ // 涓�鑸姸鎬侊紙01:鍓嶅線鍙栬揣鐐�,02:鍙栬揣鐐瑰彇璐�,03:鍓嶅線閫佽揣鐐�,04:閫佽揣鐐规斁璐�,05:浠诲姟瀹屾垚,06:绌洪棽,07:鏁呴殰,08:鍏呯數涓�,09:鎵嬪姩,10:澶辫仈,11:绂荤嚎,12:琛岃蛋锛�
+ private String Status;
+
+ @JSONField(serialize = false)
+ private transient AgvStatusType agvStatus;
+
+ // 鏁呴殰鐮�
+ private String Fault;
+
+ // 浠诲姟鍙�
+ private String taskcode;
+
+ // 浠诲姟鐐�
+ private String Point_Number;
+
+ // 浠诲姟绫诲瀷锛�1:琛岃蛋,2:鍙栬揣,3:鏀捐揣,4:鍏呯數锛�
+ private String ActionType;
+
+
+ @Override
+ public AgvInfo clone() {
+ try {
+ return (AgvInfo) super.clone();
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public BasAgv toSqlModel(){
+ BasAgv basAgv = new BasAgv();
+ basAgv.setAgvId(this.getId());
+ basAgv.setIsUser(this.getIsUse()?1:0);
+ basAgv.setCurrentNode(this.getCurrentNode());
+ basAgv.setPower(this.getPower());
+ basAgv.setStatus(Cools.isEmpty(this.getAgvStatus())?0:Integer.parseInt(this.getAgvStatus().id));
+ basAgv.setFault(this.getFault());
+ basAgv.setTaskCode(this.getTaskcode());
+ basAgv.setEndLoc(this.getPoint_Number());
+ basAgv.setAction(Cools.isEmpty(this.getActionType())?0:Integer.parseInt(this.getActionType()));
+ basAgv.setModiTime(new Date());
+ return basAgv;
+ }
+
+}
diff --git a/src/main/java/com/zy/common/model/agv/AgvResult.java b/src/main/java/com/zy/common/model/agv/AgvResult.java
new file mode 100644
index 0000000..3e8b47e
--- /dev/null
+++ b/src/main/java/com/zy/common/model/agv/AgvResult.java
@@ -0,0 +1,25 @@
+package com.zy.common.model.agv;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 2021/5/19
+ */
+@Data
+public class AgvResult {
+
+ // 鍙嶉缁撴灉
+ private Boolean Result;
+
+ // 缁撴灉璇存槑
+ private String Explain;
+
+ public AgvResult() {
+ }
+
+ public AgvResult(Boolean result, String explain) {
+ Result = result;
+ Explain = explain;
+ }
+
+}
diff --git a/src/main/java/com/zy/common/model/enums/AgvStatusType.java b/src/main/java/com/zy/common/model/enums/AgvStatusType.java
new file mode 100644
index 0000000..f757a97
--- /dev/null
+++ b/src/main/java/com/zy/common/model/enums/AgvStatusType.java
@@ -0,0 +1,51 @@
+package com.zy.common.model.enums;
+
+public enum AgvStatusType {
+
+ GOTO_TAKE("01", "鍓嶅線鍙栬揣鐐�"),
+ TAKING("02", "鍙栬揣鐐瑰彇璐�"),
+ GOTO_PUT("03", "鍓嶅線閫佽揣鐐�"),
+ PUTTING("04", "閫佽揣鐐规斁璐�"),
+ COMPLETE("05", "浠诲姟瀹屾垚"),
+ IDLE("06", "绌洪棽"),
+ ERROR("07", "鏁呴殰"),
+ CHARGING("08", "鍏呯數涓�"),
+ HANDLE("09", "鎵嬪姩"),
+ DISPLAY("010", "澶辫仈"),
+ SOS("011" , "绂荤嚎"),
+ WORKING("012", "琛岃蛋"),
+
+ ;
+
+ public String id;
+ public String desc;
+ AgvStatusType(String id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public static AgvStatusType get(String id) {
+ if (null == id) {
+ return null;
+ }
+ for (AgvStatusType type : AgvStatusType.values()) {
+ if (type.id.equals(id)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static AgvStatusType get(AgvStatusType type) {
+ if (null == type) {
+ return null;
+ }
+ for (AgvStatusType agvStatusType : AgvStatusType.values()) {
+ if (agvStatusType == type) {
+ return agvStatusType;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/zy/common/utils/HttpHandler.java b/src/main/java/com/zy/common/utils/HttpHandler.java
new file mode 100644
index 0000000..70adcc7
--- /dev/null
+++ b/src/main/java/com/zy/common/utils/HttpHandler.java
@@ -0,0 +1,213 @@
+package com.zy.common.utils;
+
+
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Http鍗忚瀹㈡埛绔�
+ * @author luxiaotao
+ * @date 2018-9-27
+ */
+public class HttpHandler {
+
+ private static final Integer DEFAULT_TIMEOUT_SECONDS = 5;
+ private static final MediaType MEDIA_TYPE = MediaType.parse("application/json;charset=utf-8");
+
+ private String uri;
+ private String path;
+ private String json;
+ private Map<String, Object> params;
+ private Map<String, Object> headers;
+ private boolean https;
+ private Integer timeout;
+ private TimeUnit timeUnit;
+
+ public HttpHandler(Builder builder){
+ this.uri = builder.uri;
+ this.path = builder.path;
+ this.json = builder.json;
+ this.params = builder.params;
+ this.headers = builder.headers;
+ this.https = builder.https;
+ this.timeout = builder.timeout;
+ this.timeUnit = builder.timeUnit;
+ }
+
+ /**
+ * GET璇锋眰鎵ц
+ * @return the HttpHandler response
+ */
+ public String doGet() throws IOException {
+ String url = paramsToUrl(uri, path, params, https);
+ Request.Builder headerBuilder = new Request.Builder();
+ if (headers != null && headers.size()>0){
+ for (Map.Entry<String, Object> entry : headers.entrySet()){
+ headerBuilder.addHeader(entry.getKey(), String.valueOf(entry.getValue()));
+ }
+ }
+ Request request = headerBuilder.url(url).build();
+ Response response = getClient(timeout, timeUnit).newCall(request).execute();
+ return response.isSuccessful() ? response.body().string() : null;
+ }
+
+ /**
+ * POST璇锋眰鎵ц
+ * @return the HttpHandler response
+ */
+ public String doPost() throws IOException {
+ Request request;
+ Request.Builder headerBuilder = new Request.Builder();
+ if (headers != null && headers.size()>0){
+ for (Map.Entry<String, Object> entry : headers.entrySet()){
+ headerBuilder.addHeader(entry.getKey(), String.valueOf(entry.getValue()));
+ }
+ }
+ if (json == null || "".equals(json)){
+ FormBody.Builder builder = new FormBody.Builder();
+ for (Map.Entry<String, Object> entry : params.entrySet()){
+ builder.add(entry.getKey(), String.valueOf(entry.getValue()));
+ }
+ FormBody body = builder.build();
+ request = headerBuilder
+ .url((https?"https://":"http://")+uri+path)
+ .post(body)
+ .build();
+ } else {
+ RequestBody body = RequestBody.create(MEDIA_TYPE, json);
+ Request.Builder builder = headerBuilder.url((https?"https://":"http://")+uri+path);
+ builder.header("Content-Type", "application/json;charset=UTF-8");
+ request = builder.post(body).build();
+
+ }
+ Call call = getClient(timeout, timeUnit).newCall(request);
+ Response response = call.execute();
+ return response.body().string();
+
+ }
+
+ /**
+ * get璇锋眰鍙傛暟鎷兼帴鏂规硶
+ * @return 璇锋眰琛�
+ */
+ private String paramsToUrl(String uri, String path, Map<String, Object> params, boolean isHttps) {
+ StringBuilder res = new StringBuilder();
+ res.append(isHttps ? "https://" : "http://");
+ res.append(uri);
+ if (path.length() > 0 && !(path.charAt(0) == '/')){
+ res.append("/");
+ }
+ res.append(path);
+ Optional.ofNullable(params).ifPresent(
+ args -> {
+ res.append("?");
+ args.forEach((key, value) -> {
+ res.append(key);
+ res.append("=");
+ res.append(value);
+ res.append("&");
+ });
+ }
+ );
+ String url = res.toString();
+ if ("&".equals(url.substring(url.length()-1, url.length()))){
+ url = url.substring(0, url.length()-1);
+ }
+ return url;
+ }
+
+ /**
+ * 鑾峰彇 okHttpClient
+ * @return the HttpHandler instance
+ */
+ private OkHttpClient getClient(Integer timeout, TimeUnit timeUnit){
+ return new OkHttpClient
+ .Builder()
+ .connectTimeout(timeout, timeUnit)
+ .readTimeout(timeout, timeUnit)
+ .build();
+ }
+
+ /**
+ * Http鍗忚鎶ユ枃寤洪�犺��
+ */
+ public static class Builder {
+
+ private String uri;
+ private String path;
+ private String json;
+ private Map<String, Object> params;
+ private Map<String, Object> headers;
+ private boolean https;
+ private Integer timeout;
+ private TimeUnit timeUnit;
+
+ {
+ // 榛樿5s瓒呮椂
+ timeout = DEFAULT_TIMEOUT_SECONDS;
+ timeUnit = TimeUnit.SECONDS;
+ path = "";
+ }
+
+ /**
+ * 寤洪�犲櫒
+ * @return the HttpHandler instance
+ */
+ public HttpHandler build(){
+ if (null == this.uri || "".equals(this.uri)){
+ throw new RuntimeException("uri is null");
+ }
+ if (this.uri.startsWith("http://")){
+ this.uri = this.uri.substring(6,uri.length());
+ } else if (this.uri.startsWith("https://")){
+ this.uri = this.uri.substring(7,uri.length());
+ }
+ return new HttpHandler(this);
+ }
+
+ public Builder setUri(String uri) {
+ this.uri = uri;
+ return this;
+ }
+
+ public Builder setPath(String path) {
+ if (!path.startsWith("/")){
+ path = "/" + path;
+ }
+ this.path = path;
+ return this;
+ }
+
+ public Builder setTimeout(Integer timeout, TimeUnit timeUnit) {
+ this.timeout = timeout;
+ this.timeUnit = timeUnit;
+ return this;
+ }
+
+ public Builder setParams(Map<String, Object> params) {
+ this.params = params;
+ return this;
+ }
+
+ public Builder setHeaders(Map<String, Object> headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ public Builder setHttps(boolean https) {
+ this.https = https;
+ return this;
+ }
+
+ public Builder setJson(String json) {
+ this.json = json;
+ return this;
+ }
+
+ }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 3d87198..f94f1a1 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -56,3 +56,6 @@
doubleLocs: 1,4,5,8,9,12
# 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
groupCount: 4
+
+agv:
+ url: http://192.168.0.251:8088
diff --git a/src/main/webapp/views/pda/combAgv.html b/src/main/webapp/views/pda/combAgv.html
index 3a580f6..f132cf1 100644
--- a/src/main/webapp/views/pda/combAgv.html
+++ b/src/main/webapp/views/pda/combAgv.html
@@ -27,11 +27,9 @@
<button id="mat-btn" type="button" class="layui-btn layui-btn-normal" onclick="getMat()"><i class="layui-icon">+</i>鎻愬彇</button>
</div>
<div style="display: inline-block">
- 宸ヤ綔鍖�
<!-- 宸ヤ綔鍖� -->
<div class="layui-inline" style="width: 100px; margin-left: 10px">
<select id="devpSelect">
- <option value="">宸ヤ綔鍖�</option>
</select>
</div>
</div>
@@ -82,12 +80,13 @@
// 鑾峰彇宸ヤ綔鍖�
function getDevp(){
$.ajax({
- url: baseUrl+"/available/put/site",
+ url: baseUrl+"/agv/put/site",
headers: {'token': localStorage.getItem('token')},
method: 'POST',
async: false,
success: function (res) {
if (res.code === 200){
+ $('#devpSelect').html('');
var tpl = $("#devpSelectTemplate").html();
var template = Handlebars.compile(tpl);
var html = template(res);
@@ -178,28 +177,28 @@
tips("璇烽�夋嫨宸ヤ綔鍖�", true);
return;
}
- alert("灏忚溅缁勬墭鍏ュ簱瀹屾垚锛堝姛鑳借繕鏈疄鐜帮級");
-// $.ajax({
-// url: baseUrl+"/mobile/comb/auth",
-// headers: {'token': localStorage.getItem('token')},
-// data: JSON.stringify({
-// barcode: barcode,
-// combMats: matData
-// }),
-// contentType:'application/json;charset=UTF-8',
-// method: 'POST',
-// async: false,
-// success: function (res) {
-// if (res.code === 200) {
-// reset();
-// tips("缁勬墭鎴愬姛")
-// } else if (res.code === 403) {
-// top.location.href = baseUrl + "/pda";
-// } else {
-// tips(res.msg, true)
-// }
-// }
-// })
+ $.ajax({
+ url: baseUrl+"/mobile/comb/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify({
+ barcode: barcode,
+ combMats: matData,
+ agvSite: devp
+ }),
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200) {
+ reset();
+ tips("缁勬墭鎴愬姛")
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/pda";
+ } else {
+ tips(res.msg, true)
+ }
+ }
+ })
}
/**
@@ -233,6 +232,7 @@
</script>
<script type="text/template" id="devpSelectTemplate">
+ <option value="">宸ヤ綔鍖�</option>
{{#each data}}
<option value="{{this}}">{{this}}</option>
{{/each}}
--
Gitblit v1.9.1