From 41326b3129ae3e4ef7a45bc16dba64dc9dd27404 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 04 九月 2024 09:58:14 +0800
Subject: [PATCH] Merge branch 'phyzasrs' of http://47.97.1.152:5880/r/zy-asrs into phyzasrs-erp
---
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 223 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 164 insertions(+), 59 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 e7a3b9d..9a23068 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -7,6 +7,7 @@
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;
@@ -14,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;
@@ -31,20 +31,35 @@
public class AgvWrkMastHandler extends AbstractHandler<String> {
//鍏ュ簱绫诲瀷鏁扮粍
- private static final int[] IN_TYPE_ARRAY = new int[1];
+ private static final List<Integer> IN_TYPE_LIST = new ArrayList<Integer>(){{
+ add(1);
+ }};
+ //private static final int[] IN_TYPE_ARRAY = {1};
//鍑哄簱绫诲瀷鏁扮粍
- private static final int[] OUT_TYPE_ARRAY = new int[1];
+ private static final List<Integer> OUT_TYPE_List = new ArrayList<Integer>(){{
+// add(101);
+ }};
+ //private static final int[] OUT_TYPE_ARRAY = {101};
//绉诲簱绫诲瀷鏁扮粍
- private static final int[] MOVE_TYPE_ARRAY = new int[1];
+ 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 int[] MOVE_TYPE_ARRAY = {11,12};
@Value("${agvBasDev.maxWorkNum}")
private int maxWrokNum;
@Value("${mes.url}")
private String url;
+ @Value("${mes.getTokenUrl}")
+ private String getTokenUrl;
@Value("${mes.orderReportPath}")
private String orderReportPath;
@Value("${mes.pakinReportPath}")
private String pakinReportPath;
+ @Value("${mes.buyPakinReportPath}")
+ private String buyPakinReportPath;
@Value("${mes.pakoutReportPath}")
private String pakoutReportPath;
@Value("${mes.getTokenPath}")
@@ -79,9 +94,16 @@
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{
int wrkNo = agvWrkMast.getWrkNo();
String barcode = agvWrkMast.getBarcode();
@@ -93,8 +115,6 @@
agvBasDevp = agvWrkMast.getSourceLocNo();
}
- //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
- List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
//淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚
agvWrkMast.setWrkSts(207L);
@@ -149,11 +169,30 @@
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());
break;
case 108:
+ case 114:
agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
//鏇存柊搴撳瓨鏄庣粏
agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
@@ -253,26 +292,28 @@
}
//涓婃姤mes
- MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
- if(!Cools.isEmpty(param)){
- doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
- }
+// MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
+// if(!Cools.isEmpty(param)){
+// doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+// }
- return SUCCESS;
+ //return SUCCESS;
}catch (Exception e){
log.error(""+e.getMessage());
}
- return FAIL;
+ reportMes(agvWrkMast,agvWrkDetlListOld);
+ return SUCCESS;
}
@Transactional
public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) {
- try{
+ //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
+ List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
- //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
- List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+
+ try{
Date now = new Date();
int wrkNo = agvWrkMast.getWrkNo();
@@ -351,24 +392,24 @@
}
//涓婃姤mes
- MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
- if(!Cools.isEmpty(param)){
- doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
- }
+// MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
+// if(!Cools.isEmpty(param)){
+// doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+// }
- return SUCCESS;
}catch (Exception e){
log.error(""+e.getMessage());
}
- return FAIL;
+ reportMes(agvWrkMast,agvWrkDetlListOld);
+ return SUCCESS;
}
@Transactional
public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) {
- try{
- //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
- List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+ //鐢ㄤ簬涓婃姤mes鐨勫伐浣滄。鏄庣粏
+ List<AgvWrkDetl> agvWrkDetlListOld = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+ try{
int wrkNo = agvWrkMast.getWrkNo();
String orderNo = getOrderNoByWrkNo(wrkNo);
String agvBasDevp = "";
@@ -406,15 +447,17 @@
});
}
//涓婃姤mes
- MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
- if(!Cools.isEmpty(param)){
- doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
- }
- return SUCCESS;
+// MesOrderReportParam param = generateMesParam(agvWrkMast, agvWrkDetlListOld);
+// if(!Cools.isEmpty(param)){
+// doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+// }
+// reportMes(agvWrkMast,agvWrkDetlListOld);
+// return SUCCESS;
}catch (Exception e){
log.error(""+e.getMessage());
}
- return FAIL;
+ reportMes(agvWrkMast,agvWrkDetlListOld);
+ return SUCCESS;
}
@Transactional
@@ -584,35 +627,64 @@
return wrkMast;
}
- private Object getReportParamByIoType(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+ private void reportMes(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
if(Cools.isEmpty(agvWrkDetls)){
- return null;
+ return ;
}
//鍖哄垎涓嶅悓浠诲姟绫诲瀷鐨勪笂鎶ユ柟寮�
- if(Arrays.asList(IN_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
-
+ if(IN_TYPE_LIST.contains(agvWrkMast.getIoType())){
+ reportMesPakinOrder(agvWrkMast,agvWrkDetls);
}
- if(Arrays.asList(OUT_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
-
+ if(OUT_TYPE_List.contains(agvWrkMast.getIoType())){
+ reportMesPakoutOrder(agvWrkMast,agvWrkDetls);
}
- if(Arrays.asList(MOVE_TYPE_ARRAY).contains(agvWrkMast.getIoType())){
- return generateMesParam(agvWrkMast,agvWrkDetls);
+ if(MOVE_TYPE_List.contains(agvWrkMast.getIoType())){
+ generateMesParam(agvWrkMast,agvWrkDetls);
}
-
- return null;
}
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(),agvWrkDetl.getMatnr(),agvWrkMast.getLocNo()));
- mesPakinReportParam.setNoQrCodeExecAmount(new MesPakinReportParam.NoQrCodeExecAmount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
+ //鍒ゆ柇鏄惁閲囪喘鍏ュ簱
- doHttpRequest(mesPakinReportParam,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,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");
+ }
}
}
@@ -624,15 +696,15 @@
AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getLocNo());
mesPakoutReportParam.setWareHouseCode(agvLocMast.getPltType().toString());
mesPakoutReportParam.setMaterialCode(agvWrkDetl.getMatnr());
- mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getBatch()));
+ mesPakoutReportParam.setBatchNos(Arrays.asList(agvWrkDetl.getThreeCode().trim()));
mesPakoutReportParam.setAmount(new MesPakoutReportParam.Amount(agvWrkDetl.getAnfme(),agvWrkDetl.getUnit(),null));
- doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"涓婃姤mes鍗曟嵁淇℃伅",url,orderReportPath,null,"127.0.0.1");
+ doHttpRequest(mesPakoutReportParam,getMesTokenInfo(),"涓婃姤mes鍑哄簱淇℃伅",url,pakoutReportPath,null,"127.0.0.1");
}
}
- private MesOrderReportParam generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
+ private void generateMesParam(AgvWrkMast agvWrkMast, List<AgvWrkDetl> agvWrkDetls){
if(agvWrkMast.getIoType() == 53){
String locNo = agvWrkMast.getLocNo();
@@ -644,10 +716,23 @@
List<MesOrderReportParam.TransferOrderItem> transferOrderItems = new ArrayList<>();
List<MesOrderReportParam.TransferOrderItem.InventoryDetail> inventoryDetails = new ArrayList<>();
+ List<MesOrderReportParam.RecordCustomFieldBaseCO.CustomField> customFields = new ArrayList<>();
+
+ MesOrderReportParam.RecordCustomFieldBaseCO recordCustomFieldBaseCO = new MesOrderReportParam.RecordCustomFieldBaseCO();
+ recordCustomFieldBaseCO.setCustomFields(customFields);
+ param.setRecordCustomFieldBaseCO(recordCustomFieldBaseCO);
+
//娣诲姞transferOrderItem灞炴��
MesOrderReportParam.TransferOrderItem transferOrderItem = new MesOrderReportParam.TransferOrderItem();
transferOrderItem.setRemark(agvWrkDetls.get(0).getOrderNo());
- transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo());
+ //璋冩嫧
+ if(agvWrkMast.getLocNo().contains("YZ")){
+ transferOrderItem.setTargetLocationCode(agvWrkMast.getLocNo());
+ }else {
+ //鍑哄簱榛樿浠撲綅
+ String floor = agvWrkMast.getLocNo().split("F")[1];
+ transferOrderItem.setTargetLocationCode(getTargetLocationByFloor(floor));
+ }
transferOrderItems.add(transferOrderItem);
transferOrderItem.setInventoryDetails(inventoryDetails);
@@ -656,13 +741,10 @@
for (AgvWrkDetl agvWrkDetl : agvWrkDetls){
MesOrderReportParam.TransferOrderItem.InventoryDetail inventoryDetail = new MesOrderReportParam.TransferOrderItem.InventoryDetail();
//娣诲姞amount灞炴��
- MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount amount = new MesOrderReportParam.TransferOrderItem.InventoryDetail.Amount();
- amount.setAmount(agvWrkDetl.getAnfme());
- amount.setUnitName(agvWrkDetl.getUnit());
+ 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();
- bizKey.setBatchNo(agvWrkDetl.getThreeCode());
+ MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey bizKey = new MesOrderReportParam.TransferOrderItem.InventoryDetail.BizKey(Cools.isEmpty(agvWrkDetl.getBatch()) ? "" : agvWrkDetl.getBatch().trim());
inventoryDetail.setBizKey(bizKey);
//娣诲姞inventoryDetail灞炴��
inventoryDetail.setLocationCode(agvWrkMast.getSourceLocNo());
@@ -670,9 +752,13 @@
inventoryDetail.setQcStatus(1);
inventoryDetail.setStorageStatus(1);
inventoryDetails.add(inventoryDetail);
+ //娣诲姞閿�鍞鍗曞彿
+ MesOrderReportParam.RecordCustomFieldBaseCO.CustomField customField = new MesOrderReportParam.RecordCustomFieldBaseCO.CustomField("workOrderCode__c",agvWrkDetl.getThreeCode().trim());
+ customFields.add(customField);
}
- return param;
+ doHttpRequest(param,getMesTokenInfo(),"涓婃姤mes璋冩嫧淇℃伅",url,orderReportPath,null,"127.0.0.1");
+
}
//鑾峰彇mes token淇℃伅
@@ -681,13 +767,31 @@
param.put("appKey",appKey);
param.put("appSecret",appSecret);
- JSONObject jsonObject = doHttpRequest(param,null, "鑾峰彇MesToken", url, 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());
return headParam;
+ }
+
+ //鏍规嵁妤煎眰榛樿鍑哄簱浠撲綅
+ private String getTargetLocationByFloor(String f){
+ int floor = Integer.parseInt(f);
+ if(floor == 1){
+ return "WH-000";
+ }
+
+ if(floor == 2){
+ return "WH-000";
+ }
+
+ 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){
@@ -706,10 +810,10 @@
.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;
return jsonObject;
// String succeed = jsonObject.get("succeed").toString();
@@ -736,4 +840,5 @@
}
}
+
}
--
Gitblit v1.9.1