From 3bf6f972604761c9ac59a2cb9ea01eeacaec2189 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 15:43:51 +0800
Subject: [PATCH] 更新为正式部署许可证
---
src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java | 86 ++
src/main/java/com/zy/asrs/entity/param/CombParam.java | 2
src/main/java/com/zy/asrs/controller/LocMastController.java | 13
src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java | 14
src/main/java/com/zy/asrs/entity/mes/TransTask.java | 1
src/main/java/com/zy/asrs/mapper/WrkDetlLogMapper.java | 3
src/main/java/com/zy/common/config/AdminInterceptor.java | 4
src/main/java/com/zy/asrs/entity/Task.java | 8
src/main/java/com/zy/asrs/controller/DigitalTwinController.java | 120 +--
src/main/java/com/zy/common/web/WcsController.java | 35 +
src/main/java/com/zy/asrs/mapper/CanFinMapper.java | 13
src/main/java/com/zy/asrs/service/MesService.java | 2
src/main/java/com/zy/asrs/entity/mes/MesMatInfo.java | 2
src/main/java/com/zy/asrs/entity/param/AbnormalLocDetlParam.java | 7
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java | 244 ++++++-
src/main/java/com/zy/asrs/service/DigitalTwinService.java | 15
src/main/java/com/zy/common/config/LogAspect.java | 2
src/main/java/com/zy/asrs/task/ErrorStockScheduler.java | 74 ++
src/main/java/com/zy/asrs/entity/CanFin.java | 65 ++
src/main/java/com/zy/system/timer/LoadingConfigTimer.java | 2
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 8
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 31
src/main/resources/application-dev.yml | 15
src/main/java/com/zy/system/timer/LicenseTimer.java | 4
src/main/java/com/zy/asrs/controller/MesController.java | 187 +++++
src/main/java/com/zy/asrs/controller/OutController.java | 8
src/main/java/com/zy/common/service/CommonService.java | 7
license.lic | 0
src/main/java/com/zy/asrs/entity/AllLocationsVo.java | 36 +
src/main/java/com/zy/system/entity/license/LicenseCheckListener.java | 36
src/main/java/com/zy/asrs/controller/LocDetlController.java | 55 +
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 123 ++++
src/main/resources/logback-spring.xml | 2
src/main/webapp/views/pakStore/groupinto.html | 134 ++++
src/main/java/com/zy/asrs/controller/TaskController.java | 27
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 10
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 54 +
src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java | 47
src/main/resources/mapper/TaskMapper.xml | 2
src/main/java/com/zy/asrs/controller/MobileController.java | 23
src/main/java/com/zy/asrs/controller/OrderPakoutController.java | 24
src/main/java/com/zy/asrs/entity/WorkChartAxis.java | 6
src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java | 2
src/main/resources/license.lic | 0
src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java | 127 +++
src/main/java/com/zy/asrs/service/OrderPakoutService.java | 1
46 files changed, 1,406 insertions(+), 275 deletions(-)
diff --git a/license.lic b/license.lic
index 22364dc..a6bdd04 100644
--- a/license.lic
+++ b/license.lic
Binary files differ
diff --git a/src/main/java/com/zy/asrs/controller/DigitalTwinController.java b/src/main/java/com/zy/asrs/controller/DigitalTwinController.java
index 628091d..b919ff9 100644
--- a/src/main/java/com/zy/asrs/controller/DigitalTwinController.java
+++ b/src/main/java/com/zy/asrs/controller/DigitalTwinController.java
@@ -1,18 +1,26 @@
package com.zy.asrs.controller;
import com.core.common.R;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.zy.asrs.entity.LocChartPie;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.digitaltwin.*;
+import com.zy.asrs.mapper.ReportQueryMapper;
import com.zy.asrs.service.DigitalTwinService;
+import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
+import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
@RequestMapping("/digitalTwin")
@RestController
@@ -20,6 +28,8 @@
@Resource
private DigitalTwinService digitalTwinService;
+ @Autowired
+ private ReportQueryMapper reportQueryMapper;
/**
* 鏁版嵁鎬昏
@@ -107,20 +117,6 @@
@RequestParam(required = false) String endDate){
List<DtInAndOutBoundVo> inAndOutBoundVoList = digitalTwinService.inAndOutBound(areaId, startDate, endDate);
-//
-// DtInAndOutBoundVo dtInAndOutBoundVo = DtInAndOutBoundVo.builder()
-// .boundDate("2025-10-22")
-// .inBoundNum(237)
-// .outBoundNum(487)
-// .build();
-// DtInAndOutBoundVo dtInAndOutBoundVo2 = DtInAndOutBoundVo.builder()
-// .boundDate("2025-10-23")
-// .inBoundNum(187)
-// .outBoundNum(287)
-// .build();
-// List<DtInAndOutBoundVo> inAndOutBoundVoList = new ArrayList<>();
-// inAndOutBoundVoList.add(dtInAndOutBoundVo);
-// inAndOutBoundVoList.add(dtInAndOutBoundVo2);
return R.ok().add(inAndOutBoundVoList);
}
@@ -167,73 +163,35 @@
public R warehouseDetail(@RequestParam(required = false) String areaId){
return R.ok(digitalTwinService.warehouseDetail(areaId));
-// List<DtLocDetailVo> dtLocDetailVoList = new ArrayList<>();
-// DtLocDetailVo dtLocDetailVo = new DtLocDetailVo();
-// dtLocDetailVo.setLocNo("CA0100202");
-// dtLocDetailVo.setLocSts("O");
-// dtLocDetailVo.setAreaId(10010L);
-// dtLocDetailVo.setAreaName("鍒�鍏峰簱");
-// dtLocDetailVo.setRow1(1);
-// dtLocDetailVo.setBay1(2);
-// dtLocDetailVo.setLev1(2);
-//
-// LocMast locMast = new LocMast();
-// locMast.setLocNo("CA0100202");
-// locMast.setLocSts("O");
-// locMast.setRow1(1);
-// locMast.setBay1(2);
-// locMast.setLev1(2);
-// dtLocDetailVo.setLocMast(locMast);
-//
-// LocDetl locDetl = new LocDetl();
-// locDetl.setLocNo("CA0100202");
-// locDetl.setAreaId(10010L);
-// locDetl.setAreaName("鍒�鍏峰簱");
-// locDetl.setMatnr("mat10001");
-// locDetl.setMaktx("鍒�鎶�");
-// dtLocDetailVo.setLocDetl(locDetl);
-// dtLocDetailVoList.add(dtLocDetailVo);
-//
-//
-// DtLocDetailVo dtLocDetailVo2 = new DtLocDetailVo();
-// dtLocDetailVo2.setLocNo("CA0100202");
-// dtLocDetailVo2.setLocSts("O");
-// dtLocDetailVo2.setAreaId(10010L);
-// dtLocDetailVo2.setAreaName("鍒�鍏峰簱");
-// dtLocDetailVo2.setRow1(1);
-// dtLocDetailVo2.setBay1(2);
-// dtLocDetailVo2.setLev1(2);
-//
-// LocMast locMast2 = new LocMast();
-// locMast2.setLocNo("CA0100203");
-// locMast2.setLocSts("O");
-// locMast2.setRow1(1);
-// locMast2.setBay1(2);
-// locMast2.setLev1(3);
-// dtLocDetailVo2.setLocMast(locMast2);
-//
-// LocDetl locDetl2 = new LocDetl();
-// locDetl2.setLocNo("CA0100203");
-// locDetl2.setAreaId(10010L);
-// locDetl2.setAreaName("鍒�鍏峰簱");
-// locDetl2.setMatnr("mat10001");
-// locDetl2.setMaktx("鍒�鎶�");
-// dtLocDetailVo2.setLocDetl(locDetl2);
-// dtLocDetailVoList.add(dtLocDetailVo2);
-
-
-// LocDetl locDetl2 = new LocDetl();
-// locDetl2.setLocNo("1001");
-// locDetl2.setAreaId(10010L);
-// locDetl2.setAreaName("鍒�鍏峰簱");
-// locDetl2.setMatnr("mat10001");
-// locDetl2.setMaktx("鍒�鎶�");
-//
-//// List<LocDetl> locDetlList = new ArrayList<>();
-//// locDetlList.add(locDetl);
-//// locDetlList.add(locDetl2);
-
-// return R.ok().add(dtLocDetailVoList);
}
+
+ /**
+ * 鏌ヨ鎵�鏈夊簱浣嶇姸鎬佸拰鐗╂枡-浜屾満搴婁俊鎭寲鏁板瓧瀛敓鐢�
+ */
+ @RequestMapping(value = "/getAllLocations")
+ public R getAllLocations() {
+ return digitalTwinService.getAllLocations();
+ }
+
+
+ /**
+ * 鏌ヨ鍦ㄥ簱鏁伴噺绛変俊鎭�
+ */
+ @RequestMapping(value = "/getLocalInfo")
+ public LocChartPie getLocalInfo() {
+
+ LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
+
+ return locUseRate;
+ }
+
+ /**
+ * 鏌ヨ鎵�鏈夊簱鐨勫簱瀛樻槑缁�
+ */
+ @RequestMapping(value = "/getLocalDetal")
+ public R getLocalDetal() throws IOException {
+
+ return R.ok(digitalTwinService.getLocalDetal());
+ }
}
diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index a9213d4..3edd491 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -298,41 +298,52 @@
List<LocDetl> list = locDetlService.selectList(wrapper);
List<AbnormalLocDetlParam> result = new ArrayList<>();
- Page<LocDetl> groupLocDetl = locDetlService.getStockStatis2(toPage(1, 10000, param, LocDetl.class));
- for (LocDetl locDetl : groupLocDetl.getRecords()) {
+ // 浣跨敤瀹屾暣鐨勬槑缁嗘暟鎹紝鑰屼笉鏄垎缁勬暟鎹�
+ for (LocDetl locDetl : list) {
AbnormalLocDetlParam abnormalLocDetlParam = new AbnormalLocDetlParam();
Mat mat = matService.selectOne(new EntityWrapper<Mat>()
.eq("matnr", locDetl.getMatnr()));
if (Cools.isEmpty(mat)) {
continue;
}
- if (!Cools.isEmpty(mat.getStoreMax()) || !Cools.isEmpty(mat.getStoreMin())) {
- abnormalLocDetlParam.setStoreMax(mat.getStoreMax());
- abnormalLocDetlParam.setStoreMaxDate(mat.getStoreMaxDate());
- abnormalLocDetlParam.setStoreMin(mat.getStoreMin());
- abnormalLocDetlParam.setAnfme(locDetl.getAnfme());
- abnormalLocDetlParam.setMaktx(mat.getMaktx());
- abnormalLocDetlParam.setMatnr(mat.getMatnr());
- abnormalLocDetlParam.setSpecs(mat.getSpecs());
- abnormalLocDetlParam.setBatch(locDetl.getBatch());
-// SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd");
-// Date maxDate = simple.parse(locDetl.getBatch());
-// long time = maxDate.getTime();
-// Date now = new Date();
-// long time1 = now.getTime();
-// abnormalLocDetlParam.setNowTime((int) ((time1 - time) / (1000 * 60 * 60 * 24)));
+ // 璁剧疆鍩烘湰淇℃伅锛堟棤璁烘槸鍚﹀紓甯革級
+ abnormalLocDetlParam.setStoreMax(mat.getStoreMax());
+ abnormalLocDetlParam.setStoreMaxDate(mat.getStoreMaxDate());
+ abnormalLocDetlParam.setStoreMin(mat.getStoreMin());
+ abnormalLocDetlParam.setAnfme(locDetl.getAnfme());
+ abnormalLocDetlParam.setMaktx(mat.getMaktx());
+ abnormalLocDetlParam.setMatnr(mat.getMatnr());
+ abnormalLocDetlParam.setSpecs(mat.getSpecs());
+ abnormalLocDetlParam.setBatch(locDetl.getBatch());
- if (!Cools.isEmpty(mat.getStoreMax()) && locDetl.getAnfme() > mat.getStoreMax()) {
- result.add(abnormalLocDetlParam);
- } else if (!Cools.isEmpty(mat.getStoreMin()) && locDetl.getAnfme() < mat.getStoreMin()) {
- result.add(abnormalLocDetlParam);
- }
+ // 璁剧疆瀵煎嚭闇�瑕佺殑鍏朵粬瀛楁
+ abnormalLocDetlParam.setLocNo(locDetl.getLocNo());
+ abnormalLocDetlParam.setZpallet(locDetl.getZpallet());
+ abnormalLocDetlParam.setOrderNo(locDetl.getOrderNo());
+ abnormalLocDetlParam.setModiTime(locDetl.getModiTime());
+
+ // 璁$畻搴撻緞锛堝疄闄呭湪搴撳ぉ鏁帮級
+ if (locDetl.getAppeTime() != null) {
+ long diff = System.currentTimeMillis() - locDetl.getAppeTime().getTime();
+ int days = (int) (diff / (1000 * 60 * 60 * 24));
+ abnormalLocDetlParam.setNowTime(days);
}
+
+ // 纭繚鎵�鏈夊瓧娈甸兘鏈夊�硷紝閬垮厤绌哄�煎鑷村鍑哄紓甯�
+ if (abnormalLocDetlParam.getLocNo() == null) abnormalLocDetlParam.setLocNo("");
+ if (abnormalLocDetlParam.getZpallet() == null) abnormalLocDetlParam.setZpallet("");
+ if (abnormalLocDetlParam.getOrderNo() == null) abnormalLocDetlParam.setOrderNo("");
+ if (abnormalLocDetlParam.getSpecs() == null) abnormalLocDetlParam.setSpecs("");
+
+ // 鎬绘槸娣诲姞鍒扮粨鏋滃垪琛�
+ result.add(abnormalLocDetlParam);
}
+
return R.ok(exportSupport(result, fields));
}
+
@RequestMapping(value = "/locDetl/selectOwner/list/auth")
@ManagerAuth
public R selectOwnerlist(@RequestParam(defaultValue = "1")Integer curr,
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 32fc68c..5dfa697 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -94,11 +94,14 @@
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]));
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
} else if (entry.getKey().equals("loc_no")) {
wrapper.like(entry.getKey(), val);
- } else {
+ } else if (entry.getKey().equals("barcode")) {
+ wrapper.like(entry.getKey(), val);
+ }
+ else {
if (entry.getKey().equals("loc_type1")) {
sign = true;
}
@@ -365,8 +368,8 @@
locNoStr = split[1];
picPath += "_" + locNoStr;
}
- picList.add("http://" + WCS_URL + "/image/" + picPath + "-1.jpg");
- picList.add("http://" + WCS_URL + "/image/" + picPath + "-2.jpg");
+ picList.add("http://172.26.1.189:8080//" + picPath + ".jpg");
+ picList.add("http://172.26.1.189:8080//" + picPath + ".jpg");
LocPicDto locPicDto = new LocPicDto();
locPicDto.setLocNo(locNoStr);
diff --git a/src/main/java/com/zy/asrs/controller/MesController.java b/src/main/java/com/zy/asrs/controller/MesController.java
index a690371..52b6720 100644
--- a/src/main/java/com/zy/asrs/controller/MesController.java
+++ b/src/main/java/com/zy/asrs/controller/MesController.java
@@ -2,18 +2,32 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.AppAuth;
+import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
+import com.core.common.R;
import com.core.exception.CoolException;
+import com.zy.asrs.entity.CanFin;
+import com.zy.asrs.entity.Task;
+import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.mes.*;
+import com.zy.asrs.entity.param.CombParam;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.service.MesService;
+import com.zy.asrs.service.MobileService;
+import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.WrkMastService;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
+import java.util.Date;
+import java.util.List;
@RestController
@Slf4j
@@ -21,6 +35,15 @@
@Resource
private MesService mesService;
+
+ @Autowired
+ private MobileService mobileService;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private CanFinMapper canFinMapper;
private void auth(String appkey, Object obj, HttpServletRequest request) {
log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", request.getRequestURI(), appkey, JSON.toJSONString(obj));
@@ -30,12 +53,17 @@
// 鐗╂枡淇℃伅鍚屾
@PostMapping("/api/mes/synMatInfo")
@AppAuth(memo = "鐗╂枡淇℃伅鍚屾")
- public MesReturn synMatInfo(@RequestHeader(required = false) String appkey,@RequestBody MesMatRecvForm param, HttpServletRequest request){
- auth(appkey, param, request);
+// public MesReturn synMatInfo(@RequestHeader(required = false) String appkey, @RequestBody List<MesMatRecvForm> params, HttpServletRequest request){
+ public MesReturn synMatInfo(@RequestHeader(required = false) String appkey, @RequestBody MesMatRecvForm params, HttpServletRequest request){
+ auth(appkey, params, request);
MesReturn mesReturn = new MesReturn();
try {
- mesReturn = mesService.matInfoAndInBound(param);
+// for (MesMatRecvForm param : params){
+// mesReturn = mesService.matInfoAndInBound(param);
+// }
+ mesReturn = mesService.matInfoAndInBound(params);
} catch (Exception e) {
+ log.error(String.valueOf(e));
mesReturn.setSuccess("2");
mesReturn.setMessage("鐗╂枡淇℃伅鍚屾澶辫触");
}
@@ -119,26 +147,143 @@
return mesService.queryInventory(itemno,orderNo);
}
- @PostMapping("/api/mes/pauseAGV")
- public MesReturn AGVPause(@RequestBody JSONObject param) throws IOException {
- MesReturn mesReturn = new MesReturn();
- int AGVType;
- if (param.containsKey("zoneCode")){
- param.put("mapCode", "BB");
- param.put("invoke", "FREEZE");
- AGVType = 1;
+ /**
+ * MES璋冪敤PDA鐨凙GV璁㈠崟鍏ュ簱鎺ュ彛
+ * @param combParam
+ * @return
+ */
+ @RequestMapping("/comb/auth")
+ @ManagerAuth(memo = "缁勬墭")
+ public R comb(@RequestBody CombParam combParam){
+ log.info("=============== MES涓嬪彂缁勬墭璁㈠崟 ===============");
+ log.info("{}", combParam);
+ log.info("=============== MES涓嬪彂缁勬墭璁㈠崟 ===============");
+ if (combParam.getUserId() != null && !combParam.getUserId().equals(null)){
+ mobileService.comb(combParam, combParam.getUserId());
}else {
- AGVType = 2;
+ mobileService.comb(combParam, getUserId());
}
- if (mesService.AGVPause(param, AGVType) == 1){
- mesReturn.setSuccess("1");
- mesReturn.setMessage("鎴愬姛");
- return mesReturn;
- }else {
- mesReturn.setSuccess("2");
- mesReturn.setMessage("澶辫触");
- return mesReturn;
- }
+ return R.ok("缁勬墭鎴愬姛");
}
+ /**
+ * MES璋冪敤PDA鐨勮ˉ绌烘澘
+ *
+ * @param locNo 鐩爣绔欑偣
+ * @param size 鎵樼洏澶у皬 1锛氬皬鎵樼洏 2锛氬ぇ鎵樼洏
+ * @return
+ */
+ @PostMapping("/callEmptyBinOutBound")
+ public synchronized R callEmptyBinOutBound(@RequestParam(required = false) String locNo
+ , @RequestParam(required = false) String size
+ , @RequestParam(required = false) String palletFormat
+ , @RequestParam(required = false) String agvTaskNo) {
+ if (Cools.isEmpty(locNo) || Cools.isEmpty(size)) {
+ return R.error("绔欑偣鎴栬�呭ぇ灏忎笉鑳戒负绌�");
+ }
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("memo", locNo));
+ if (wrkMast != null) {
+ return R.error("璇ョ珯鐐�="+locNo+"宸茬粡鏈夌┖鏉垮嚭搴撲换鍔★紝涓轰簡涓嶅牭濉炲爢鍨涙満鎺ラ┏绔欑偣锛岀姝笅鍙戝涓┖鏉垮嚭搴撲换鍔�");
+ }
+ return mobileService.callEmptyBinOutBound(locNo, size, palletFormat, agvTaskNo, 9995L);
+ }
+
+
+ /**
+ * 绌烘澘鍥炲簱鎴栬�呮嫞鏂欏洖搴�
+ *
+ * @param sourceStaNo
+ * @param staNo
+ * @return
+ */
+ @RequestMapping("/AGVStartReturn")
+ public synchronized R AGVStartReturn(@RequestParam(required = false) String sourceStaNo
+ , @RequestParam(required = false) String staNo
+ , @RequestParam(required = false) String taskNo) {
+ if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(staNo)) {
+ return R.error("婧愮珯鐐瑰拰鎵樼洏鐮佷笉鑳戒负绌�");
+ }
+ List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("source_sta_no", sourceStaNo).eq("barcode", staNo));
+ if (tasks.size() > 0) {
+ return R.error("璇ユ墭鐩�="+staNo+"宸茬粡瀛樺湪鎼繍浠诲姟锛岃涓嶈閲嶅涓嬪彂");
+ }
+
+ String barcode = staNo.substring(0,1);
+ if(barcode.equals("3")){
+ taskNo = "307";
+ }else if(barcode.equals("4")){
+ taskNo = "402";
+ }else if(barcode.equals("5")){
+ taskNo = "401";
+ }
+
+ R r = R.ok();
+ //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
+ // 淇濆瓨宸ヤ綔妗�
+ Task task = new Task();
+ Date date = new Date();
+ String TaskNo = 555555 + "aa" + date.getTime();
+ task.setWrkNo((int) date.getTime())
+ .setTaskNo(TaskNo)
+ .setIoTime(date)
+ .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+ .setIoType(3) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔� 4.绔欏埌鍖哄煙
+ .setTaskType("agv")
+ .setIoPri(10D)
+ .setFullPlt("Y") // 婊℃澘锛歒
+ .setPicking("N") // 鎷f枡
+ .setExitMk("N")// 閫�鍑�
+ .setStaNo(taskNo)
+ .setSourceStaNo(sourceStaNo)//agv鍙栬揣绔欑偣
+ .setEmptyMk("N")// 绌烘澘
+ .setBarcode(staNo)// 鎵樼洏鐮�
+ .setLinkMis("N")
+ .setAppeUser(9945L)
+ .setAppeTime(date)
+ .setModiUser(9945L)
+ .setModiTime(date);
+ if (taskService.insert(task)) {
+ Date now = new Date();
+ CanFin canFin = new CanFin();
+ canFin.setAgvType("agv-in");
+ canFin.setInNo(TaskNo);
+ canFin.setApplyTime(now);
+ canFinMapper.insert(canFin);
+ }else{
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ return r;
+ }
+ @PostMapping("/api/mes/pauseAGV")
+ public MesReturn AGVPause(@RequestBody JSONObject param){
+ MesReturn mesReturn = new MesReturn();
+
+ String type = "STOP";
+ if (param.getString("type") != null){
+ type = "START";
+ }
+
+ switch (mesService.AGVPause(param, type)){
+ case 1:
+ mesReturn.setSuccess("1");
+ mesReturn.setMessage("AGV鏆傚仠鎴栧惎鍔ㄦ垚鍔�");
+ return mesReturn;
+ case 2:
+ mesReturn.setSuccess("1");
+ mesReturn.setMessage("娴峰悍AGV鏆傚仠鎴栧惎鍔ㄦ垚鍔�");
+ return mesReturn;
+ case 3:
+ mesReturn.setSuccess("1");
+ mesReturn.setMessage("鍗庢檽AGV鏆傚仠鎴栧惎鍔ㄦ垚鍔�");
+ return mesReturn;
+ case 4:
+ mesReturn.setSuccess("2");
+ mesReturn.setMessage("AGV鏆傚仠鎴栧惎鍔ㄨ皟鐢ㄥけ璐�");
+ return mesReturn;
+ }
+ mesReturn.setSuccess("2");
+ mesReturn.setMessage("AGV鏆傚仠鎴栧惎鍔ㄨ皟鐢ㄥけ璐�");
+ return mesReturn;
+ }
}
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 5a3ab3b..7085b61 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -12,6 +12,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.MobileAdjustResult;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl;
@@ -65,6 +66,8 @@
private ManLocDetlMapper manLocDetlMapper;
@Autowired
private WrkDetlLogService wrkDetlLogService;
+ @Autowired
+ private CanFinMapper canFinMapper;
@Resource
private StaDescService staDescService;
@@ -277,7 +280,13 @@
@RequestMapping("/comb/auth")
@ManagerAuth(memo = "缁勬墭")
public R comb(@RequestBody CombParam combParam){
- mobileService.comb(combParam, getUserId());
+
+ if (combParam.getUserId() != null && !combParam.getUserId().equals(null)){
+ mobileService.comb(combParam, combParam.getUserId());
+ }else {
+ mobileService.comb(combParam, getUserId());
+ }
+
return R.ok("缁勬墭鎴愬姛");
}
@@ -625,11 +634,17 @@
.setAppeTime(date)
.setModiUser(9945L)
.setModiTime(date);
- if (!taskService.insert(task)) {
+ if (taskService.insert(task)) {
+ Date now = new Date();
+ CanFin canFin = new CanFin();
+ canFin.setAgvType("agv-in");
+ canFin.setInNo(TaskNo);
+ canFin.setApplyTime(now);
+ canFinMapper.insert(canFin);
+ }else{
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
-
- return r;
+ return R.error("涓嬪彂澶辫触");
}
@RequestMapping("/orderIn")
diff --git a/src/main/java/com/zy/asrs/controller/OrderPakoutController.java b/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
index 23fbfff..a3b3454 100644
--- a/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderPakoutController.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.OrderDomainParam;
import com.zy.asrs.entity.result.WrkTraceVo;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import com.zy.common.web.BaseController;
@@ -42,6 +43,8 @@
private WrkMastService wrkMastService;
@Autowired
private WrkMastLogService wrkMastLogService;
+ @Autowired
+ private CanFinMapper canFinMapper;
@RequestMapping(value = "/order/nav/list/auth")
@ManagerAuth
@@ -375,6 +378,27 @@
@ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟")
@Transactional
public R delete(@RequestParam Long orderId){
+ OrderPakout orderPakout = orderService.selectOne(new EntityWrapper<OrderPakout>()
+ .eq("id", orderId));
+ CanFin deleteCanFin = new CanFin();
+ deleteCanFin.setOutNo(orderPakout.getOrderNo());
+ List<CanFin> canFinList = canFinMapper.selectList(new EntityWrapper<CanFin>()
+ .orderBy("apply_time", true)
+ .isNotNull("out_no"));
+ if (!canFinList.isEmpty()){
+ for (CanFin canFin : canFinList){
+ if (canFin.getOutNo().equals(deleteCanFin.getOutNo())){
+ canFinMapper.deleteById(canFin.getId());
+ }
+ }
+ }
+ List<CanFin> newCanFinList = canFinMapper.selectList(new EntityWrapper<CanFin>()
+ .orderBy("apply_time", true));
+ if (!newCanFinList.isEmpty()){
+ CanFin firstCanFin = newCanFinList.get(0);
+ firstCanFin.setTaskStatus("canout");
+ canFinMapper.updateById(firstCanFin);
+ }
orderService.remove(orderId);
// Order order = orderService.selectById(orderId);
// if (order != null) {
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 5ace63f..63f250e 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -247,10 +247,10 @@
locType = 2;
}
String bar = "";
- //鍏蜂綋寰呭畾
-// if(!Cools.isEmpty(orderPakout.getShipCode())&&orderPakout.getShipCode().equals("A01")){
-// bar = "A01";
-// }
+// 鍏蜂綋寰呭畾
+ if(!Cools.isEmpty(orderPakout.getShipCode())){
+ bar = orderPakout.getShipCode();
+ }
LocMast locMast = new LocMast();
if (Cools.isEmpty(bar)) {
locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
diff --git a/src/main/java/com/zy/asrs/controller/TaskController.java b/src/main/java/com/zy/asrs/controller/TaskController.java
index b453629..979dabf 100644
--- a/src/main/java/com/zy/asrs/controller/TaskController.java
+++ b/src/main/java/com/zy/asrs/controller/TaskController.java
@@ -6,7 +6,9 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
+import com.zy.asrs.entity.CanFin;
import com.zy.asrs.entity.Task;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.service.TaskService;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
@@ -23,6 +25,8 @@
@Autowired
private TaskService taskService;
+ @Autowired
+ private CanFinMapper canFinMapper;
@RequestMapping(value = "/task/{id}/auth")
@ManagerAuth
@@ -99,6 +103,29 @@
taskService.completeWrkMast(workNo, getUserId());
return R.ok("宸ヤ綔妗e凡瀹屾垚");
} else if (type == 2) {
+ Task task = taskService.selectOne(new EntityWrapper<Task>()
+ .eq("wrk_no", workNo));
+ if (task != null){
+ CanFin deleteCanFin = new CanFin();
+ deleteCanFin.setInNo(task.getTaskNo());
+ List<CanFin> canFinList = canFinMapper.selectList(new EntityWrapper<CanFin>()
+ .orderBy("apply_time", true)
+ .isNotNull("in_no"));
+ if (!canFinList.isEmpty()){
+ for (CanFin canFin : canFinList){
+ if (canFin.getInNo().equals(deleteCanFin.getInNo())){
+ canFinMapper.deleteById(canFin.getId());
+ }
+ }
+ }
+ List<CanFin> newCanFinList = canFinMapper.selectList(new EntityWrapper<CanFin>()
+ .orderBy("apply_time", true));
+ if (!newCanFinList.isEmpty()){
+ CanFin firstCanFin = newCanFinList.get(0);
+ firstCanFin.setTaskStatus("canout");
+ canFinMapper.updateById(firstCanFin);
+ }
+ }
taskService.cancelWrkMast(workNo, getUserId());
return R.ok("宸ヤ綔妗e凡鍙栨秷");
} else if (type == 3) {
diff --git a/src/main/java/com/zy/asrs/entity/AllLocationsVo.java b/src/main/java/com/zy/asrs/entity/AllLocationsVo.java
new file mode 100644
index 0000000..3f7c2bc
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/AllLocationsVo.java
@@ -0,0 +1,36 @@
+package com.zy.asrs.entity.digitaltwin;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author pang.jiabao
+ * @description 鏌ヨ鎵�鏈夊簱浣嶇姸鎬佸拰鐗╂枡-浜屾満搴婁俊鎭寲鏁板瓧瀛敓鐢�
+ * @createDate 2026/1/26 11:13
+ */
+@Data
+public class AllLocationsVo {
+
+ // 搴撲綅鍙�
+ private String locNo;
+
+ // 搴撲綅鐘舵�侊紝O绌哄簱浣嶏紙鑻辨枃涓嶆槸鏁板瓧锛夛紱F 鍦ㄥ簱锛汥 绌烘澘锛汸 鍑哄簱涓紱R 鍑哄簱棰勭害锛汼 鍏ュ簱棰勭害锛涘叾浠� 鍏朵粬锛�
+ private String locSts;
+
+ private List<LocDetl> locDetls = new ArrayList<>();
+
+ @Data
+ public static class LocDetl {
+
+ @ApiModelProperty(value = "鍟嗗搧缂栧彿")
+ private String matnr;
+
+ @ApiModelProperty(value = "鍟嗗搧鍚嶇О")
+ private String maktx;
+
+ private Double anfme;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/CanFin.java b/src/main/java/com/zy/asrs/entity/CanFin.java
new file mode 100644
index 0000000..fed12f6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/CanFin.java
@@ -0,0 +1,65 @@
+package com.zy.asrs.entity;
+
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("can_fin")
+public class CanFin {
+
+ /**
+ * 涓婚敭缂栧彿
+ */
+ @ApiModelProperty(value= "涓婚敭")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鍏ュ簱鍗曞彿
+ */
+ @TableField("in_no")
+ private String inNo;
+
+ /**
+ * 鍑哄簱鍙�
+ * */
+ @TableField("out_no")
+ private String outNo;
+
+ /**
+ * 鎻掑叆鏃堕棿
+ */
+ @TableField("apply_time")
+ private Date applyTime;
+
+ /**
+ * 浠诲姟绫诲瀷
+ */
+ @TableField("task_type")
+ private String taskType;
+
+ /**
+ * 浠诲姟鐘舵��
+ */
+ @TableField("task_status")
+ private String taskStatus;
+
+ /**
+ * 鍑哄簱绫诲瀷
+ */
+ @TableField("out_type")
+ private String outType;
+
+ /**
+ * agv绫诲瀷
+ */
+ @TableField("agv_type")
+ private String agvType;
+}
diff --git a/src/main/java/com/zy/asrs/entity/Task.java b/src/main/java/com/zy/asrs/entity/Task.java
index cd8db31..6e92715 100644
--- a/src/main/java/com/zy/asrs/entity/Task.java
+++ b/src/main/java/com/zy/asrs/entity/Task.java
@@ -344,6 +344,14 @@
@TableField("task_no")
private String taskNo;
+ /**
+ * 鏄惁鏄痯da鍙戠殑
+ */
+ @ApiModelProperty(value= "鏄惁鏄疨DA鍙戠殑浠诲姟")
+ @TableField("is_PDA")
+ private String isPda;
+
+
public Task() {}
public String getYmd$(){
diff --git a/src/main/java/com/zy/asrs/entity/WorkChartAxis.java b/src/main/java/com/zy/asrs/entity/WorkChartAxis.java
index e433b13..d12b030 100644
--- a/src/main/java/com/zy/asrs/entity/WorkChartAxis.java
+++ b/src/main/java/com/zy/asrs/entity/WorkChartAxis.java
@@ -7,9 +7,9 @@
*/
public class WorkChartAxis {
private String ymd;
- private int inqty;
- private int outqty;
-
+ private int inqty;
+ private int outqty;
+
public String getYmd() {
return ymd;
}
diff --git a/src/main/java/com/zy/asrs/entity/mes/MesMatInfo.java b/src/main/java/com/zy/asrs/entity/mes/MesMatInfo.java
index 669d754..505a957 100644
--- a/src/main/java/com/zy/asrs/entity/mes/MesMatInfo.java
+++ b/src/main/java/com/zy/asrs/entity/mes/MesMatInfo.java
@@ -108,7 +108,7 @@
// @NotNull
@JsonProperty("qty")
@JSONField(name = "qty")
- private Integer qty;
+ private Double qty;
// 闆朵欢浜岀淮鐮�
@JsonProperty("ItemBarcode")
diff --git a/src/main/java/com/zy/asrs/entity/mes/TransTask.java b/src/main/java/com/zy/asrs/entity/mes/TransTask.java
index 0b9156b..4bea215 100644
--- a/src/main/java/com/zy/asrs/entity/mes/TransTask.java
+++ b/src/main/java/com/zy/asrs/entity/mes/TransTask.java
@@ -75,4 +75,5 @@
@JSONField(name = "TuoPanId")
private String TuoPanId;
+ private String isPDA;
}
diff --git a/src/main/java/com/zy/asrs/entity/param/AbnormalLocDetlParam.java b/src/main/java/com/zy/asrs/entity/param/AbnormalLocDetlParam.java
index 6063621..29c6bce 100644
--- a/src/main/java/com/zy/asrs/entity/param/AbnormalLocDetlParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/AbnormalLocDetlParam.java
@@ -175,7 +175,12 @@
*/
private Integer nowTime;
-
+ /**
+ * 搴撻緞(澶�)锛屽搴斿墠绔殑 storeDate 瀛楁
+ */
+ public Integer getStoreDate() {
+ return this.nowTime;
+ }
public String getLocNo$() {
LocMastService service = SpringUtils.getBean(LocMastService.class);
LocMast locMast = service.selectById(this.locNo);
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 77f6da8..b873c5f 100644
--- a/src/main/java/com/zy/asrs/entity/param/CombParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -24,6 +24,8 @@
private List<CombMat> combMats;
+ private Long userId; // 鏂板瀛楁
+
@Data
public static class CombMat {
diff --git a/src/main/java/com/zy/asrs/mapper/CanFinMapper.java b/src/main/java/com/zy/asrs/mapper/CanFinMapper.java
new file mode 100644
index 0000000..737b9ee
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/CanFinMapper.java
@@ -0,0 +1,13 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.zy.asrs.entity.CanFin;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface CanFinMapper extends BaseMapper<CanFin> {
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlLogMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlLogMapper.java
index 67a4a26..44d9f4b 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlLogMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlLogMapper.java
@@ -5,6 +5,7 @@
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
import java.util.Date;
@@ -40,4 +41,6 @@
@Param("modiTimeEnd") Date modiTimeEnd);
+ @Update("update asr_wrk_detl_log set io_time = #{ioTime} where wrk_no = #{workNo}")
+ int updateIoTime(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
}
diff --git a/src/main/java/com/zy/asrs/service/DigitalTwinService.java b/src/main/java/com/zy/asrs/service/DigitalTwinService.java
index 1b02d7d..6173d8f 100644
--- a/src/main/java/com/zy/asrs/service/DigitalTwinService.java
+++ b/src/main/java/com/zy/asrs/service/DigitalTwinService.java
@@ -1,8 +1,11 @@
package com.zy.asrs.service;
+import com.core.common.R;
import com.zy.asrs.entity.digitaltwin.*;
+import com.zy.asrs.entity.digitaltwin.AllLocationsVo;
import java.util.List;
+import java.util.Map;
public interface DigitalTwinService {
@@ -69,4 +72,16 @@
void locNumCount();
DtEquipmentVo equipment(String areaId);
+
+
+
+
+
+ /**
+ * 鏌ヨ鎵�鏈夊簱浣嶇姸鎬佸拰鐗╂枡-浜屾満搴婁俊鎭寲鏁板瓧瀛敓鐢�
+ */
+ R getAllLocations();
+
+
+ List<Map<String, Object>> getLocalDetal();
}
diff --git a/src/main/java/com/zy/asrs/service/MesService.java b/src/main/java/com/zy/asrs/service/MesService.java
index f3ba28b..9dab4f0 100644
--- a/src/main/java/com/zy/asrs/service/MesService.java
+++ b/src/main/java/com/zy/asrs/service/MesService.java
@@ -148,5 +148,5 @@
MesReturn queryInventory(String itemno,String orderNo);
- int AGVPause(JSONObject params, int AGVType);
+ int AGVPause(JSONObject params, String Type);
}
diff --git a/src/main/java/com/zy/asrs/service/OrderPakoutService.java b/src/main/java/com/zy/asrs/service/OrderPakoutService.java
index dff48ff..08049ab 100644
--- a/src/main/java/com/zy/asrs/service/OrderPakoutService.java
+++ b/src/main/java/com/zy/asrs/service/OrderPakoutService.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.core.common.R;
import com.zy.asrs.entity.OrderPakout;
diff --git a/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
index 935062a..dca7bc0 100644
--- a/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
@@ -2,26 +2,28 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.core.common.R;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.LocCount;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.digitaltwin.*;
+import com.zy.asrs.entity.digitaltwin.AllLocationsVo;
import com.zy.asrs.mapper.DigitalTwinMapper;
import com.zy.asrs.mapper.LocCountMapper;
+import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.DigitalTwinService;
+import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -31,6 +33,8 @@
private DigitalTwinMapper digitalTwinMapper;
@Resource
private LocCountMapper locCountMapper;
+ @Autowired
+ private LocDetlMapper locDetlMapper;
/**
* 鎬昏锛氭�诲簱浣嶃�佸凡鐢ㄥ簱浣嶃�佸墿浣欏簱浣嶃�佷粖鏃ュ嚭搴撱�佷粖鏃ュ叆搴撱�佸墿浣欏簱浣�
@@ -74,15 +78,37 @@
startTime = calendar.getTime();
endTime = now;
- } else {
- SimpleDateFormat sdf =
- new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
-
+ }else {
+ SimpleDateFormat sdf;
try {
- startTime = sdf.parse(startDate);
- endTime = sdf.parse(endDate);
+ // 灏濊瘯瑙f瀽yyyyMMdd鏍煎紡
+ if (startDate.length() == 8 && endDate.length() == 8) {
+ sdf = new SimpleDateFormat("yyyyMMdd");
+ startTime = sdf.parse(startDate);
+ endTime = sdf.parse(endDate);
+ // 璁剧疆缁撴潫鏃堕棿涓哄綋澶╃殑23:59:59.999
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(endTime);
+ calendar.set(Calendar.HOUR_OF_DAY, 23);
+ calendar.set(Calendar.MINUTE, 59);
+ calendar.set(Calendar.SECOND, 59);
+ calendar.set(Calendar.MILLISECOND, 999);
+ endTime = calendar.getTime();
+ } else {
+ // 灏濊瘯瑙f瀽yyyy-MM-dd HH:mm:ss.SSS鏍煎紡
+ sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+ startTime = sdf.parse(startDate);
+ endTime = sdf.parse(endDate);
+ }
} catch (ParseException e) {
e.printStackTrace();
+ // 瑙f瀽澶辫触鏃朵娇鐢ㄩ粯璁ょ殑7澶╂椂闂磋寖鍥�
+ Date now = new Date();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(now);
+ calendar.add(Calendar.DAY_OF_MONTH, -7);
+ startTime = calendar.getTime();
+ endTime = now;
}
}
List<DtOrderVo> dbOrder = digitalTwinMapper.recentOrder(startTime, endTime);
@@ -114,15 +140,37 @@
startTime = calendar.getTime();
endTime = now;
- } else {
- SimpleDateFormat sdf =
- new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
-
+ } else {
+ SimpleDateFormat sdf;
try {
- startTime = sdf.parse(startDate);
- endTime = sdf.parse(endDate);
+ // 灏濊瘯瑙f瀽yyyyMMdd鏍煎紡
+ if (startDate.length() == 8 && endDate.length() == 8) {
+ sdf = new SimpleDateFormat("yyyyMMdd");
+ startTime = sdf.parse(startDate);
+ endTime = sdf.parse(endDate);
+ // 璁剧疆缁撴潫鏃堕棿涓哄綋澶╃殑23:59:59.999
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(endTime);
+ calendar.set(Calendar.HOUR_OF_DAY, 23);
+ calendar.set(Calendar.MINUTE, 59);
+ calendar.set(Calendar.SECOND, 59);
+ calendar.set(Calendar.MILLISECOND, 999);
+ endTime = calendar.getTime();
+ } else {
+ // 灏濊瘯瑙f瀽yyyy-MM-dd HH:mm:ss.SSS鏍煎紡
+ sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+ startTime = sdf.parse(startDate);
+ endTime = sdf.parse(endDate);
+ }
} catch (ParseException e) {
e.printStackTrace();
+ // 瑙f瀽澶辫触鏃朵娇鐢ㄩ粯璁ょ殑7澶╂椂闂磋寖鍥�
+ Date now = new Date();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(now);
+ calendar.add(Calendar.DAY_OF_MONTH, -7);
+ startTime = calendar.getTime();
+ endTime = now;
}
}
@@ -301,4 +349,51 @@
// endregion
+ // endregion
+ @Resource
+ private LocDetlService locDetlService;
+
+ @Override
+ public R getAllLocations() {
+ List<AllLocationsVo> allLocationsVos = new ArrayList<>();
+ List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<>());
+ locMastList.forEach(locMast -> {
+ AllLocationsVo allLocationsVo = new AllLocationsVo();
+ allLocationsVo.setLocNo(locMast.getLocNo());
+ String locSts = locMast.getLocSts();
+ allLocationsVo.setLocSts(locSts);
+ // 鏈夊簱瀛�
+ if (locSts.equals("F") || locSts.equals("P") || locSts.equals("Q") || locSts.equals("R")) {
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+ if (!locDetls.isEmpty()) {
+ List<AllLocationsVo.LocDetl> locDetlList = locDetls.stream().map(locDetl -> {
+ AllLocationsVo.LocDetl locDetl1 = new AllLocationsVo.LocDetl();
+ BeanUtils.copyProperties(locDetl, locDetl1);
+ return locDetl1;
+ }
+ ).collect(Collectors.toList());
+ allLocationsVo.setLocDetls(locDetlList);
+ }
+ }
+ allLocationsVos.add(allLocationsVo);
+ });
+ return R.ok(allLocationsVos);
+ }
+
+
+ public List<Map<String, Object>> getLocalDetal() {
+ List<LocDetl> locDetls = locDetlMapper.selectList(new EntityWrapper<>());
+ List<Map<String, Object>> result = new ArrayList<>();
+
+ for (LocDetl locDetl : locDetls) {
+ Map<String, Object> item = new HashMap<>();
+ item.put("zpallet", locDetl.getZpallet());
+ item.put("anfme", locDetl.getAnfme());
+ item.put("matnr", locDetl.getMatnr());
+ item.put("maktx", locDetl.getMaktx());
+ result.add(item);
+ }
+
+ return result;
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
index d49c220..d4e7a67 100644
--- a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -13,6 +13,7 @@
import com.zy.asrs.entity.mes.*;
import com.zy.asrs.entity.rcs.*;
import com.zy.asrs.mapper.AgvInfoMapper;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.mapper.MatItemBarcodeMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderInAndOutUtil;
@@ -22,10 +23,12 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.sql.Time;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
@@ -99,6 +102,8 @@
private DocTypeService docTypeService;
@Autowired
private OrderService orderService;
+ @Autowired
+ private CanFinMapper canFinMapper;
// region MES鎺ュ彛
@@ -171,8 +176,10 @@
newTag.setUpdateBy(defaultUserId);
newTag.setUpdateTime(now);
- if (!tagService.insert(newTag))
+ if (!tagService.insert(newTag)){
+ log.error("鎻掑叆tag澶辫触");
return -1;
+ }
tagId = newTag.getId();
} else {
tagId = tag.getId();
@@ -197,10 +204,13 @@
newMat.setUpdateTime(now);
newMat.setStatus(1);
if (mat == null) {
- if (!matService.insert(newMat))
+ if (!matService.insert(newMat)){
+ log.error("鎻掑叆澶辫触");
return -2;
+ }
}
} else {
+ log.error("tagId灏忎簬0");
return -1;
}
@@ -227,15 +237,25 @@
// 鏍¢獙璁㈠崟鏄惁閲嶅
OrderPakin order = orderPakinService.selectByNo(entry.getKey());
- // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
+ OrderPakin orderPakin;
+
+ // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦ㄤ笖settle涓�1鍒欒拷鍔犳槑缁嗭紱濡傛灉settle涓�6鍒欏垹闄ゅ悗閲嶆柊鐢熸垚锛涗綔涓氫腑鏃犳硶淇敼
if (!Cools.isEmpty(order)) {
- if (order.getSettle() > 1L) {
+ if (order.getSettle() > 1L && order.getSettle() < 6L) {
throw new CoolException(entry.getKey() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+ } else if (order.getSettle() == 6L) {
+ orderPakinService.remove(order.getId());
+ orderPakin = null;
+ } else if (order.getSettle() == 1L) {
+ orderPakin = order;
+ } else {
+ orderPakin = null;
}
- orderPakinService.remove(order.getId());
+ } else {
+ orderPakin = null;
}
- // 鐢熸垚璁㈠崟
+ // 鐢熸垚璁㈠崟鎴栨洿鏂拌鍗�
JSONObject newMemo = new JSONObject();
newMemo.put("sourceNo", matRecvForm.getSourceNo());
newMemo.put("sourceName", matRecvForm.getSourceName());
@@ -243,21 +263,27 @@
newMemo.put("itemdata", list);
- // 鐢熸垚璁㈠崟
- OrderPakin orderPakin = new OrderPakin();
- orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
- orderPakin.setOrderNo(entry.getKey());
- orderPakin.setOrderTime(DateUtils.convert(now));
- orderPakin.setDocType(docType);
- orderPakin.setSettle(1L);
- orderPakin.setStatus(1);
- orderPakin.setCreateBy(defaultUserId);
- orderPakin.setCreateTime(now);
- orderPakin.setUpdateBy(defaultUserId);
- orderPakin.setUpdateTime(now);
- orderPakin.setMemo(JSONObject.toJSONString(newMemo)); //涓哄嚭搴撳畬鎴愬弽棣堜繚瀛�
- orderPakin.setPakinPakoutStatus(1);
- orderPakinService.insert(orderPakin);
+ // 濡傛灉璁㈠崟涓嶅瓨鍦ㄦ垨宸插垹闄わ紝鍒欑敓鎴愭柊璁㈠崟
+ if (orderPakin == null) {
+ orderPakin = new OrderPakin();
+ orderPakin.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+ orderPakin.setOrderNo(entry.getKey());
+ orderPakin.setOrderTime(DateUtils.convert(now));
+ orderPakin.setDocType(docType);
+ orderPakin.setSettle(1L);
+ orderPakin.setStatus(1);
+ orderPakin.setCreateBy(defaultUserId);
+ orderPakin.setCreateTime(now);
+ orderPakin.setMemo(JSONObject.toJSONString(newMemo));
+ orderPakin.setPakinPakoutStatus(1);
+ orderPakinService.insert(orderPakin);
+ } else {
+ // 鏇存柊璁㈠崟鐨刴emo鍜屾洿鏂版椂闂�
+ orderPakin.setMemo(JSONObject.toJSONString(newMemo));
+ orderPakin.setUpdateBy(defaultUserId);
+ orderPakin.setUpdateTime(now);
+ orderPakinService.updateById(orderPakin);
+ }
if (list != null && !list.isEmpty()) {
for (MesMatInfo mesMatInfo : list) {
@@ -270,7 +296,7 @@
OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
orderDetlPakin.setOrderId(orderPakin.getId());
orderDetlPakin.setOrderNo(orderPakin.getOrderNo());
- orderDetlPakin.setAnfme(Double.valueOf(mesMatInfo.getQty()));
+ orderDetlPakin.setAnfme(mesMatInfo.getQty());
orderDetlPakin.setQty(0.0);
orderDetlPakin.setMatnr(mat.getMatnr());
orderDetlPakin.setMaktx(mat.getMaktx());
@@ -941,6 +967,7 @@
if (docType == null) {
return 0;
}
+
//鐢熸垚鍑哄簱鍗�
if (docType.getPakout() == 1) {
long settle = 1;
@@ -971,10 +998,47 @@
orderPakout.setMemo(JSONObject.toJSONString(mesCallOutApply));
orderPakout.setPakinPakoutStatus(2);
orderPakout.setCstmrName(mesCallOutApply.getStationId());//agv鐩爣绔欑偣
+/*
+ // 鏌ヨcan_fin琛ㄤ腑apply_time鏈�鏂扮殑璁板綍
+ List<CanFin> canFinList = canFinMapper.selectList(new EntityWrapper<CanFin>()
+ .orderBy("apply_time", false)
+ );
+ if (!canFinList.isEmpty()) {
+ CanFin firstCanFin = canFinList.get(0);
+ if (firstCanFin.getAgvType().equals("agv-in-out")) {
+ // 鍙慨鏀归渶瑕佹洿鏂扮殑瀛楁
+ if (firstCanFin.getOutNo() == null){
+ firstCanFin.setOutType("waiting");
+ firstCanFin.setOutNo(mesCallOutApply.getOrderNo());
+ // 纭繚鍏朵粬瀛楁淇濇寔涓嶅彉
+ canFinMapper.updateById(firstCanFin);
+ log.info("宸叉洿鏂癱an_fin琛ㄦ渶鏃╄褰曠殑out_no锛孖D锛歿}锛屽嚭搴撳崟鍙凤細{}",
+ firstCanFin.getId(), mesCallOutApply.getOrderNo());
+ }
+ }
+ }
+ */
+
if (!orderPakoutService.insert(orderPakout)) {
log.error("MES淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
throw new CoolException("淇濆瓨鍑哄簱璁㈠崟锛堝彨鏂欙級涓绘。澶辫触");
}
+
+ if (mesCallOutApply.getTransType().equals("瑁呴厤鍑哄簱鍗�")){
+ CanFin canFin = new CanFin();
+ Date time = now;
+ canFin.setAgvType("agv-out");
+ canFin.setOutNo(mesCallOutApply.getOrderNo());
+ List<CanFin> canFinList = canFinMapper.selectList(new EntityWrapper<>());
+ if (canFinList.isEmpty()){
+ canFin.setTaskStatus("canout");
+ }else {
+ canFin.setTaskStatus("waiting");
+ }
+ canFin.setApplyTime(time);
+ canFinMapper.insert(canFin);
+ }
+
Set<String> set = new HashSet<>();
// 鐢熸垚鏄庣粏
if (mesCallOutApply.getItemdata() != null && !mesCallOutApply.getItemdata().isEmpty()) {
@@ -1013,7 +1077,8 @@
//鏈夊灏戠涓嶅悓鐨勯厤鐩樺彿 鍙湁閰嶇洏鍑哄簱鍗曢渶瑕佺煡閬�
if (mesCallOutApply.getTransType().equals("閰嶇洏鍑哄簱鍗�")) {
orderPakout.setPayType(set.size());
- String shipCode = mesCallOutApply.getItemdata().get(0).getTrayid().split("-")[2];
+ String orderNo = mesCallOutApply.getOrderNo();
+ String shipCode = orderNo.substring(orderNo.lastIndexOf("-") + 1);
orderPakout.setShipCode(shipCode);//鍖哄煙 鏄惁鏄壒娈婃墭鐩�
orderPakoutService.updateById(orderPakout);
}
@@ -1136,8 +1201,19 @@
task.setPltType(transTask.getAgvFactory());//鍗庢檽AGV
task.setPacked(transTask.getRackNumber());//鏂欐灦鍙�
task.setCtnType(1);
+ task.setIsPda(transTask.getIsPDA());
if (taskService.insert(task)) {
+ if (transTask.getNextStationId().equals("307")){
+ CanFin canFin = new CanFin();
+ Date time = now;
+// canFin.setAgvType("agv-in-out");
+ canFin.setAgvType("agv-in");
+ canFin.setInNo(transTask.getTaskno());
+ canFin.setTaskStatus("waiting");
+ canFin.setApplyTime(time);
+ canFinMapper.insert(canFin);
+ }
result.put("Success", "1");
result.put("Message", "浠诲姟鎺ユ敹鎴愬姛");
@@ -1240,11 +1316,13 @@
mesReturn.setSuccess("2");
if ("Y".equals(allow.getStatus())) {
- String TaskNo = allow.getTaskno();
- if(allow.getTaskno().contains("-")){
- TaskNo = allow.getTaskno().substring(0, allow.getTaskno().length() - 2);
+
+ // 淇敼鍚庣殑閫昏緫锛氭湁"-"鍒欏幓鎺夋渶鍚庝竴涓�"-"鍙婂悗闈㈠唴瀹癸紝娌℃湁鍒欎繚鎸佸師鏍�
+ String taskNo = allow.getTaskno();
+ if (taskNo.contains("-")) {
+ taskNo = allow.getTaskno().substring(0, taskNo.lastIndexOf("-"));
}
- Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", TaskNo));
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", taskNo));
if (Cools.isEmpty(task)) {
mesReturn.setMessage("娌℃湁鎵句釜璇ヤ换鍔$紪鍙�=" + allow.getTaskno() + "鐨凙GV绉诲姩浠诲姟");
} else {
@@ -1332,13 +1410,14 @@
mesReturn.setSuccess("2");
if ("Y".equals(allow.getStatus())) {
- String TaskNo = allow.getTaskno();
- if(allow.getTaskno().contains("-")){
- TaskNo = allow.getTaskno().substring(0, allow.getTaskno().length() - 2);
+ // 淇敼鍚庣殑閫昏緫锛氭湁"-"鍒欏幓鎺夋渶鍚庝竴涓�"-"鍙婂悗闈㈠唴瀹癸紝娌℃湁鍒欎繚鎸佸師鏍�
+ String taskNo = allow.getTaskno();
+ if (taskNo.contains("-")) {
+ taskNo = allow.getTaskno().substring(0, taskNo.lastIndexOf("-"));
}
- Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", TaskNo));
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("task_no", taskNo));
if (Cools.isEmpty(task)) {
- mesReturn.setMessage("娌℃湁鎵句釜璇ヤ换鍔$紪鍙�=" + TaskNo + "鐨凙GV绉诲姩浠诲姟");
+ mesReturn.setMessage("娌℃湁鎵句釜璇ヤ换鍔$紪鍙�=" + taskNo + "鐨凙GV绉诲姩浠诲姟");
} else {
//鏌ョ湅鐢宠绔欑偣鐨勬槸娴峰悍杩樻槸鍗庢檽
//娴峰悍
@@ -1401,24 +1480,99 @@
}
@Override
- public int AGVPause(JSONObject params, int AGVType){
- MesReturn mesReturn = new MesReturn();
+ public int AGVPause(JSONObject mesInfo, String Type){
- String hik_url = "api/robot/controller/zone/pause";
- String hx_url = "";
- String URL = "";
- if (AGVType == 1){
- URL = HIK_URL + hik_url;
+ int i = HikPersonIn(mesInfo, Type);
+ int j = HxPersonIn(mesInfo, Type);
+
+ if (i == 1){
+ if (j == 1){
+ return 1;
+ }else
+ return 2;
}else {
- URL = HX_URL + hx_url;
+ if (j == 1){
+ return 3;
+ }else
+ return 4;
+ }
+ }
+
+ //浜哄憳鍏ヤ镜绯荤粺娴峰悍瀹炵幇鏂规硶
+ public int HikPersonIn(JSONObject param, String Type) {
+ String hik_blockUrl = "api/robot/controller/zone/blockade";
+ String hik_pauseUrl = "api/robot/controller/zone/pause";
+
+ String BLOCK_URL = HIK_URL + hik_blockUrl;
+ String PAUSE_URL = HIK_URL + hik_pauseUrl;
+
+ JSONObject rcsBlock = new JSONObject();
+ JSONObject rcsPause = new JSONObject();
+
+ rcsBlock.put("mapCode", "BB");
+ rcsPause.put("mapCode", "BB");
+
+ rcsBlock.put("zoneCode", param.getString("AreaCode"));
+ rcsPause.put("zoneCode", param.getString("AreaCode"));
+
+ if (Type.equals("STOP")){
+ rcsBlock.put("invoke", "BLOCKADE");
+ rcsPause.put("invoke","FREEZE");
+ }
+ if (Type.equals("START")){
+ rcsBlock.put("invoke", "OPENUP");
+ rcsPause.put("invoke","RUN");
}
- String response = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(params));
- JSONObject jsonObject = JSON.parseObject(response);
- if (!StringUtils.isEmpty(response) && jsonObject.getString("code").equals("SUCCESS")) {
+ String blockResponse = RcsServiceImpl.sendPost(BLOCK_URL, JSONObject.toJSONString(rcsBlock));
+ String PauseResponse = RcsServiceImpl.sendPost(PAUSE_URL, JSONObject.toJSONString(rcsPause));
+ JSONObject blockJsonObject = JSON.parseObject(blockResponse);
+ JSONObject pauseJsonObject = JSON.parseObject(PauseResponse);
+ if (!StringUtils.isEmpty(blockResponse) && (blockJsonObject.getString("code").equals("SUCCESS"))) {
+ if (!StringUtils.isEmpty(PauseResponse) && (pauseJsonObject.getString("code").equals("SUCCESS"))) {
return 1;
- }else
- return 2;
+ }
+ return 0;
+ }
+ //鐩存帴杩斿洖锛屼笉闇�瑕佷俊鎭�
+ return 0;
+ }
+
+ //浜哄憳鍏ヤ镜绯荤粺鍗庢檽瀹炵幇鏂规硶
+ public int HxPersonIn(JSONObject param, String Type) {
+ JSONObject rcsPause = new JSONObject();
+
+ String hx_url = "controller/notify/isstop";
+ String URL = HX_URL + hx_url;
+
+ rcsPause.put("agvno", 0);
+ rcsPause.put("areaNo", param.getString("AreaCode"));
+
+ if (Type.equals("STOP"))
+ rcsPause.put("action", "stop");
+
+ if (Type.equals("START"))
+ rcsPause.put("action", "start");
+
+ if (Type.equals("STOP")){
+ for (int i = 0; i < 10; i++){
+ String response = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(rcsPause));
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (!StringUtils.isEmpty(response) && (jsonObject.getString("code").equals("SUCCESS") || jsonObject.getInteger("code") == 200)) {
+ return 1;
+ }else
+ return 0;
+ }
+ }
+ if (Type.equals("START")){
+ String response = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(rcsPause));
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (!StringUtils.isEmpty(response) && (jsonObject.getString("code").equals("SUCCESS") || jsonObject.getInteger("code") == 200)) {
+ return 1;
+ }else
+ return 0;
+ }
+ return 0;
}
// endregion
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 6364b12..93ae542 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.param.*;
import com.zy.asrs.enums.CommonEnum;
import com.zy.asrs.enums.LocStsType;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
@@ -33,6 +34,8 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -82,6 +85,8 @@
private ManLocDetlService manLocDetlService;
@Autowired
private ManLocDetlMapper manLocDetlMapper;
+ @Autowired
+ private CanFinMapper canFinMapper;
@Autowired
private AdjDetlService adjDetlService;
@@ -563,7 +568,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public void comb(CombParam param, Long userId) {
+ public void
+ comb(CombParam param, Long userId) {
if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
throw new CoolException(BaseRes.PARAM);
}
@@ -726,11 +732,20 @@
waitPakin.setAppeTime(now);
waitPakin.setModiUser(userId);
waitPakin.setModiTime(now);
- waitPakin.setStandby1(detls.getStandby1());//閰嶇洏鍙�
+ if (!detlDto.getStandby1().isEmpty() && detlDto.getStandby1() != null && !detlDto.getStandby1().equals("")){
+ waitPakin.setStandby1(detls.getStandby1());//閰嶇洏鍙�
+ }
+
if (!waitPakinService.insert(waitPakin)) {
throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
}
}
+
+// Date date1 = now;
+// CanFin canFin = new CanFin();
+// canFin.setApplyTime(date1);
+// canFin.setAgvType("agv-in");
+// canFinMapper.insert(canFin);
Set<String> stringSet = param.getCombMats().stream().map(CombParam.CombMat::getOrderNo).collect(Collectors.toSet());
stringSet.forEach(orderNo -> {
@@ -1365,6 +1380,12 @@
// 鐢熸垚宸ヤ綔妗�
int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
WrkMast wrkMast = new WrkMast();
+ if (agvTaskNo!=null){
+ wrkMast.setUserNo(agvTaskNo);
+ }else {
+ Date date = new Date();
+ wrkMast.setUserNo(staNo + "aa" + date.getTime());
+ }
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(now);
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
@@ -1379,14 +1400,16 @@
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("Y"); // 绌烘澘
wrkMast.setLinkMis("N");
- wrkMast.setUserNo(agvTaskNo);
- wrkMast.setUserNo(String.valueOf(agvTaskNo));
wrkMast.setAppeUser(userId);
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
wrkMast.setMemo(staNo);
wrkMastService.insert(wrkMast);
+ CanFin canFin = new CanFin();
+ canFin.setAgvType("agv-out");
+ canFin.setApplyTime(now);
+ canFinMapper.insert(canFin);
// 鏇存柊搴撲綅鐘舵��
if (locMast.getLocSts().equals("D")) {
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index e3fa69b..d33aebf 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -327,8 +327,12 @@
String robotTaskCode = rcsReporterTask.getRobotTaskCode();
String singleRobotCode = rcsReporterTask.getSingleRobotCode();
- String[] split = robotTaskCode.split("-");
- robotTaskCode = split[0];
+
+ // 淇敼鍚庣殑閫昏緫锛氭湁"-"鍒欏幓鎺夋渶鍚庝竴涓�"-"鍙婂悗闈㈠唴瀹癸紝娌℃湁鍒欎繚鎸佸師鏍�
+ if (robotTaskCode.contains("-")) {
+ robotTaskCode = robotTaskCode.substring(0, robotTaskCode.lastIndexOf("-"));
+ }
+
//鍗庢檽AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
if(Cools.isEmpty(rcsReporterTask.getExtra())){
if(Cools.isEmpty(rcsReporterTask.getMethod())){
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java
index 69f5ead..55b3418 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java
@@ -1,9 +1,13 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.WrkDetlLogMapper;
import com.zy.asrs.entity.WrkDetlLog;
import com.zy.asrs.service.WrkDetlLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.service.WrkMastService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@@ -12,9 +16,17 @@
@Service("wrkDetlLogService")
public class WrkDetlLogServiceImpl extends ServiceImpl<WrkDetlLogMapper, WrkDetlLog> implements WrkDetlLogService {
+ @Autowired
+ private WrkMastService wrkMastService;
@Override
public boolean save(Integer workNo) {
- return this.baseMapper.save(workNo) > 0;
+ WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("wrk_no", workNo));
+ int result = this.baseMapper.save(workNo);
+ if (result > 0 && mast != null && mast.getIoTime() != null) {
+ this.baseMapper.updateIoTime(workNo, mast.getIoTime());
+ }
+ return result > 0;
}
@Override
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
index 9c1bcb7..979f073 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
@@ -38,7 +38,7 @@
Date now = new Date();
WrkMastLog wrkMastLog = new WrkMastLog();
wrkMastLog.setWrkNo(mast.getWrkNo());
- wrkMastLog.setIoTime(now);
+ wrkMastLog.setIoTime(mast.getIoTime());
wrkMastLog.setWrkSts(Math.toIntExact(mast.getWrkSts()));
wrkMastLog.setIoType(mast.getIoType());
wrkMastLog.setIoPri(mast.getIoPri()); // 浼樺厛绾�
diff --git a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
index 684dc50..8689217 100644
--- a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
@@ -1,14 +1,19 @@
package com.zy.asrs.task;
+import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.mes.MesReturn;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.service.OrderPakoutService;
import com.zy.asrs.service.TaskService;
import com.zy.asrs.service.WrkDetlService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.impl.BasDevpServiceImpl;
+import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.AGVTaskReportHandler;
import org.slf4j.Logger;
@@ -39,12 +44,21 @@
private BasDevpServiceImpl basDevpService;
@Autowired
private OrderPakoutService orderPakoutService;
+ @Autowired
+ private CanFinMapper canFinMapper;
+ @Value("${mes.url}")
+ private String MES_URL;
/**
* 婊℃澘鍜岀┖鏉垮嚭搴撲换鍔★紝鍑哄埌杈撻�佺嚎鍚庡垱寤篈GV鎼繍浠诲姟
*/
@Scheduled(cron = "0/3 * * * * ? ")
private void createAGVTask() {
+ try {
+ Thread.sleep(50);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
if (!switchErpReportOld) {
return;
}
@@ -76,7 +90,7 @@
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
if (wrkMast.getIoType()==110){
- if (wrkMast == null){
+ if (TaskNo == null){
TaskNo = 55555 + "aa" + date.getTime();
}
taskType = "ZX-AGV-08-1";
@@ -89,7 +103,6 @@
}else if (orderPakout.getDocType()==12){
taskType = "ZP-AGV";
}
-
}
}
@@ -115,6 +128,24 @@
if (!taskService.insert(task)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
} else {
+ if (!wrkMast.getBarcode().isEmpty() && !wrkMast.getMemo().isEmpty()) {
+ JSONObject map = new JSONObject();
+ map.put("orderNo", TaskNo);
+ map.put("barCode", wrkMast.getBarcode());
+ map.put("staNo", wrkMast.getStaNo());
+ log.info("鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+ String url = "ReceiveFinishedPalletCode";
+ String URL = MES_URL + url;
+ String response = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(map));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if("1".equals(mesReturn.getSuccess())) {
+ log.info("涓婃姤瀹屾垚 ==> 鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+ }else {
+ log.error("涓婃姤澶辫触 ==> 鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+ }
+ }
+ }
wrkMast.setWrkSts(31L);//31.AGV鎼繍浠诲姟鍒涘缓鎴愬姛
wrkMast.setModiTime(date);
wrkMastService.updateById(wrkMast);
@@ -126,8 +157,13 @@
/**
* AGV 浠诲姟涓嬪彂鎺ュ彛锛屽畾鏃剁粰AGV涓嬪彂浠诲姟
*/
- @Scheduled(cron = "0/3 * * * * ? ")
+ @Scheduled(cron = "0/5 * * * * ? ")
private void execute() {
+ try {
+ Thread.sleep(50);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
if (!switchErpReportOld) {
return;
}
@@ -135,6 +171,50 @@
List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 301).orderBy("appe_time"));
if (wrkSts != null && !wrkSts.isEmpty()) {
for (Task task : wrkSts) {
+
+ if (task.getStaNo().equals("307") && !task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+ //绛涢�夊叏閮ㄨ繕鏈畬鎴愮殑鍑哄簱浠诲姟
+ List<OrderPakout> orderPakouts = orderPakoutService.selectList(new EntityWrapper<OrderPakout>()
+ .in("settle", 1, 2) // 1琛ㄧず杩樻湭寮�濮嬶紝2琛ㄧず姝e湪鎵ц
+ .eq("doc_type", 12)
+ .orderBy("order_time", true));
+ if (!orderPakouts.isEmpty()) {
+ //鑾峰彇绗竴鏉″叆搴撳崟
+ OrderPakout orderPakout = orderPakouts.get(0);
+ // 濡傛灉绗竴鏉¤繕鏈紑濮嬬殑鍑哄簱浠诲姟鏃堕棿鏃╀簬绗竴鏉℃湭瀹屾垚鐨勫叆搴撲换鍔℃椂闂达紝璺宠繃锛屼笉鎵ц
+ if (orderPakout.getCreateTime().getTime() < task.getWrkDate().getTime()){
+ continue;
+ }
+ }
+ }
+
+
+// List<CanFin> canFinList = canFinMapper.selectList(new EntityWrapper<CanFin>()
+// .orderBy("apply_time", true)
+// );
+// if (!canFinList.isEmpty()) {
+// CanFin firstCanFin = canFinList.get(0);
+// // 妫�鏌� InNo 鏄惁涓虹┖
+// if (firstCanFin.getInNo() != null) {
+// // 妫�鏌ュ綋鍓嶄换鍔℃槸鍚︿笌杞簭浠诲姟鐩稿叧
+// if (task.getStaNo().equals("307")){
+// List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+// .in("io_type", 1, 10));
+// BasDevp basDevp = basDevpService.checkSiteStatus(Integer.parseInt(task.getStaNo()));
+// if (basDevp.getWrkNo() != 0 || !wrkMasts1.isEmpty()){
+// continue;
+// }
+// }
+// }
+// if (firstCanFin.getOutNo() != null){
+// if (!task.getSourceStaNo().equals("307")){
+// if (!task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+// continue;
+// }
+// }
+// }
+// }
+
//鏌ヨ鏄惁鏈夋鍦ㄤ綔涓氱殑婧愮珯鍜岀洰鏍囩珯鏈変竴鏍风殑agv鎼繍浠诲姟
//濡傛灉鏈夊垯璺宠繃鏈agv鎼繍浠诲姟涓嬪彂
Task task1 = taskService.selectOne(new EntityWrapper<Task>()
diff --git a/src/main/java/com/zy/asrs/task/ErrorStockScheduler.java b/src/main/java/com/zy/asrs/task/ErrorStockScheduler.java
index 917cfc4..430243f 100644
--- a/src/main/java/com/zy/asrs/task/ErrorStockScheduler.java
+++ b/src/main/java/com/zy/asrs/task/ErrorStockScheduler.java
@@ -1,18 +1,37 @@
package com.zy.asrs.task;
+import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.BasErrLog;
+import com.zy.asrs.entity.mes.MesReturn;
+import com.zy.asrs.service.BasErrLogService;
+import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.ErrorStockHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
/**
* Created by vincent on 2020/7/7
*/
@Component
public class ErrorStockScheduler {
+
+ @Value("${mes.url}")
+ public String MES_URL;
+
+ @Autowired
+ private BasErrLogService basErrLogService;
private static final Logger log = LoggerFactory.getLogger(ErrorStockScheduler.class);
@@ -27,4 +46,59 @@
}
}
+
+
+ /**
+ * 姣忔棩鏁呴殰淇℃伅涓婃姤
+ */
+ @Scheduled(cron = "0 0 20 * * ? ")
+ public void faultReport() {
+ // 鑾峰彇浠婂ぉ鐨勫紑濮嬫椂闂�
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ Date todayStart = calendar.getTime();
+
+ // 鑾峰彇浠婂ぉ鐨勭粨鏉熸椂闂�
+ calendar.set(Calendar.HOUR_OF_DAY, 23);
+ calendar.set(Calendar.MINUTE, 59);
+ calendar.set(Calendar.SECOND, 59);
+ calendar.set(Calendar.MILLISECOND, 999);
+ Date todayEnd = calendar.getTime();
+
+ List<BasErrLog> basErrLogs = basErrLogService.selectList(
+ new EntityWrapper<BasErrLog>()
+ .between("create_time", todayStart, todayEnd)
+ .orderBy("create_time", false)
+ );
+
+ int totalCount = basErrLogs.size();
+ long totalTime = 0;
+
+ for (BasErrLog basErrLog : basErrLogs) {
+ if (basErrLog.getStartTime() != null && basErrLog.getEndTime() != null) {
+ totalTime += basErrLog.getEndTime().getTime() - basErrLog.getStartTime().getTime();
+ }
+ }
+
+ JSONObject params = new JSONObject();
+ params.put("totalCount", totalCount);
+ params.put("totalTime", totalTime / 1000);
+
+ String url = "ErrorLogReport";
+ String URL = MES_URL + url;
+ String response = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(params));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if("1".equals(mesReturn.getSuccess())) {
+ log.info("涓婃姤瀹屾垚 ==> 鏁呴殰娆℃暟锛歿}, 鎬绘椂闀匡細{}", totalCount, totalTime);
+ }else {
+ log.error("涓婃姤澶辫触 ==> 鏁呴殰娆℃暟锛歿}, 鎬绘椂闀匡細{}", totalCount, totalTime);
+ }
+ }
+
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index 1e31768..f03525a 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -8,6 +8,7 @@
import com.zy.asrs.controller.OutController;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.mes.*;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.asrs.task.core.ReturnT;
@@ -40,6 +41,8 @@
private OrderService orderService;
@Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private TaskService taskService;
@Resource
private OrderPakinService orderPakinService;
@Resource
@@ -69,6 +72,9 @@
@Autowired
private OutController outController;
+
+ @Autowired
+ private CanFinMapper canFinMapper;
@Scheduled(cron = "0 0 1 * * ? ")
public void clearApiLog() {
@@ -257,11 +263,12 @@
}
// 瑁呴厤鍗曡嚜鍔ㄥ嚭搴�
- @Scheduled(cron = "0/3 * * * * ? ")
+ @Scheduled(cron = "* * * * * ? ")
// @Async("orderThreadPool")
void AutoOutOrderPinOut() throws InterruptedException {
String erpReport = Parameter.get().getErpReport();
if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
+ //绛涢�夎繕娌℃墽琛岀殑鍑哄簱浠诲姟
List<OrderPakout> orderPakouts = orderPakoutService.selectList(new EntityWrapper<OrderPakout>()
.eq("settle", 1)
.eq("doc_type", 12)
@@ -270,6 +277,51 @@
return;
}
for (OrderPakout orderPakout : orderPakouts) {
+// //绛涢�夊叏閮ㄨ繕鏈墽琛岀殑鍏ュ簱浠诲姟
+// List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>()
+// .eq("sta_no", "307")
+// .in("wrk_sts", 301,202)
+// .orderBy("wrk_date", true)
+// );
+// if (!wrkSts.isEmpty()) {
+// //鑾峰彇绗竴鏉″叆搴撳崟
+// Task task = wrkSts.get(0);
+// // 濡傛灉绗竴鏉¤繕鏈紑濮嬬殑鍑哄簱浠诲姟鏃堕棿鏅氫簬绗竴鏉℃湭瀹屾垚鐨勫叆搴撲换鍔℃椂闂达紝璺宠繃锛屼笉鎵ц
+// if (orderPakout.getCreateTime().getTime() > task.getWrkDate().getTime()){
+// continue;
+// }
+// }
+
+ String sourceNo = orderPakout.getCstmrName();
+ List<Task> tasks = taskService.selectList(new EntityWrapper<Task>()
+ .eq("source_sta_no", sourceNo)
+ .in("wrk_sts", 301, 302, 303));
+ if (!tasks.isEmpty() && tasks != null){
+ continue;
+ }
+
+// // 鏌ヨcan_fin琛ㄤ腑鐩稿悓鍗曞彿鐨勫唴瀹�
+// List<CanFin> conntOut = canFinMapper.selectList(
+// new EntityWrapper<CanFin>()
+// .eq("out_no", orderPakout.getOrderNo())
+// );
+// if (!conntOut.isEmpty()) {
+// // 妫�鏌ユ槸鍚︽弧瓒崇户缁墽琛岀殑鏉′欢锛歛gv_type涓篴gv-in-out涓攖ask_type涓篶anout
+// boolean canContinue = false;
+// for (CanFin canFin : conntOut) {
+//// if ("agv-in-out".equals(canFin.getAgvType()) && "canout".equals(canFin.getTaskStatus())) {
+// if ("agv-out".equals(canFin.getAgvType()) && "canout".equals(canFin.getTaskStatus())) {
+// log.info("can_fin琛ㄦ湁婊¤冻鏉′欢鐨勮褰曪紝鎵ц鍑哄簱鍗曪細{}", orderPakout.getOrderNo());
+// canContinue = true;
+// break;
+// }
+// }
+// if (!canContinue) {
+// // 涓嶆弧瓒虫潯浠讹紝璺宠繃鍑哄簱鍗�
+// continue;
+// }
+// }
+
List<LocDto> locDtos = new ArrayList<>();
Boolean boo = false;
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 1e685d1..33e977c 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,12 +1,11 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.BasErrLog;
import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.DigitalTwinService;
-import com.zy.asrs.service.MesService;
-import com.zy.asrs.service.TaskService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.*;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkMastHandler;
import org.slf4j.Logger;
@@ -39,6 +38,9 @@
@Resource
private DigitalTwinService digitalTwinService;
+ /**
+ * 瀹氭椂缁熻姣忓ぉ鍓╀綑搴撳瓨
+ */
@Scheduled(cron = "0 50 23 * * ?")
private void locNumCount() {
digitalTwinService.locNumCount();
diff --git a/src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java b/src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java
index f9eb275..9f2675b 100644
--- a/src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AGVTaskReportHandler.java
@@ -31,6 +31,7 @@
public ReturnT<String> start(Task task) {
+ String taskType = "NB1";
String SourceStaNoType = "SITE";
String TargetStaNoType = "SITE";
//缁檃gv涓嬪彂鐨勪换鍔$被鍨�,榛樿绔欏埌绔�
@@ -42,34 +43,42 @@
}else if(task.getIoType()==5){
SourceStaNoType = "ZONE";
}
- String taskType = "PP";
Boolean flag1 = false;
Boolean flag2 = false;
Boolean cpFlag1 = false;
Boolean cpFlag2 = false;
if(stationProperties.getStation().contains(task.getStaNo())){
- if (task.getStaNo().equals("Z-LVL18")){
- taskType = "LJCPIN";
- cpFlag1 = true;
- }else {
- taskType = "LJIN";
- flag1 = true;
- }
+ taskType = "LJIN";
+ flag1 = true;
}
- if (stationProperties.getStation().contains(task.getSourceStaNo())){
- if (task.getSourceStaNo().equals("Z-LVL18")){
- cpFlag2 = true;
- taskType = "LJCPOUT";
- }else{
- taskType = "LJOUT";
- flag2 = true;
- }
+ if (stationProperties.getStation().contains(task.getSourceStaNo())) {
+ taskType = "LJOUT";
+ flag2 = true;
}
- if(flag1 && flag2){
+ if(flag1 && flag2) {
taskType = "LJBOTH";
}
- if (cpFlag1 && cpFlag2){
- taskType = "LJCPBOTH";
+ if (task.getStaNo().equals("Z-LVL18")){
+ taskType = "LJCPIN";
+ }
+ if (task.getSourceStaNo().equals("Z-LVL18")){
+ taskType = "LJCPOUT";
+ }
+ if (task.getSourceStaNo().equals("Z-LVL20")||task.getSourceStaNo().equals("Z-LVL21")||task.getSourceStaNo().equals("Z-LVL22")||
+ task.getSourceStaNo().equals("Z-LVL23")||task.getSourceStaNo().equals("Z-LVL24")||task.getSourceStaNo().equals("Z-LVL25")||
+ task.getSourceStaNo().equals("Z-LVL26")||task.getSourceStaNo().equals("Z-LVL27")||task.getSourceStaNo().equals("Z-LVL28")||
+ task.getSourceStaNo().equals("Z-LVL29")||task.getSourceStaNo().equals("Z-LVL30")||task.getSourceStaNo().equals("Z-LVL31")){
+ taskType = "HKCPIN";
+ }
+ if (task.getStaNo().equals("Z-LVL20")||task.getStaNo().equals("Z-LVL21")||task.getStaNo().equals("Z-LVL22")||
+ task.getStaNo().equals("Z-LVL23")||task.getStaNo().equals("Z-LVL24")||task.getStaNo().equals("Z-LVL25")||
+ task.getStaNo().equals("Z-LVL26")||task.getStaNo().equals("Z-LVL27")||task.getStaNo().equals("Z-LVL28")||
+ task.getStaNo().equals("Z-LVL29")||task.getStaNo().equals("Z-LVL30")||task.getStaNo().equals("Z-LVL31")
+ ){
+ taskType = "HKCPOUT";
+ }
+ if (task.getIsPda() != null && task.getIsPda().equals("Y")){
+ taskType = "NB1";
}
//AGV鍖哄煙涓棤娉曠敤-
String StaNo = task.getStaNo();
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index c9a3aed..fab9bcb 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -3,15 +3,18 @@
import com.alibaba.excel.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.mes.MesReturn;
import com.zy.asrs.enums.LocStsType;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.OrderInAndOutUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -57,6 +60,11 @@
private TaskDetlService taskDetlService;
@Autowired
private BasStationServiceImpl basStationService;
+
+ @Autowired
+ private OrderPakoutService orderPakoutService;
+ @Autowired
+ private CanFinMapper canFinMapper;
@Value("${mes.url}")
private String url;
@@ -455,13 +463,49 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
+ // 灏唚aitPakin琛ㄤ腑鐨勬暟鎹爣璁颁负宸插鐞�
+ if (wrkMast.getIoType() == 1) { // 鍏ㄦ澘鍏ュ簱
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode());
+ WaitPakin setParam = new WaitPakin();
+ setParam.setStatus("N");
+ setParam.setModiTime(new Date());
+ waitPakinService.update(setParam, wrapper);
+ log.info("鏇存柊搴撳瓨鎴愬姛锛佹墭鐩樼爜锛歿}", wrkMast.getBarcode());
+ }
} catch (Exception e) {
log.error("fail", e);
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg(e.getMessage());
}
+ if (wrkMast.getStaNo().equals("307")){
+ try{
+ CanFin canFin = new CanFin();
+ List<CanFin> canFinList = canFinMapper.selectList(
+ new EntityWrapper<CanFin>()
+ .orderBy("apply_time", true)
+ );
+ if (canFinList != null){
+ CanFin firstCanFin = canFinList.get(0);
+ if (firstCanFin.getAgvType().equals("agv-in")){
+// if (firstCanFin.getAgvType().equals("agv-in-out")){
+ canFinMapper.deleteById(firstCanFin.getId());
+ if (canFinList.size() > 1){
+ CanFin firstCanFin1 = canFinList.get(1);
+ firstCanFin1.setTaskStatus("canout");
+ log.info("can_fin琛ㄥ凡鏇存柊锛屽叆搴撳崟鐘舵�亄}", firstCanFin1.getOutType());
+ canFinMapper.updateById(firstCanFin1);
+ }
+ }
+// else if(firstCanFin.getAgvType().equals("agv-in")){
+// canFinMapper.deleteById(firstCanFin.getId());
+// }
+ }
+ } catch (Exception e) {
+ log.error("鏈鍏ュ簱娌℃湁浠诲姟鍗�");
+ }
+ }
return SUCCESS;
}
@@ -592,12 +636,84 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
+ // 妫�鏌ラ厤鐩樺崟鏄惁宸插畬鎴�
+ List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ for (WrkDetl wrkDetl : wrkDetls) {
+ if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+ OrderInAndOutUtil.checkComplete(Boolean.FALSE, wrkDetl.getOrderNo());
+ break;
+ }
+ }
} catch (Exception e) {
log.error("fail", e);
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg(e.getMessage());
}
+
+ if (wrkMast.getStaNo().equals("307")){
+ try{
+ List<CanFin> firstCanFinList = canFinMapper.selectList(
+ new EntityWrapper<CanFin>()
+ .orderBy("apply_time", true)
+ );
+ CanFin firstCanfin = firstCanFinList.get(0);
+ if (firstCanfin.getOutNo() != null && firstCanfin.getAgvType().equals("agv-out")){
+ log.info("can_fin琛ㄥ凡鏇存柊锛屽嚭搴撳崟{}宸插垹闄�",firstCanfin.getOutNo());
+ canFinMapper.deleteById(firstCanfin.getId());
+ }
+ if (firstCanfin.getOutNo() == null && firstCanfin.getAgvType().equals("agv-out")){
+ log.info("can_fin琛ㄥ凡鏇存柊锛屽嚭搴撲换鍔″凡鍒犻櫎锛屽綋鍓嶅嚭搴撴棤浠诲姟鍗�");
+ canFinMapper.deleteById(firstCanfin.getId());
+ }
+ if (firstCanFinList.size() > 1){
+ CanFin secondCanFin = firstCanFinList.get(1);
+ secondCanFin.setTaskStatus("canout");
+ canFinMapper.updateById(secondCanFin);
+ }
+// else {
+// OrderPakout isOut = orderPakoutService.selectOne(
+// new EntityWrapper<OrderPakout>()
+// .eq("settle", 2L)
+// .eq("doc_type", 12L));
+// String outOrderNo = isOut.getOrderNo();
+// List<CanFin> canFinList = canFinMapper.selectList(
+// new EntityWrapper<CanFin>()
+// .eq("agv_type", "agv-in-out")
+// .orderBy("apply_time", true)
+// );
+// if (canFinList != null){
+// CanFin firstCanFin = canFinList.get(0);
+//
+// OrderPakout isOut = orderPakoutService.selectOne(
+// new EntityWrapper<OrderPakout>()
+// .eq("orderNo", firstCanFin.getOutNo()));
+//
+// String outOrderNo = isOut.getOrderNo();
+// if (outOrderNo.equals(firstCanFin.getOutNo())){
+// log.info("can_fin琛ㄥ凡鏇存柊锛岃浆搴忓嚭搴撳崟{}宸插垹闄�", firstCanFin.getOutNo());
+// canFinMapper.deleteById(firstCanFin.getId());
+// }else {
+// log.info("鏈壘鍒拌鍑哄簱鍗曪紝can_fin琛ㄦ湭鏇存柊");
+// }
+// List<CanFin> canFinList1 = canFinMapper.selectList(
+// new EntityWrapper<CanFin>()
+// .eq("agv_type", "agv-in-out")
+// .orderBy("apply_time", true));
+// if (!canFinList1.isEmpty()){
+// CanFin firstCanFin2 = canFinList.get(0);
+// firstCanFin2.setTaskType("Y");
+// log.info("can_fin琛ㄥ凡鏇存柊锛岃浆搴忓嚭搴撳崟鍙互杞簭", firstCanFin2.getOutNo());
+// canFinMapper.updateById(firstCanFin2);
+// }
+// }
+// }
+ } catch (Exception e) {
+ log.error("鏈鍑哄簱娌℃湁浠诲姟鍗�");
+ return null;
+ }
+ }
+
return SUCCESS;
}
@@ -634,16 +750,23 @@
map.put("StationId", task.getSourceStaNo());
String mesUrl = url+"AGVArrivalCompletedFit";
String response = RcsServiceImpl.sendPost(mesUrl, JSONObject.toJSONString(map));
+ log.info("AGV浠诲姟瀹屾垚杞彂MES");
if (!StringUtils.isEmpty(response) && response.contains("Success")){
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
if("1".equals(mesReturn.getSuccess())) {
+ log.info("AGV浠诲姟瀹屾垚杞彂MES鎴愬姛");
task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
task.setModiTime(new Date());
taskService.updateById(task);
}else {
+ log.error("AGV浠诲姟瀹屾垚杞彂MES澶辫触");
return new ReturnT<>(500, mesReturn.getMessage());
}
}
+ }else {
+ task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+ task.setModiTime(new Date());
+ taskService.updateById(task);
}
}else {
task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
diff --git a/src/main/java/com/zy/common/config/AdminInterceptor.java b/src/main/java/com/zy/common/config/AdminInterceptor.java
index 795e7a1..515b0e5 100644
--- a/src/main/java/com/zy/common/config/AdminInterceptor.java
+++ b/src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -122,8 +122,8 @@
User user = userService.selectById(userLogin.getUserId());
// String deToken = Cools.deTokn(token, user.getPassword());
// long timestamp = Long.parseLong(deToken.substring(0, 13));
- // 15鍒嗛挓鍚庤繃鏈�
- if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 900000){
+ // 涓�灏忔椂鍚庤繃鏈�
+ if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 3600000){
Http.response(response, BaseRes.DENIED);
return false;
}
diff --git a/src/main/java/com/zy/common/config/LogAspect.java b/src/main/java/com/zy/common/config/LogAspect.java
index 533e920..50a63ea 100644
--- a/src/main/java/com/zy/common/config/LogAspect.java
+++ b/src/main/java/com/zy/common/config/LogAspect.java
@@ -28,7 +28,7 @@
@Order(2)
public class LogAspect {
- private final List<String> logApiList = Stream.of("digitalTwin", "api/mes", "api/robot")
+ private final List<String> logApiList = Stream.of("api/mes", "api/robot")
.collect(Collectors.toList());
public LogAspect() {
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index baf4f20..bf47542 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -171,7 +171,12 @@
}
Short locType1 = 1;
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("loc_type1", locType1).orderBy("lev1").orderBy("bay1").orderBy("row1"));
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "O")
+ .eq("loc_type1", locType1)
+ .orderBy("lev1")
+ .orderBy("bay1")
+ .orderBy("row1"));
if (locMast == null) {
log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locType1);
throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛氭棤搴撲綅" + locType1);
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 9ac8e9f..30e3918 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -1,14 +1,18 @@
package com.zy.common.web;
+import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.mes.MesReturn;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.common.CodeRes;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.StartupDto;
@@ -17,6 +21,7 @@
import com.zy.common.web.param.SearchLocParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -54,6 +59,9 @@
@Autowired
private TaskService taskService;
+ @Value("${mes.url}")
+ public String MES_URL;
+
// TODO锛氱О閲嶃�佹媿鐓т笂鎶ュ瓨鍌紝CTU鏂欑杩愯浆
@PostMapping("/pakin/loc/v1")
@@ -66,8 +74,29 @@
if (Cools.isEmpty(param.getSourceStaNo())) {
return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
}
- if (Cools.isEmpty(param.getSourceStaNo())) {
- return R.error("鎵樼洏涓嶈兘涓虹┖鎴栬�呮墭鐩樼爜涓嶄负鍏綅");
+ if (Cools.isEmpty(param.getBarcode()) || param.getBarcode().equals("00000000")) {
+ return R.error(".鎵樼洏鐮佷笉鑳戒负绌烘垨鑰呮墭鐩樼爜涓�0");
+ }
+ if (param.getSourceStaNo() == 301 || param.getSourceStaNo() == 304){
+ String url = "CameraPictureRecognition";
+
+// return R.error("閰嶇洏涓嶆纭�");
+// String URL = MES_URL + url;
+// String URL = "172.26.160.74:8080/basicmodel/WmsFit/Api/CameraPictureRecognition";
+// try{
+// String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(param));
+// if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+// MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+// if ("2".equals(mesReturn.getSuccess())) {
+// return R.error("閰嶇洏涓嶆纭�");
+// }else {
+// log.info("閰嶇洏姝g‘锛屽厑璁稿叆搴�");
+// }
+// }
+// } catch (Exception e) {
+// return R.error("MES鍦板潃杩炴帴瓒呮椂");
+// }
+
}
List<WaitPakin> waitPakins = null;
if (param.getIoType() == 1) {
@@ -315,6 +344,8 @@
}
//鏌ョ湅鏄惁鏈夌浉鍏崇殑AGV鎼繍浠诲姟瀛樺湪
List<Task> tasks = taskService.selectList(new EntityWrapper<Task>()
+ .eq("task_type", "AGV琛ョ┖鏂欐灦")
+ .andNew()
.in("sta_no", wrkMast.getStaNo(),wrkMast.getMemo())
.or()
.in("source_sta_no", wrkMast.getStaNo(),wrkMast.getMemo()));
diff --git a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
index 99d99cc..ff2c7f5 100644
--- a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
+++ b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -84,29 +84,29 @@
LicenseVerify licenseVerify = new LicenseVerify();
//瀹夎璇佷功
-// LicenseContent install = licenseVerify.install(param);
+ LicenseContent install = licenseVerify.install(param);
logger.info("++++++++ 璁稿彲璇佸姞杞界粨鏉� ++++++++");
logger.info("++++++++ 璁稿彲璇佸姞杞芥爣璁帮紝鎼滅储淇敼 ++++++++");
- licenseTimer.setSystemSupport(true);
- licenseTimer.setLicenseDays(9999);
- return true;
+// licenseTimer.setSystemSupport(true);
+// licenseTimer.setLicenseDays(9999);
+// return true;
-// licenseTimer.setSystemSupport(install!=null);
-//
-// if (install != null) {
-// Date start = new Date();
-// Date end = install.getNotAfter();
-// Long starTime = start.getTime();
-// Long endTime = end.getTime();
-// Long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
-// int day = (int) (num / 24 / 60 / 60 / 1000);
-// licenseTimer.setLicenseDays(day);
-// }
-//
-//
-// return install != null;
+ licenseTimer.setSystemSupport(install!=null);
+
+ if (install != null) {
+ Date start = new Date();
+ Date end = install.getNotAfter();
+ Long starTime = start.getTime();
+ Long endTime = end.getTime();
+ Long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
+ int day = (int) (num / 24 / 60 / 60 / 1000);
+ licenseTimer.setLicenseDays(day);
+ }
+
+
+ return install != null;
} catch (Exception e) {
return false;
}
diff --git a/src/main/java/com/zy/system/timer/LicenseTimer.java b/src/main/java/com/zy/system/timer/LicenseTimer.java
index a56a24c..b8ea349 100644
--- a/src/main/java/com/zy/system/timer/LicenseTimer.java
+++ b/src/main/java/com/zy/system/timer/LicenseTimer.java
@@ -11,8 +11,8 @@
private static int LICENSE_DAYS = 0;//璁稿彲璇佸ぉ鏁�
- //姣忓ぉ鏅氫笂11鐐规洿鏂扮郴缁熸縺娲荤姸鎬�
- @Scheduled(cron = "0 0 23 * * ? ")
+ //姣忓ぉ13鐐规洿鏂扮郴缁熸縺娲荤姸鎬�
+ @Scheduled(cron = "0 0 20 * * ? ")
public void timer() {
// System.out.println(SYSTEM_SUPPORT);
//楠岃瘉璁稿彲璇佹槸鍚︽湁鏁�
diff --git a/src/main/java/com/zy/system/timer/LoadingConfigTimer.java b/src/main/java/com/zy/system/timer/LoadingConfigTimer.java
index 12e4a0a..1d3cdd8 100644
--- a/src/main/java/com/zy/system/timer/LoadingConfigTimer.java
+++ b/src/main/java/com/zy/system/timer/LoadingConfigTimer.java
@@ -18,7 +18,7 @@
/**
* token鏈夋晥鏈熸椂闂�
*/
- private Integer tokenExpire = 1000 * 30 * 60;
+ private Integer tokenExpire = 1000 * 60 * 60 * 5;
/**
* token鏁伴噺闄愬埗
*/
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 871500f..c0c75c8 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -12,7 +12,7 @@
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: sa
password: sa@123
- url: jdbc:sqlserver://172.26.11.80:1433;databasename=jnejc-ljqwms
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=jnejc-ljqwms
# username: sa
# password: Skyouc#23
# url: jdbc:sqlserver://192.168.4.24:1433;databasename=jsxswms
@@ -50,7 +50,7 @@
#License鐩稿叧閰嶇疆
license:
- subject: jnejc-ljqasrs
+ subject: jnejc-hkwms
publicAlias: publicCert
storePass: public_zhongyang_123456789
licensePath: license.lic
@@ -61,13 +61,13 @@
# 鍙屾繁
doubleDeep: true
# 鍙屾繁搴撲綅鎺掑彿
- doubleLocs: 1,4,5,8,9,12,13,16
+ doubleLocs: 3,8,9,12,13,16
# 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
groupCount: 4
# 宸︽繁搴撲綅鎺掑彿
- doubleLocsLeft: 1,5,9,13
+ doubleLocsLeft: 3,9,13
# 鍙虫繁搴撲綅鎺掑彿
- doubleLocsRight: 4,8,12,16
+ doubleLocsRight: 8,12,16
# wms鍙傛暟閰嶇疆
wms-parameter:
# 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏�
@@ -134,8 +134,9 @@
#mes瀵规帴
mes:
-
- url: http://172.26.160.5:80/dev-api/basicmodel/WmsFit/Api/
+ url: http://192.9.100.173:8088/prod-api/basicmodel/WmsFit/Api/
+# url: http://172.26.160.73:8080/basicmodel/WmsFit/Api/
+# url: http://172.26.160.5:8080/basicmodel/WmsFit/Api/
#榛樿鎺ュ彛鎿嶄綔浜哄憳id
defaultUserId: 30
diff --git a/src/main/resources/license.lic b/src/main/resources/license.lic
index 22364dc..a6bdd04 100644
--- a/src/main/resources/license.lic
+++ b/src/main/resources/license.lic
Binary files differ
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index 2f71db0..2731013 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -20,7 +20,7 @@
</appender>
<!-- 鏃ュ織淇濆瓨璺緞 -->
- <property name="LOG_PATH" value="D:/wmslogs/jg" />
+ <property name="LOG_PATH" value="D:/ljqwmslogs/ljq" />
<!--info绾у埆-->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml
index 86e6ec7..37b366b 100644
--- a/src/main/resources/mapper/TaskMapper.xml
+++ b/src/main/resources/mapper/TaskMapper.xml
@@ -9,7 +9,7 @@
</resultMap>
<select id="selectToBeCompleteData" resultType="com.zy.asrs.entity.Task">
- select * from agv_task where wrk_sts = 304 order by upd_mk,error_time,io_time,wrk_no
+ select * from agv_task where wrk_sts = 305 order by upd_mk,error_time,io_time,wrk_no
</select>
</mapper>
diff --git a/src/main/webapp/views/pakStore/groupinto.html b/src/main/webapp/views/pakStore/groupinto.html
new file mode 100644
index 0000000..b8eba31
--- /dev/null
+++ b/src/main/webapp/views/pakStore/groupinto.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <style>
+ html {
+ height: 100%;
+ padding: 10px;
+ background-color: #f1f1f1;
+ box-sizing: border-box;
+ }
+ body {
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 0 3px rgba(0,0,0,.3);
+ }
+
+ .function-area {
+ padding: 20px 50px;
+ }
+ .function-btn {
+ font-size: 16px;
+ padding: 1px 2px;
+ width: 100px;
+ height: 50px;
+ border-color: #2b425b;
+ border-radius: 4px;
+ border-width: 2px;
+ background: none;
+ border-style: solid;
+ transition: 0.4s;
+ cursor: pointer;
+ letter-spacing: 1.5px;
+ }
+ .function-btn:hover {
+ background-color: #2b425b;
+ color: #fff;
+ }
+
+ .layui-layer-page .layui-layer-content {
+ position: relative;
+ overflow: visible !important;
+ }
+
+ #mat-query {
+ display: none;
+ }
+
+ #staNoSpan {
+ text-align: center;
+ display: inline-block;
+ width: 100px;
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-form-select {
+ display: inline-block;
+ width: 150px;
+ height: 30px;
+ }
+ .layui-btn-container .layui-form-select.layui-form-selected {
+ display: inline-block;
+ width: 150px;
+ }
+ .layui-btn-container .layui-select-title input {
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-anim.layui-anim-upbit dd {
+ font-size: 13px;
+ }
+
+ #btn-comb {
+ margin-left: 60px;
+ display: none;
+ }
+ </style>
+</head>
+<body>
+<!-- 鍔熻兘鍖� -->
+<div class="function-area">
+ <button id="mat-query" class="function-btn">鎻愬彇鍟嗗搧</button>
+</div>
+
+<hr>
+
+<!-- 琛ㄦ牸 -->
+<div style="padding-bottom: 5px; margin-bottom: 45px">
+
+ <!-- 澶撮儴 -->
+ <script type="text/html" id="toolbar">
+ <div class="layui-form">
+ <div class="layui-btn-container">
+ <!-- 1.閫夋嫨鍏ュ簱鍙� -->
+ <span id="staNoSpan">鍏ュ簱鍙o細</span>
+ <select id="putSiteSelect" lay-verify="required">
+ <option value="">璇烽�夋嫨绔欑偣</option>
+ </select>
+ <!-- 2.鍚姩鍏ュ簱 -->
+ <button class="layui-btn layui-btn-normal layui-btn-lg" id="btn-comb" lay-event="comb" style="">鍚姩鍏ュ簱</button>
+
+ </div>
+ </div>
+ </script>
+
+ <!-- 琛� -->
+ <script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">绉婚櫎</a>
+ </script>
+
+ <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/pakStore/pakStore.js" charset="utf-8"></script>
+
+<script type="text/template" id="putSiteSelectTemplate">
+ {{#each data}}
+ <option value="{{this}}">{{this}}</option>
+ {{/each}}
+</script>
+</body>
+</html>
+
--
Gitblit v1.9.1