From cb98548ecc0fa2d4388eb67528b98be39670bc0c Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 20 七月 2023 10:05:02 +0800
Subject: [PATCH] agv 有单入库功能
---
src/main/webapp/static/js/agvLocDetl/locDetl.js | 2
src/main/webapp/static/js/agvLocRule/locRule.js | 2
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 214 +++++++++++++++++------------
src/main/java/com/zy/asrs/controller/AgvOpenController.java | 47 -----
src/main/java/com/zy/asrs/service/AgvWrkDetlService.java | 3
src/main/java/com/zy/asrs/controller/AgvWorkController.java | 4
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | 9 +
src/main/webapp/static/js/orderDetl/orderDetl.js | 2
src/main/webapp/static/js/locDetl/locDetl.js | 2
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 11 +
src/main/java/com/zy/asrs/utils/AppAuthUtil.java | 23 +++
src/main/webapp/static/js/locRule/locRule.js | 2
src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java | 10 -
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | 11 +
src/main/java/com/zy/asrs/controller/AgvMobileController.java | 12 +
src/main/webapp/static/js/agvBasDevp/basDevp.js | 2
src/main/webapp/static/js/order/out.js | 2
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 41 ++++-
src/main/webapp/static/js/common.js | 6
19 files changed, 244 insertions(+), 161 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 2ee810a..90e71b5 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -34,12 +34,18 @@
private AgvWorkService workService;
+ /*
+ locno锛熺粍鎵�+缁戝畾鏆傚瓨浣� 锛� 缁勬墭
+ */
@PostMapping("/comb/auth")
public R comb(@RequestBody CombParam combParam){
String message = agvMobileService.comb(combParam, 1l);
return R.ok(message);
}
+ /*
+ 缁戝畾鎵樼洏鏉$爜涓庢殏瀛樹綅
+ */
@PostMapping("/combBinging/auth")
public R combBinding(@RequestBody Map<String,Object> map){
String barcode = map.get("barcode").toString();
@@ -48,6 +54,9 @@
return R.ok("鎵樼洏缁戝畾绔欑偣鎴愬姛");
}
+ /*
+ 鑾峰彇褰撳墠宸茬粦瀹氱殑杩樻病鐢熸垚宸ヤ綔妗g殑鏆傚瓨浣�
+ */
@PostMapping("/getBasDevp/auth")
public R getBasDevpByFloor(@RequestBody Map<String,Object> map){
String floor = map.get("floor").toString();
@@ -57,6 +66,9 @@
return R.error("鍙傛暟閿欒");
}
+ /*
+ 鍚姩鍏ュ簱锛岀敓鎴愬伐浣滄。
+ */
@PostMapping("/pakin/auth")
public R pakin(@RequestBody Map<String,Object> map){
List<String> devNos = (List<String>) map.get("devNo");
diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
index e825c78..d922dfe 100644
--- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -1,14 +1,13 @@
package com.zy.asrs.controller;
-import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.AppAuth;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.AgvWrkMast;
-import com.zy.asrs.entity.ApiLog;
import com.zy.asrs.entity.param.AgvTaskCallBackParam;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.AppAuthUtil;
import com.zy.common.web.BaseController;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@@ -21,9 +20,9 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.Date;
import java.util.EnumSet;
/**
@@ -54,10 +53,10 @@
@PostMapping("/task/event/status")
@AppAuth(memo = "ESS浠诲姟鍥炶皟")
- public R taskEventStaus(@RequestBody AgvTaskCallBackParam param){
+ public R taskEventStaus(@RequestBody AgvTaskCallBackParam param, HttpServletRequest request){
- //淇濆瓨姣忔璋冪敤璇ユ帴鍙g殑鍙傛暟锛屼綔涓哄巻鍙插彲鏌ヨ
- //saveApiLog(param);
+ //save api log (appkey 鍚庣画娣诲姞)
+ AppAuthUtil.auth("test-appkey",param, request);
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode()));
if(Cools.isEmpty(agvWrkMast)){
@@ -95,15 +94,6 @@
return true;
}
- private void saveApiLog(AgvTaskCallBackParam param){
- ApiLog apiLog = new ApiLog();
- apiLog.setNamespace("ESS浠诲姟鍥炶皟");
- apiLog.setUrl("/agv/task/event/status");
- apiLog.setRequest(JSONObject.toJSONString(param));
- apiLog.setCreateTime(new Date());
- apiLogService.insert(apiLog);
- }
-
}
enum AgvTask{
@@ -114,27 +104,8 @@
task{
@Transactional
public void success(AgvTaskCallBackParam param) {
-
//淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),205);
-
- /*
- int wrkNo = Integer.valueOf(param.getTaskCode());
- String barcode = agvWrkMastService.selectById(wrkNo).getBarcode();
- //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
- agvWrkMastLogService.save(wrkNo);
- //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
- agvWrkDetlLogService.save(wrkNo);
- //鍒犻櫎AGV宸ヤ綔妗�
- agvWrkMastService.deleteById(wrkNo);
- //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
- agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
- //鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗�
- agvWaitPakinLogService.save(barcode);
- //鍒犻櫎鍏ュ簱閫氱煡妗�
- agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("zpallet",barcode));
- */
-
}
public void fail(AgvTaskCallBackParam param) {
@@ -203,14 +174,8 @@
tote_unload{
@Transactional
public void success(AgvTaskCallBackParam param) {
- int wrkNo = Integer.valueOf(param.getTaskCode());
- String barcode = agvWrkMastService.selectById(wrkNo).getBarcode();
- //淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱
- //agvLocMastService.updateLocStsByLocNo(param.getLocationCode(),"F");
- //鏇存柊鐩爣搴撲綅鏄庣粏
- //agvLocDetlService.addLocDetlInfo(param.getLocationCode(),wrkNo);
//淇敼宸ヤ綔妗g姸鎬佷负204.鏀捐揣瀹屾垚
- agvWrkMastService.updateWrkStsByWrkNo(wrkNo,204);
+ agvWrkMastService.updateWrkStsByWrkNo(Integer.valueOf(param.getTaskCode()),204);
}
public void fail(AgvTaskCallBackParam param) {
diff --git a/src/main/java/com/zy/asrs/controller/AgvWorkController.java b/src/main/java/com/zy/asrs/controller/AgvWorkController.java
index e176b34..67dcb26 100644
--- a/src/main/java/com/zy/asrs/controller/AgvWorkController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvWorkController.java
@@ -5,7 +5,6 @@
import com.core.common.R;
import com.zy.asrs.entity.AgvBasDevp;
import com.zy.asrs.service.AgvWorkService;
-import com.zy.common.model.StartupDto;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -21,13 +20,14 @@
@Autowired
private AgvWorkService workService;
+ //TODO 绉诲姩鍒癆gvBasDevpController涓嬮潰
@RequestMapping("/create/waitPain/wrkMast/start")
@ManagerAuth(memo = "鐢熸垚浠诲姟")
public R createWaitPainWrkMastStart(@RequestParam String param) {
List<AgvBasDevp> agvBasDevpList = JSONArray.parseArray(param, AgvBasDevp.class);
- StartupDto startupDto = workService.createWaitPainWrkMastStart(agvBasDevpList, getUserId());
+ workService.createWaitPainWrkMastStart(agvBasDevpList, getUserId());
//return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo());
return R.ok("鐢熸垚鍏ュ簱宸ヤ綔妗f垚鍔�");
diff --git a/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java b/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java
index 78747a6..d9522c0 100644
--- a/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/AgvWrkDetlService.java
@@ -3,13 +3,12 @@
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.AgvWrkDetl;
import com.zy.asrs.entity.WrkDetl;
-import com.zy.common.model.DetlDto;
import java.util.List;
public interface AgvWrkDetlService extends IService<AgvWrkDetl> {
- void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId);
+ //void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId);
List<WrkDetl> selectByWrkNo(Integer wrkNo);
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index 60f20e7..bf873fb 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -39,6 +39,9 @@
private AgvBasDevpService agvBasDevpService;
+ /*
+ 缁勬墭 + 缁戝畾鏆傚瓨浣�
+ */
@Override
@Transactional
public String comb(CombParam param, Long userId) {
@@ -46,98 +49,18 @@
throw new CoolException(BaseRes.PARAM);
}
+ //妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓鐨勬墭鐩樻潯鐮侊紝瀛樺湪鍒欐姏鍑哄紓甯�
if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().
eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
}
- Date now = new Date();
- //鏃犲崟缁勬墭
if (Cools.isEmpty(param.getOrderNo())) {
- List<DetlDto> detlDtos = new ArrayList<>();
- param.getCombMats().forEach(elem -> {
- DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
- if (DetlDto.has(detlDtos, detlDto)) {
- DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
- assert one != null;
- one.setAnfme(one.getAnfme() + detlDto.getAnfme());
- } else {
- detlDtos.add(detlDto);
- }
- });
-
- detlDtos.forEach(detlDto -> {
- Mat mat = matService.selectByMatnr(detlDto.getMatnr());
- if (Cools.isEmpty(mat)) {
- throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
- }
- AgvWaitPakin waitPakin = new AgvWaitPakin();
- waitPakin.setBatch(detlDto.getBatch());//鎵瑰彿
-
- waitPakin.sync(mat);
- waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
- waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
- waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
- waitPakin.setStatus("Y"); // 鐘舵��
- waitPakin.setAppeUser(userId);
- waitPakin.setAppeTime(now);
- waitPakin.setModiUser(userId);
- waitPakin.setModiTime(now);
- if (!agvWaitPakinService.insert(waitPakin)) {
- throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
- }
- });
+ //鏃犲崟缁勬墭
+ NoOrderComb(param,userId);
}else {
- //鍏宠仈缁勬墭
- Order order = orderService.selectByNo(param.getOrderNo());
- if (order.getSettle() > 2) {
- throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
- }
- // 鐢熸垚鍏ュ簱閫氱煡妗�
- List<DetlDto> detlDtos = new ArrayList<>();
- param.getCombMats().forEach(elem -> {
-
- // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
- OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch());
- if (elem.getAnfme() > orderDetl.getEnableQty()) {
- throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
- }
- // 淇敼璁㈠崟鏄庣粏鏁伴噺
- if (!orderDetlService.increase(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) {
- throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
- }
-
- DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
- if (DetlDto.has(detlDtos, detlDto)) {
- DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
- assert one != null;
- one.setAnfme(one.getAnfme() + detlDto.getAnfme());
- } else {
- detlDtos.add(detlDto);
- }
- });
- for (DetlDto detlDto : detlDtos) {
- Mat mat = matService.selectByMatnr(detlDto.getMatnr());
- if (Cools.isEmpty(mat)) {
- throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
- }
- AgvWaitPakin waitPakin = new AgvWaitPakin();
- waitPakin.sync(mat);
- waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿
- waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮�
- waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮�
- waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
- waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
- waitPakin.setStatus("Y"); // 鐘舵��
- waitPakin.setAppeUser(userId);
- waitPakin.setAppeTime(now);
- waitPakin.setModiUser(userId);
- waitPakin.setModiTime(now);
- if (!agvWaitPakinService.insert(waitPakin)) {
- throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
- }
- }
- orderService.updateSettle(order.getId(), 2L, userId);
+ //鏈夊崟缁勬墭
+ OrderComb(param,userId);
}
if(StringUtils.isEmpty(param.getLocno())){
@@ -148,6 +71,114 @@
}
}
+
+ /*
+ AGV鏃犲崟缁勬墭
+ */
+ private void NoOrderComb(CombParam param, Long userId){
+ List<DetlDto> detlDtos = mappingDetlDtoByCombMat(param,null);
+
+ //鐢ㄤ簬缁熶竴涓�涓墭鐩樹笅鐨勫叆搴撻�氱煡妗g殑鐢熸垚鏃堕棿
+ Date now = new Date();
+ detlDtos.forEach(detlDto -> {
+ syncWaitPakin(detlDto,"",param.getBarcode(),userId,now);
+ });
+ }
+
+ /*
+ AGV鏈夊崟缁勬墭
+ */
+ private void OrderComb(CombParam param, Long userId){
+ //鍏宠仈缁勬墭
+ Order order = orderService.selectByNo(param.getOrderNo());
+ if(Cools.isEmpty(order)){
+ throw new CoolException("鍗曟嵁缂栧彿涓嶅瓨鍦�");
+ }
+ //璁㈠崟鐘舵��2浠ヤ笂涓哄畬鎴愭垨鑰呭彇娑堢殑璁㈠崟
+ if (order.getSettle() > 2) {
+ throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+ }
+ // 鐢ㄤ簬鐢熸垚鍏ュ簱閫氱煡妗f墍闇�鍙傛暟
+ List<DetlDto> detlDtos = mappingDetlDtoByCombMat(param,order);
+ //鐢ㄤ簬缁熶竴涓�涓墭鐩樹笅鐨勫叆搴撻�氱煡妗g殑鐢熸垚鏃堕棿
+ Date now = new Date();
+ for (DetlDto detlDto : detlDtos) {
+ //鍚屾鐢熸垚鍏ュ簱閫氱煡妗�
+ syncWaitPakin(detlDto,order.getOrderNo(),param.getBarcode(),userId,now);
+ }
+ //淇敼鍗曟嵁鐘舵�佷负2.浣滀笟涓�
+ orderService.updateSettle(order.getId(), 2L, userId);
+ }
+
+ /*
+ 鏍规嵁PDA鎵爜鎵�浼犵殑鐗╂枡淇℃伅鍙傛暟鏄犲皠涓篋etlDto
+ */
+ private List<DetlDto> mappingDetlDtoByCombMat(CombParam param, Order order){
+ List<DetlDto> detlDtos = new ArrayList<>();
+ param.getCombMats().forEach(combMat -> {
+
+ if(!Cools.isEmpty(order)){
+ //妫�鏌ュ叆搴撴暟閲�
+ checkOrderQty(order,combMat);
+ }
+
+ DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme());
+ //鍚屼竴鎵樼洏涓嬬浉鍚岀墿鏂欎俊鎭拰鎵瑰彿杞负涓�涓叆搴撻�氱煡妗�
+ if (DetlDto.has(detlDtos, detlDto)) {
+ DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+ assert one != null;
+ one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+ } else {
+ detlDtos.add(detlDto);
+ }
+ });
+
+ return detlDtos;
+ }
+
+ /*
+ 妫�鏌ュ叆搴撴暟閲忔槸鍚﹀皬浜庣瓑浜庡崟鎹暟閲忥紝鍚堢悊鍒欎慨鏀筄rderDetl浣滀笟鏁伴噺淇℃伅锛屽惁鍒欐姏鍑哄紓甯�
+ */
+ private void checkOrderQty(Order order, CombParam.CombMat combMat){
+ // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙锛屽鏋滀綔涓氭暟閲忓ぇ浜庡崟鎹暟閲忓垯鎶涘嚭寮傚父
+ OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch());
+ if(Cools.isEmpty(orderDetl)){
+ throw new CoolException("鏈尮閰嶅埌璇ュ崟鎹笅鐨勭墿鏂�");
+ }
+ if (combMat.getAnfme() > orderDetl.getEnableQty()) {
+ throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+ }
+ // 淇敼璁㈠崟鏄庣粏鏁伴噺
+ if (!orderDetlService.increase(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) {
+ throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
+ }
+ }
+
+ /*
+ 鍚屾鐢熸垚AGV鍏ュ簱閫氱煡妗f暟鎹�
+ */
+ private void syncWaitPakin(DetlDto detlDto, String orderNo, String zpallet, Long userId, Date now ){
+ Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ AgvWaitPakin waitPakin = new AgvWaitPakin();
+ waitPakin.sync(mat);
+ waitPakin.setOrderNo(orderNo); // 鍗曟嵁缂栧彿
+ waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮�
+ waitPakin.setZpallet(zpallet); // 鎵樼洏鐮�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(detlDto.getAnfme()); // 鏁伴噺
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ if (!agvWaitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ }
+
@Override
@Transactional
@@ -163,9 +194,14 @@
@Override
public void combBinding(String barcode, String stationCode) {
- EntityWrapper<AgvBasDevp> wrapper = new EntityWrapper<>();
- wrapper.eq("dev_no",stationCode);
- AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(wrapper);
+
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", barcode));
+
+ if(!Cools.isEmpty(agvBasDevp)){
+ throw new CoolException(barcode + "宸茬粡缁戝畾鍦�"+ agvBasDevp.getDevNo() +"绔欑偣");
+ }
+
+ agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no",stationCode));
if(agvBasDevp == null){
throw new CoolException(stationCode + "绔欑偣淇℃伅閿欒");
}
@@ -175,7 +211,7 @@
agvBasDevp.setBarcode(barcode);
agvBasDevp.setLocSts("F");
- agvBasDevpService.update(agvBasDevp,wrapper);
+ agvBasDevpService.update(agvBasDevp,(new EntityWrapper<AgvBasDevp>().eq("dev_no",stationCode)));
}
public List<AgvBasDevp> getAgvBasDevpByFloor(int floor) {
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 059d889..4d06510 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -3,12 +3,8 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.AgvBasDevp;
-import com.zy.asrs.entity.AgvLocMast;
-import com.zy.asrs.entity.AgvWaitPakin;
-import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
-import com.zy.common.model.DetlDto;
import com.zy.common.model.StartupDto;
import com.zy.common.service.AgvCommonService;
import lombok.extern.slf4j.Slf4j;
@@ -16,7 +12,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -44,6 +39,8 @@
private AgvWrkMastService agvWrkMastService;
@Autowired
private AgvWrkDetlService agvWrkDetlService;
+ @Autowired
+ private MatService matService;
@Override
public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId) {
@@ -66,7 +63,7 @@
//鐢熸垚宸ヤ綔妗�
AgvWrkMast wrkMast = createWrkMast(agvBasDevp, agvLocMast, now, userId);
//鐢熸垚宸ヤ綔妗f槑缁�
- createWrkDetl(agvWaitPakinList,wrkMast,userId);
+ createWrkDetlReWrite(agvWaitPakinList,wrkMast,userId);
//鏇存柊婧愮珯鐐逛俊鎭�
updateAgvBasDevp(agvBasDevp);
//鏇存柊鐩爣搴撲綅鐘舵��
@@ -96,7 +93,7 @@
/*
鐢熸垚宸ヤ綔妗f槑缁�
*/
- private void createWrkDetl(List<AgvWaitPakin> agvWaitPakinList, AgvWrkMast wrkMast, Long userId){
+ /* private void createWrkDetl(List<AgvWaitPakin> agvWaitPakinList, AgvWrkMast wrkMast, Long userId){
List<DetlDto> detlDtos = new ArrayList<>();
agvWaitPakinList.forEach(agvWaitPakin -> {
DetlDto detlDto = new DetlDto(agvWaitPakin.getMatnr(), agvWaitPakin.getBatch(), agvWaitPakin.getAnfme());
@@ -109,7 +106,33 @@
}
});
agvWrkDetlService.createWorkDetail(wrkMast.getWrkNo(), detlDtos, wrkMast.getBarcode(), userId);
-
+ }*/
+ /*
+ 鐢熸垚宸ヤ綔妗f槑缁�
+ */
+ private void createWrkDetlReWrite(List<AgvWaitPakin> agvWaitPakinList, AgvWrkMast wrkMast, Long userId){
+ Date now = new Date();
+ agvWaitPakinList.stream().forEach(agvWaitPakin -> {
+ Mat mat = matService.selectByMatnr(agvWaitPakin.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(agvWaitPakin.getMatnr() + "鍟嗗搧缁存姢澶辫触");
+ }
+ AgvWrkDetl wrkDetl = new AgvWrkDetl();
+ wrkDetl.sync(mat);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setOrderNo(agvWaitPakin.getOrderNo());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setBatch(agvWaitPakin.getBatch());
+ wrkDetl.setAnfme(agvWaitPakin.getAnfme()); // 鏁伴噺
+ wrkDetl.setZpallet(agvWaitPakin.getZpallet()); // 鎵樼洏鏉$爜
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setModiTime(now);
+ if (!agvWrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
}
/*
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java
index 3e8fd7e..647b9b3 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkDetlServiceImpl.java
@@ -1,20 +1,14 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.core.common.Cools;
-import com.core.exception.CoolException;
import com.zy.asrs.entity.AgvWrkDetl;
-import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.WrkDetl;
import com.zy.asrs.mapper.AgvWrkDetlMapper;
import com.zy.asrs.service.AgvWrkDetlService;
import com.zy.asrs.service.MatService;
-import com.zy.common.model.DetlDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
import java.util.List;
@Service
@@ -23,6 +17,7 @@
@Autowired
private MatService matService;
+ /*
@Override
@Transactional
public void createWorkDetail(Integer workNo, List<DetlDto> detlDtos, String barcode, Long userId) {
@@ -39,6 +34,7 @@
AgvWrkDetl wrkDetl = new AgvWrkDetl();
wrkDetl.sync(mat);
wrkDetl.setWrkNo(workNo);
+ wrkDetl.setOrderNo(dto.getOrderNo());
wrkDetl.setIoTime(now);
wrkDetl.setBatch(dto.getBatch());
wrkDetl.setAnfme(dto.getAnfme()); // 鏁伴噺
@@ -52,7 +48,7 @@
}
}
}
-
+ */
@Override
public List<WrkDetl> selectByWrkNo(Integer wrkNo) {
return this.baseMapper.selectByWrkNo(wrkNo);
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index eb6fc70..b23a41c 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -44,10 +44,19 @@
public void updateWrkStsByWrkNo(int wrkNo, long wrkSts) {
AgvWrkMast agvWrkMast = this.selectById(wrkNo);
+ //鍒ゆ柇瑕佷慨鏀圭殑宸ヤ綔妗g姸鎬佹槸鍚﹀悎鐞嗭紝濡傛灉涓嶅悎鐞嗗垯鎶涘嚭寮傚父
+ checkWrkSts(agvWrkMast,wrkSts);
agvWrkMast.setWrkSts(wrkSts);
this.updateById(agvWrkMast);
}
+ private boolean checkWrkSts(AgvWrkMast agvWrkMast,long wrkSts){
+
+ // 鍒ゆ柇瑙勫垯TODO
+
+ return true;
+ }
+
public Map<String,List<Map<String,String>>> startWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 0bf3dcb..6d9e534 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -40,6 +40,8 @@
@Autowired
private WrkDetlService wrkDetlService;
@Autowired
+ private AgvWrkDetlService agvWrkDetlService;
+ @Autowired
private MatService matService;
@Autowired
private ErpService erpService;
@@ -66,10 +68,14 @@
@Override
public void checkComplete(String orderNo) {
Order order = this.selectByNo(orderNo);
+ if(Cools.isEmpty(order)){
+ return;
+ }
if (order.getSettle() >= 4L) {
return;
}
List<OrderDetl> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()));
+ // 浣滀笟鏁伴噺鏄惁绛変簬鏁伴噺
boolean complete = true;
for (OrderDetl orderDetl : orderDetls) {
if (orderDetl.getAnfme() > orderDetl.getQty()) {
@@ -77,7 +83,10 @@
break;
}
}
- if (complete && wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) == 0) {
+ // 濡傛灉 浣滀笟鏁伴噺绛変簬鍗曟嵁鎬绘暟閲� && 宸ヤ綔鏄庣粏妗d腑鏃犺鍗曟嵁鐨勬暟鎹� && AGV宸ヤ綔鏄庣粏妗d腑鏃犺鍗曟嵁鐨勬暟鎹�
+ if (complete
+ && wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo)) < 1
+ && agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().eq("order_no",orderNo)) < 1) {
// 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏
DocType docType = docTypeService.selectById(order.getDocType());
if (null != docType && docType.getPakout() == 1) {
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index b09c2b6..a0c3d12 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -34,11 +34,14 @@
AgvWaitPakinService agvWaitPakinService;
@Autowired
AgvWaitPakinLogService agvWaitPakinLogService;
+ @Autowired
+ OrderService orderService;
@Transactional
public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
int wrkNo = agvWrkMast.getWrkNo();
String barcode = agvWrkMast.getBarcode();
+ String orderNo = getOrderNoByWrkNo(wrkNo);
//淇敼宸ヤ綔妗g姸鎬佷负206.搴撳瓨鏇存柊瀹屾垚
agvWrkMast.setWrkSts(206L);
@@ -59,6 +62,9 @@
agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
//鍒犻櫎鍏ュ簱閫氱煡妗�
agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("zpallet",barcode));
+
+ //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
+ orderService.checkComplete(orderNo);
return SUCCESS;
}
@@ -84,4 +90,9 @@
return FAIL;
}
+
+ private String getOrderNoByWrkNo(int wrkNo){
+ AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo));
+ return agvWrkDetl.getOrderNo();
+ }
}
diff --git a/src/main/java/com/zy/asrs/utils/AppAuthUtil.java b/src/main/java/com/zy/asrs/utils/AppAuthUtil.java
new file mode 100644
index 0000000..b2a3128
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/AppAuthUtil.java
@@ -0,0 +1,23 @@
+package com.zy.asrs.utils;
+
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Slf4j
+public class AppAuthUtil {
+ private static final boolean auth = true;
+
+ public static void auth(String appkey, Object obj, HttpServletRequest request) {
+ request.setAttribute("cache", obj);
+
+ if (Cools.isEmpty(appkey)) {
+ throw new CoolException("璁よ瘉澶辫触锛岃纭appkey鏃犺锛�");
+ }
+// if (!APP_KEY_LIST.contains(appkey)) {
+// throw new CoolException("璁よ瘉澶辫触锛岃纭appkey鏃犺锛�");
+// }
+ }
+}
diff --git a/src/main/webapp/static/js/agvBasDevp/basDevp.js b/src/main/webapp/static/js/agvBasDevp/basDevp.js
index 8bbafbf..75c55ac 100644
--- a/src/main/webapp/static/js/agvBasDevp/basDevp.js
+++ b/src/main/webapp/static/js/agvBasDevp/basDevp.js
@@ -77,7 +77,7 @@
return html;
}}
,{field: 'locSts$', align: 'center',title: '璐т綅鐘舵��'}
- ,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�', edit:true, style:'color: blue;font-weight: bold'}
+ //,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�', edit:true, style:'color: blue;font-weight: bold'}
,{field: 'floor', align: 'center',title: '妤�'}
//,{field: 'locType1$', align: 'center',title: '楂樹綆'}
,{field: 'barcode', align: 'center',title: '鏉″舰鐮�'}
diff --git a/src/main/webapp/static/js/agvLocDetl/locDetl.js b/src/main/webapp/static/js/agvLocDetl/locDetl.js
index d315d9e..6892802 100644
--- a/src/main/webapp/static/js/agvLocDetl/locDetl.js
+++ b/src/main/webapp/static/js/agvLocDetl/locDetl.js
@@ -11,7 +11,7 @@
,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
,{field: 'specs', align: 'center',title: '瑙勬牸'}
- ,{field: 'model', align: 'center',title: '浠g爜', hide: true}
+ ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿', hide: true}
,{field: 'color', align: 'center',title: '棰滆壊', hide: true}
,{field: 'brand', align: 'center',title: '鍝佺墝', hide: true}
,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
diff --git a/src/main/webapp/static/js/agvLocRule/locRule.js b/src/main/webapp/static/js/agvLocRule/locRule.js
index 25d6898..2a9dd5e 100644
--- a/src/main/webapp/static/js/agvLocRule/locRule.js
+++ b/src/main/webapp/static/js/agvLocRule/locRule.js
@@ -25,7 +25,7 @@
// ,{field: 'id', align: 'center',title: 'ID'}
,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿'}
,{field: 'specs', align: 'center',title: '瑙勬牸', hide: true}
- ,{field: 'model', align: 'center',title: '鍨嬪彿', hide: true}
+ ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿', hide: true}
,{field: 'cstmr', align: 'center',title: '瀹㈡埛', hide: true}
,{field: 'batch', align: 'center',title: '鎵瑰彿'}
,{field: 'other', align: 'center',title: '鍏朵粬', hide: true}
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 5639590..b719bce 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -185,7 +185,7 @@
,{field: 'name', align: 'center',title: '绉诲姩绫诲瀷', hide: true}
,{field: 'maktx', align: 'center',title: '鐗╂枡鍚嶇О', width: 150}
,{field: 'specs', align: 'center',title: '瑙勬牸', hide: false}
- ,{field: 'model', align: 'center',title: '鎵规', hide: true}
+ ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿', hide: true}
,{field: 'manuDate', align: 'center',title: '鍗曟嵁鏃堕棿', hide: false}
,{field: 'weight', align: 'center',title: '閲嶉噺', hide: false}
,{field: 'units', align: 'center',title: '鏀暟', hide: false}
@@ -222,13 +222,13 @@
var detlCols = [
,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜', width: 110}
,{field: 'matnr', align: 'center',title: '鐗╂枡鍙�'}
- ,{field: 'model', align: 'center',title: '鎵瑰彿'}
+ ,{field: 'batch', align: 'center',title: '搴忓垪鐮�', width: 300, sort:true, hide: false}
,{field: 'maktx', align: 'center',title: '鐗╂枡鍚嶇О'}
,{field: 'specs', align: 'center',title: '瑙勬牸'}
,{field: 'anfme', align: 'center',title: '鏁伴噺'}
,{field: 'name', align: 'center',title: '绉诲姩绫诲瀷', hide: true}
,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: false}
- ,{field: 'batch', align: 'center',title: '搴忓垪鐮�', width: 300, sort:true, hide: true}
+ ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿', hide: true}
,{field: 'manuDate', align: 'center',title: '鍗曟嵁鏃堕棿', hide: true}
,{field: 'weight', align: 'center',title: '閲嶉噺', hide: true}
,{field: 'units', align: 'center',title: '鏀暟', hide: true}
diff --git a/src/main/webapp/static/js/locDetl/locDetl.js b/src/main/webapp/static/js/locDetl/locDetl.js
index 4b7432f..dda89c0 100644
--- a/src/main/webapp/static/js/locDetl/locDetl.js
+++ b/src/main/webapp/static/js/locDetl/locDetl.js
@@ -11,7 +11,7 @@
,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
,{field: 'specs', align: 'center',title: '瑙勬牸'}
- ,{field: 'model', align: 'center',title: '浠g爜', hide: true}
+ ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿', hide: true}
,{field: 'color', align: 'center',title: '棰滆壊', hide: true}
,{field: 'brand', align: 'center',title: '鍝佺墝', hide: true}
,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
diff --git a/src/main/webapp/static/js/locRule/locRule.js b/src/main/webapp/static/js/locRule/locRule.js
index 62df390..1089ff5 100644
--- a/src/main/webapp/static/js/locRule/locRule.js
+++ b/src/main/webapp/static/js/locRule/locRule.js
@@ -25,7 +25,7 @@
// ,{field: 'id', align: 'center',title: 'ID'}
,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿'}
,{field: 'specs', align: 'center',title: '瑙勬牸', hide: true}
- ,{field: 'model', align: 'center',title: '鍨嬪彿', hide: true}
+ ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿', hide: true}
,{field: 'cstmr', align: 'center',title: '瀹㈡埛', hide: true}
,{field: 'batch', align: 'center',title: '鎵瑰彿'}
,{field: 'other', align: 'center',title: '鍏朵粬', hide: true}
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index dbb2dad..c053d55 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -40,7 +40,7 @@
// ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
// ,{field: 'name', align: 'center',title: '鍚嶇О'}
- // ,{field: 'model', align: 'center',title: '鎵规'}
+ // ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿'}
,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
// ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
diff --git a/src/main/webapp/static/js/orderDetl/orderDetl.js b/src/main/webapp/static/js/orderDetl/orderDetl.js
index 1a0cb04..9ab257f 100644
--- a/src/main/webapp/static/js/orderDetl/orderDetl.js
+++ b/src/main/webapp/static/js/orderDetl/orderDetl.js
@@ -29,7 +29,7 @@
,{field: 'maktx', align: 'center',title: '鐗╂枡鍙�'}
,{field: 'name', align: 'center',title: '鍚嶇О'}
,{field: 'specs', align: 'center',title: '瑙勬牸'}
- ,{field: 'model', align: 'center',title: '鎵规'}
+ ,{field: 'model', align: 'center',title: '閫氱敤鍨嬪彿'}
,{field: 'batch', align: 'center',title: '搴忓垪鐮�'}
,{field: 'unit', align: 'center',title: '鍗曚綅'}
,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜'}
--
Gitblit v1.9.1