From af8f87298fc611ac371216e278a18abac6ca0766 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期一, 28 十月 2024 12:11:50 +0800
Subject: [PATCH] sql注入漏洞
---
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 369 ++++++++++++++++++++++++++++++++--------------------
1 files changed, 225 insertions(+), 144 deletions(-)
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 1ee8a64..96ef1d5 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -4,10 +4,10 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.beust.jcommander.internal.Lists;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.MesBuyPakinReportParam;
import com.zy.asrs.entity.param.MesOrderReportParam;
import com.zy.asrs.entity.param.MesPakinReportParam;
import com.zy.asrs.entity.param.MesPakoutReportParam;
@@ -15,7 +15,6 @@
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.utils.HttpHandler;
-import io.swagger.models.auth.In;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,18 +31,25 @@
public class AgvWrkMastHandler extends AbstractHandler<String> {
//鍏ュ簱绫诲瀷鏁扮粍
- private static final List<Integer> IN_TYPE_LIST = new ArrayList<Integer>(){{
+ private static final List<Integer> IN_TYPE_LIST = new ArrayList<Integer>() {{
add(1);
}};
//private static final int[] IN_TYPE_ARRAY = {1};
//鍑哄簱绫诲瀷鏁扮粍
- private static final List<Integer> OUT_TYPE_List = new ArrayList<Integer>(){{
+ private static final List<Integer> OUT_TYPE_List = new ArrayList<Integer>() {{
// add(101);
}};
//private static final int[] OUT_TYPE_ARRAY = {101};
//绉诲簱绫诲瀷鏁扮粍
- private static final List<Integer> MOVE_TYPE_List = new ArrayList<Integer>(){{
- add(11);add(101); add(12); add(53); add(101); add(108); add(111); add(112);
+ private static final List<Integer> MOVE_TYPE_List = new ArrayList<Integer>() {{
+ add(11);
+ add(101);
+ add(12);
+ add(53);
+ add(101);
+ add(108);
+ add(111);
+ add(112);
}};
@@ -59,6 +65,8 @@
private String orderReportPath;
@Value("${mes.pakinReportPath}")
private String pakinReportPath;
+ @Value("${mes.buyPakinReportPath}")
+ private String buyPakinReportPath;
@Value("${mes.pakoutReportPath}")
private String pakoutReportPath;
@Value("${mes.getTokenPath}")
@@ -93,13 +101,17 @@
private AgvWorkService agvWorkService;
@Autowired
private ApiLogService apiLogService;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private OrderDetlService orderDetlService;
@Transactional
public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) {
//鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
- try{
+ try {
int wrkNo = agvWrkMast.getWrkNo();
String barcode = agvWrkMast.getBarcode();
String orderNo = getOrderNoByWrkNo(wrkNo);
@@ -110,6 +122,8 @@
agvBasDevp = agvWrkMast.getSourceLocNo();
}
+
+ agvWrkMast.setModiTime(new Date());
//淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
agvWrkMast.setWrkSts(207L);
agvWrkMastService.updateById(agvWrkMast);
@@ -123,29 +137,29 @@
agvWrkDetlLogService.save(wrkNo);
}
- switch (agvWrkMast.getIoType()){
+ switch (agvWrkMast.getIoType()) {
case 1:
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
//鏇存柊鐩爣搴撲綅鏄庣粏
log.info("鏇存柊鐩爣搴撲綅鏄庣粏 agvWrkMast.getLocNo(): " + agvWrkMast.getLocNo() + ", wrkNo: " + wrkNo);
- agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo);
+ agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(), wrkNo);
//鐢熸垚鍏ュ簱閫氱煡鍘嗗彶妗�
boolean save = agvWaitPakinLogService.save(barcode);
//鍒犻櫎鍏ュ簱閫氱煡妗�
log.info("鍒犻櫎鍏ュ簱閫氱煡妗� supp_code: " + barcode);
- agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode));
+ agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code", barcode));
break;
case 10:
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0);
break;
case 11:
case 12:
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
//鏇存柊搴撳瓨鏄庣粏
- agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
+ agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo());
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null);
break;
case 53:
//淇敼宸ヤ綔鍏氭槑缁�
@@ -155,64 +169,83 @@
AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
if (!Cools.isEmpty(agvLocDetl)) {
double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
- agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
+ agvLocDetlService.updateAnfme(updateAnfme, agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getBatch(), agvLocDetl.getThreeCode(), agvLocDetl.getDeadTime());
}
//AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
});
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue());
+ break;
+ case 57:
+ Date now = new Date();
+ // 鏇存柊搴撳瓨鏄庣粏
+ List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+ wrkDetlList.forEach(agvWrkDetl -> {
+ AgvLocDetl agvLocDetl = new AgvLocDetl();
+ agvLocDetl.setLocNo(agvWrkMast.getLocNo());
+ agvLocDetl.sync(agvWrkDetl);
+ agvLocDetl.setModiTime(now);
+ agvLocDetl.setAppeTime(now);
+ if (!agvLocDetlService.insert(agvLocDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ // 鏇存柊绔欑偣 + 搴撲綅鐘舵�� 婧愬簱浣嶆槸绔欑偣
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
break;
case 58:
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue());
break;
case 108:
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ case 114:
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
//鏇存柊搴撳瓨鏄庣粏
- agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
+ agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo());
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0);
break;
case 109:
// 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
- if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ if (agvWrkMast.getLocNo().substring(0, 2).equals("DB")) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
// 鎺ラ┏浣� -- 搴撲綅
} else {
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
}
// 鎺ラ┏浣� -- 搴撲綅
- if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+ if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0);
// 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
} else {
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0);
}
break;
case 111:
// 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
- if (agvWrkMast.getLocNo().substring(0,2).equals("DB")) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ if (agvWrkMast.getLocNo().substring(0, 2).equals("DB")) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
// 鎺ラ┏浣� -- 搴撲綅
} else {
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
}
// 鎺ラ┏浣� -- 搴撲綅
- if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+ if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0);
// 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
} else {
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0);
//鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
- agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
+ agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo()));
}
break;
case 112:
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
AgvLocDetl locDetl = new AgvLocDetl();
@@ -222,27 +255,27 @@
agvLocDetlService.insert(locDetl);
}
// 鎺ラ┏浣� -- 搴撲綅
- if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+ if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0);
// 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
} else {
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0);
}
break;
case 113:
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "D", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
// 鎺ラ┏浣� -- 搴撲綅
- if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+ if (agvWrkMast.getSourceLocNo().substring(0, 2).equals("DB")) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(), "O", "", (short) 0);
}
break;
case 121:
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(), "F", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue());
//鏇存柊搴撳瓨鏄庣粏
- agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
+ agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo());
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", agvWrkMast.getWhsType().shortValue(), "", (short) 0);
break;
default:
@@ -252,17 +285,24 @@
//鍒犻櫎AGV宸ヤ綔妗�
agvWrkMastService.deleteById(wrkNo);
//鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
- agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
+ agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo));
}
+// else {
+// agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+// if (!agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+// agvWrkMast.setSourceLocNo("");
+// }
+// agvWrkMastService.updateById(agvWrkMast);
+// }
- if(!isJSON(orderNo)){
+ if (!isJSON(orderNo)) {
//妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
- orderService.checkComplete(orderNo);
- }else{
+ orderService.checkComplete(orderNo, agvWrkMast.getLocNo());
+ } else {
List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
maps.forEach(map -> {
String o = map.get("orderNo").toString();
- orderService.checkComplete(o);
+ orderService.checkComplete(o, agvWrkMast.getLocNo());
});
}
@@ -273,10 +313,16 @@
// }
//return SUCCESS;
- }catch (Exception e){
- log.error(""+e.getMessage());
+ } catch (Exception e) {
+ log.error("" + e.getMessage());
}
- reportMes(agvWrkMast,agvWrkDetlListOld);
+ //TODO
+ //鏆傛椂鍔犱笂trycatch
+ try {
+ reportMes(agvWrkMast, agvWrkDetlListOld);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
return SUCCESS;
}
@@ -288,21 +334,22 @@
List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
- try{
+ try {
Date now = new Date();
int wrkNo = agvWrkMast.getWrkNo();
String orderNo = getOrderNoByWrkNo(wrkNo);
//淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
agvWrkMast.setWrkSts(207L);
+ agvWrkMast.setModiTime(new Date());
agvWrkMastService.updateById(agvWrkMast);
//淇敼婧愬簱浣嶇姸鎬佷负O
if (agvWrkMast.getIoType() == 110) {
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null);
}
- if(agvWrkMast.getIoType() == 101){
+ if (agvWrkMast.getIoType() == 101) {
//鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
- agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
+ agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo()));
//鐢熸垚绌烘澘鍏ュ簱浠诲姟
Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2));
try {
@@ -341,7 +388,7 @@
agvBasDevp.setLocSts("R");
agvBasDevp.setLocType2(Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)));
agvBasDevpService.updateById(agvBasDevp);
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
}
@@ -354,15 +401,15 @@
//鍒犻櫎AGV宸ヤ綔妗�
agvWrkMastService.deleteById(wrkNo);
//鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
- agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
- if(!isJSON(orderNo)){
+ agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo));
+ if (!isJSON(orderNo)) {
//妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
- orderService.checkComplete(orderNo);
- }else{
+ orderService.checkComplete(orderNo, agvWrkMast.getLocNo());
+ } else {
List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
maps.forEach(map -> {
String o = map.get("orderNo").toString();
- orderService.checkComplete(o);
+ orderService.checkComplete(o, agvWrkMast.getLocNo());
});
}
@@ -372,10 +419,10 @@
// doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
// }
- }catch (Exception e){
- log.error(""+e.getMessage());
+ } catch (Exception e) {
+ log.error("" + e.getMessage());
}
- reportMes(agvWrkMast,agvWrkDetlListOld);
+ reportMes(agvWrkMast, agvWrkDetlListOld);
return SUCCESS;
}
@@ -384,7 +431,7 @@
//鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
- try{
+ try {
int wrkNo = agvWrkMast.getWrkNo();
String orderNo = getOrderNoByWrkNo(wrkNo);
String agvBasDevp = "";
@@ -395,12 +442,13 @@
}
//淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
agvWrkMast.setWrkSts(207L);
+ agvWrkMast.setModiTime(new Date());
agvWrkMastService.updateById(agvWrkMast);
//淇敼婧愬簱浣嶇姸鎬佷负O
- agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
- if(agvWrkMast.getIoType() == 101){
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(), "O", "", null);
+ if (agvWrkMast.getIoType() == 101) {
//鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
- agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
+ agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvWrkMast.getSourceLocNo()));
}
//鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
@@ -410,15 +458,15 @@
//鍒犻櫎AGV宸ヤ綔妗�
agvWrkMastService.deleteById(wrkNo);
//鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
- agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
- if(!isJSON(orderNo)){
+ agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo));
+ if (!isJSON(orderNo)) {
//妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚
- orderService.checkComplete(orderNo);
- }else{
+ orderService.checkComplete(orderNo, agvWrkMast.getLocNo());
+ } else {
List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
maps.forEach(map -> {
String o = map.get("orderNo").toString();
- orderService.checkComplete(o);
+ orderService.checkComplete(o, agvWrkMast.getLocNo());
});
}
//涓婃姤mes
@@ -428,10 +476,10 @@
// }
// reportMes(agvWrkMast,agvWrkDetlListOld);
// return SUCCESS;
- }catch (Exception e){
- log.error(""+e.getMessage());
+ } catch (Exception e) {
+ log.error("" + e.getMessage());
}
- reportMes(agvWrkMast,agvWrkDetlListOld);
+ reportMes(agvWrkMast, agvWrkDetlListOld);
return SUCCESS;
}
@@ -439,22 +487,23 @@
@Synchronized
public ReturnT<String> startPutWayWrk(AgvWrkMast agvWrkMast) throws IOException {
- try{
+ try {
//涓嬪彂浠诲姟
int startWrkCode = agvWrkMastService.startWrk(agvWrkMast);
- if(startWrkCode != 0){
+ if (startWrkCode != 0) {
throw new CoolException("浠诲姟涓嬪彂澶辫触");
}
agvWrkMast.setWrkSts(202L);
+ agvWrkMast.setModiTime(new Date());
agvWrkMastService.updateById(agvWrkMast);
- if(agvWrkMast.getIoType() == 1){
+ if (agvWrkMast.getIoType() == 1) {
//淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y
- agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
+ agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(), "Y");
}
return SUCCESS;
- }catch (Exception e){
- log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y"+e.getMessage());
+ } catch (Exception e) {
+ log.error("淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y" + e.getMessage());
}
return FAIL;
}
@@ -462,16 +511,16 @@
@Transactional
@Synchronized
public ReturnT<String> startAllcationIn(AgvWrkMast agvWrkMast) throws IOException {
-
+
//涓嬪彂浠诲姟
- try{
+ try {
int startWrkCode = agvWrkMastService.startAllcationIn(agvWrkMast);
- if(startWrkCode != 0){
+ if (startWrkCode != 0) {
throw new CoolException("浠诲姟涓嬪彂澶辫触");
}
return SUCCESS;
- }catch (Exception e){
- log.error("浠诲姟涓嬪彂澶辫触"+e.getMessage());
+ } catch (Exception e) {
+ log.error("浠诲姟涓嬪彂澶辫触" + e.getMessage());
}
return FAIL;
@@ -510,10 +559,11 @@
List<Map<String, Object>> devNoMaps = agvBasDevpService.selectDevNoAndNumBystationCode(agvWrkMast.getLocNo());
//鍙栫涓�涓殏瀛樹綅锛屽苟鏌ヨ鍏舵鏁颁笌閰嶇疆鐨勬鏁板仛姣旇緝
Map<String, Object> devNoMap = devNoMaps.get(0);
- if((int)devNoMap.get("num") < maxWrokNum){
+ if ((int) devNoMap.get("num") < maxWrokNum) {
agvWrkMast.setLocNo(devNoMap.get("dev_no").toString());
+ agvWrkMast.setModiTime(new Date());
agvWrkMastService.updateById(agvWrkMast);
- log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo());
+ log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo());
}
});
@@ -524,14 +574,14 @@
@Transactional
public ReturnT<String> autoEmptyOut(AgvBasDevp agvBasDevp) {
- agvWorkService.emptyPlateOut(agvBasDevp.getDevNo(),0,9527L);
+ agvWorkService.emptyPlateOut(agvBasDevp.getDevNo(), 0, 9527L);
return SUCCESS;
}
- private String getOrderNoByWrkNo(int wrkNo){
+ private String getOrderNoByWrkNo(int wrkNo) {
AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkNo));
- if(Cools.isEmpty(agvWrkDetl)){
+ if (Cools.isEmpty(agvWrkDetl)) {
return null;
}
return agvWrkDetl.getOrderNo();
@@ -552,10 +602,10 @@
}
}
- private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList){
+ private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList) {
return agvWrkMastList.stream().filter(agvWrkMast -> {
AgvWrkMast agvWrkMastWroking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", agvWrkMast.getLocNo()));
- if(!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts()<=202){
+ if (!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts() <= 202) {
System.out.println("source_loc_no > 1");
return false;
}
@@ -568,7 +618,7 @@
/*
鐢熸垚宸ヤ綔妗�
*/
- private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor){
+ private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor) {
AgvWrkMast wrkMast = new AgvWrkMast();
//宸ヤ綔鐘舵��
wrkMast.setWrkSts(wrkSts);
@@ -597,60 +647,91 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
- wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo).eq("barcode",barcode).orderBy("modi_time",false));
+ wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no", sourceLocNo).eq("barcode", barcode).orderBy("modi_time", false));
return wrkMast;
}
- private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
- if(Cools.isEmpty(agvWrkDetls)){
- return ;
+ private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) {
+ if (Cools.isEmpty(agvWrkDetls)) {
+ return;
}
//鍖哄垎涓嶅悓浠诲姟绫诲瀷鐨勪笂鎶ユ柟寮�
- if(IN_TYPE_LIST.contains(agvWrkMast.getIoType())){
- reportMesPakinOrder(agvWrkMast,agvWrkDetls);
+ if (IN_TYPE_LIST.contains(agvWrkMast.getIoType())) {
+ reportMesPakinOrder(agvWrkMast, agvWrkDetls);
}
- if(OUT_TYPE_List.contains(agvWrkMast.getIoType())){
- reportMesPakoutOrder(agvWrkMast,agvWrkDetls);
+ if (OUT_TYPE_List.contains(agvWrkMast.getIoType())) {
+ reportMesPakoutOrder(agvWrkMast, agvWrkDetls);
}
- if(MOVE_TYPE_List.contains(agvWrkMast.getIoType())){
- generateMesParam(agvWrkMast,agvWrkDetls);
+ if (MOVE_TYPE_List.contains(agvWrkMast.getIoType())) {
+ generateMesParam(agvWrkMast, agvWrkDetls);
}
}
- private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+ private void reportMesPakinOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) {
- for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
- MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
- mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
- mesPakinReportParam.setBizType("0");
- mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode().trim(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo()));
- mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
+ //鍒ゆ柇鏄惁閲囪喘鍏ュ簱
- doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"涓婃姤mes鍏ュ簱淇℃伅",url,pakinReportPath,null,"127.0.0.1");
+ String orderNo = agvWrkDetl.getOrderNo();
+ Order order = orderService.selectByNo(orderNo);
+
+ DocType docType = docTypeService.selectById(order.getDocType());
+
+ if (docType.getDocName().contains("閲囪喘")) {
+
+ OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(orderNo, agvWrkDetl.getMatnr(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
+
+ MesBuyPakinReportParam mesBuyPakinReportParam = new MesBuyPakinReportParam();
+ List<MesBuyPakinReportParam.Iteam> iteams = new ArrayList<>();
+ MesBuyPakinReportParam.Iteam iteam = new MesBuyPakinReportParam.Iteam();
+ iteam.setMaterialCode(agvWrkDetl.getMatnr());
+ iteam.setBatchNo(agvWrkDetl.getBatch());
+ iteam.setAmount(agvWrkDetl.getAnfme());
+ iteam.setStorageLocationCode(agvWrkMast.getLocNo());
+ iteam.setLineNo(orderDetl.getItemNum());
+ iteam.setSupplierCode(order.getSalesman());
+ iteam.setUnit(agvWrkDetl.getUnit());
+
+ iteams.add(iteam);
+
+ mesBuyPakinReportParam.setCode(orderNo);
+ mesBuyPakinReportParam.setIteam(iteams);
+
+ doHttpRequest(mesBuyPakinReportParam, getMesTokenInfo(), "涓婃姤mes閲囪喘鍏ュ簱淇℃伅", url, buyPakinReportPath, null, "127.0.0.1");
+
+ } else {
+ MesPakinReportParam mesPakinReportParam = new MesPakinReportParam();
+ mesPakinReportParam.setInboundOrderCode(agvWrkDetl.getOrderNo());
+ mesPakinReportParam.setBizType("0");
+ mesPakinReportParam.setInventoryAttr(new MesPakinReportParam.InventoryAttr(agvWrkDetl.getThreeCode().trim(), agvWrkDetl.getMatnr(), agvWrkMast.getLocNo()));
+ mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(), agvWrkDetl.getUnit(), null));
+
+ doHttpRequest(mesPakinReportParam, getMesTokenInfo(), "涓婃姤mes鍏ュ簱淇℃伅", url, pakinReportPath, null, "127.0.0.1");
+ }
}
}
- private void reportMesPakoutOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
- for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
+ private void reportMesPakoutOrder(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) {
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
MesPakoutReportParam mesPakoutReportParam = new MesPakoutReportParam();
mesPakoutReportParam.setStorageCode(agvWrkMast.getLocNo());
AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
mesPakoutReportParam.setWareHouseCode(agvLocMast.getPltType().toString());
mesPakoutReportParam.setMaterialCode(agvWrkDetl.getMatnr());
mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getThreeCode().trim()));
- mesPakoutReportParam.setAmount(new MesPakoutReportParam.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
+ mesPakoutReportParam.setAmount(new MesPakoutReportParam.Amount(agvWrkDetl.getAnfme(), agvWrkDetl.getUnit(), null));
- doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"涓婃姤mes鍑哄簱淇℃伅",url,pakoutReportPath,null,"127.0.0.1");
+ doHttpRequest(mesPakoutReportParam, getMesTokenInfo(), "涓婃姤mes鍑哄簱淇℃伅", url, pakoutReportPath, null, "127.0.0.1");
}
}
- private void generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+ private void generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls) {
- if(agvWrkMast.getIoType() == 53){
+ if (agvWrkMast.getIoType() == 53) {
String locNo = agvWrkMast.getLocNo();
agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo());
agvWrkMast.setSourceLocNo(locNo);
@@ -670,9 +751,9 @@
MesOrderReportParam.TransferOrderItem transferOrderItem = new MesOrderReportParam.TransferOrderItem();
transferOrderItem.setRemark(agvWrkDetls.get(0).getOrderNo());
//璋冩嫧
- if(agvWrkMast.getLocNo().contains("YZ")){
+ if (agvWrkMast.getLocNo().contains("YZ")) {
transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo());
- }else {
+ } else {
//鍑哄簱榛樿浠撲綅
String floor = agvWrkMast.getLocNo().split("F")[1];
transferOrderItem.setTargetLocationCode(getTargetLocationByFloor(floor));
@@ -682,10 +763,10 @@
param.setTransferOrderItems(transferOrderItems);
- for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
MesOrderReportParam.TransferOrderItem.InventoryDetail inventoryDetail = new MesOrderReportParam.TransferOrderItem.InventoryDetail();
//娣诲姞amount灞炴��
- MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null);
+ MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount(agvWrkDetl.getAnfme(), agvWrkDetl.getUnit(), null);
inventoryDetail.setAmount(amount);
//娣诲姞bizKey灞炴��
MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey bizKey = new MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey(Cools.isEmpty(agvWrkDetl.getBatch()) ? "" : agvWrkDetl.getBatch().trim());
@@ -697,48 +778,48 @@
inventoryDetail.setStorageStatus(1);
inventoryDetails.add(inventoryDetail);
//娣诲姞閿�鍞鍗曞彿
- MesOrderReportParam.RecordCustomFieldBaseCO.CustomField customField = new MesOrderReportParam.RecordCustomFieldBaseCO.CustomField("workOrderCode__c",agvWrkDetl.getThreeCode().trim());
+ MesOrderReportParam.RecordCustomFieldBaseCO.CustomField customField = new MesOrderReportParam.RecordCustomFieldBaseCO.CustomField("workOrderCode__c", agvWrkDetl.getThreeCode().trim());
customFields.add(customField);
}
- doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes璋冩嫧淇℃伅",url,orderReportPath,null,"127.0.0.1");
+ doHttpRequest(param, getMesTokenInfo(), "涓婃姤mes璋冩嫧淇℃伅", url, orderReportPath, null, "127.0.0.1");
}
//鑾峰彇mes token淇℃伅
- private Map<String,Object> getMesTokenInfo(){
- Map<String,String> param = new HashMap<>();
- param.put("appKey",appKey);
- param.put("appSecret",appSecret);
+ private Map<String, Object> getMesTokenInfo() {
+ Map<String, String> param = new HashMap<>();
+ param.put("appKey", appKey);
+ param.put("appSecret", appSecret);
- JSONObject jsonObject = doHttpRequest(param,null, "鑾峰彇MesToken", getTokenUrl, getTokenPath, null, "127.0.0.1");
+ JSONObject jsonObject = doHttpRequest(param, null, "鑾峰彇MesToken", getTokenUrl, getTokenPath, null, "127.0.0.1");
- Map<String,Object> headParam = new HashMap<>();
- headParam.put("X-AUTH",JSON.parseObject(jsonObject.get("data").toString()).get("appAccessToken").toString());
+ Map<String, Object> headParam = new HashMap<>();
+ headParam.put("X-AUTH", JSON.parseObject(jsonObject.get("data").toString()).get("appAccessToken").toString());
return headParam;
}
//鏍规嵁妤煎眰榛樿鍑哄簱浠撲綅
- private String getTargetLocationByFloor(String f){
+ private String getTargetLocationByFloor(String f) {
int floor = Integer.parseInt(f);
- if(floor == 1){
+ if (floor == 1) {
return "WH-000";
}
- if(floor == 2){
+ if (floor == 2) {
return "WH-000";
}
- if(floor == 3){
+ if (floor == 3) {
return "WH-000";
}
return null;
}
- private JSONObject doHttpRequest(Object requestParam,Map<String,Object> headParam, String namespace, String url, String path, String appkey, String ip){
+ private JSONObject doHttpRequest(Object requestParam, Map<String, Object> headParam, String namespace, String url, String path, String appkey, String ip) {
String response = "";
boolean success = false;
@@ -754,7 +835,7 @@
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
- if(Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200){
+ if (Cools.isEmpty(jsonObject.get("code")) || Integer.parseInt(jsonObject.get("code").toString()) != 200) {
throw new CoolException(jsonObject.get("dsc").toString());
}
success = true;
@@ -768,10 +849,10 @@
// }
// success = true;
- }catch (Exception e){
+ } catch (Exception e) {
log.error(e.getMessage());
throw new CoolException(e.getMessage());
- }finally {
+ } finally {
apiLogService.save(
namespace,
url + path,
--
Gitblit v1.9.1