From a3610b6d28f4ed956b7183effa79997e4923a820 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 25 七月 2023 17:48:08 +0800 Subject: [PATCH] #自动补空板任务 条码上报中控实装 --- src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java | 119 +++++++++++++++++++++++++++++++++++++++ src/main/resources/application.yml | 11 +++ src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java | 30 ++++++++++ 3 files changed, 159 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java b/src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java new file mode 100644 index 0000000..f0d4c9b --- /dev/null +++ b/src/main/java/com/zy/asrs/task/BarcodeUploadScheduler.java @@ -0,0 +1,30 @@ +package com.zy.asrs.task; + +import com.zy.asrs.task.core.ReturnT; +import com.zy.asrs.task.handler.BarcodeUploadHandler; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +/** + * Created by Monkey D. Luffy on 2023.07.25 + * 寰愬伐姹変簯..............浠ヤ笅.............涓婇ザ姹熼摐.............鑷姩琛ョ┖鏉� + */ +@Component +public class BarcodeUploadScheduler { + + @Autowired + private BarcodeUploadHandler barcodeUploadHandler; + + @Scheduled(cron = "0/3 * * * * ? ") + private void execute(){ + int[] staNos =new int[]{216,220}; + for (int staNo : staNos){ + ReturnT<String> result = barcodeUploadHandler.start(staNo); + if (result.getCode()==200){ + break; + } + } + } + +} diff --git a/src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java b/src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java new file mode 100644 index 0000000..4a60c5c --- /dev/null +++ b/src/main/java/com/zy/asrs/task/handler/BarcodeUploadHandler.java @@ -0,0 +1,119 @@ +package com.zy.asrs.task.handler; + +import com.alibaba.fastjson.JSON; +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.service.*; +import com.zy.asrs.task.AbstractHandler; +import com.zy.asrs.task.core.ReturnT; +import com.zy.common.model.enums.WorkNoType; +import com.zy.common.service.CommonService; +import com.zy.common.utils.HttpHandler; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Created by Monkey D. Luffy on 2023.07.25 + * 寰愬伐姹変簯..............浠ヤ笅.............涓婇ザ姹熼摐.............鑷姩琛ョ┖鏉� + */ +@Slf4j +@Service +@Transactional +public class BarcodeUploadHandler extends AbstractHandler<String> { + + @Autowired + private WrkMastService wrkMastService; + @Autowired + private LocMastService locMastService; + @Autowired + private CommonService commonService; + @Autowired + private StaDescService staDescService; + @Autowired + private ApiLogService apiLogService; + @Autowired + private BasDevpService basDevpService; + + @Value("${srXghyErp.url}") + private String erpUrl; + @Value("${srXghyErp.barcodeUploadPath}") + private String barcodeUploadpath; + + public ReturnT<String> start(int staNo) { + try { + BasDevp basDevp = basDevpService.selectById(staNo); + if (!Cools.isEmpty(basDevp) && basDevp.getWrkNo()!=0){ + WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo()); + if (!Cools.isEmpty(wrkMast) && wrkMast.getIoType().equals(201) && wrkMast.getWrkSts().equals(41L)){ + ReturnT<String> result = null; + result = postMesData(barcodeUploadpath,wrkMast); + System.out.println(result); + if (result.getCode()==200){ + wrkMast.setWrkSts(42L); + // 淇敼璁㈠崟鐘舵�� 41. ===>> 42.宸蹭笂鎶� + if (!wrkMastService.updateById(wrkMast)) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳:鏇存柊宸ヤ綔鍙�"+wrkMast.getWrkNo()+"宸ヤ綔妗g姸鎬�41==銆�42澶辫触"); + }else { + return SUCCESS; + } + } + } + } + }catch (Exception e){ + log.error("寮傚父锛侊紒锛�"+e); + return FAIL; + } + return FAIL; + } + + private ReturnT<String> postMesData(String erpPath,Object combParam){ + if(combParam != null){ + String response = ""; + boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(erpUrl) + .setPath(erpPath) + .setJson(JSON.toJSONString(combParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getString("result").equals("Y")) { + success = true; + } else { + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}"+erpUrl+erpPath, JSON.toJSONString(combParam), response); + throw new CoolException("涓婃姤erp绯荤粺澶辫触"); + } + } catch (Exception e) { + log.error("fail", e); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "涓婃姤erp绯荤粺", + erpUrl + erpPath, + null, + "127.0.0.1", + JSON.toJSONString(combParam), + response, + success + ); + } catch (Exception e) { log.error("", e); } + } + } + return SUCCESS; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 4d6a72e..9e1cebf 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -56,4 +56,13 @@ comb: - limit: 5000 \ No newline at end of file + limit: 5000 + +srXghyErp: + url: 192.168.101.250:1082 + # 鐮佸灈浣嶆潯鐮佷笂鎶� + barcodeUploadPath: EosServer/PluginGateway.ashx?pluginid=DataIOHttp&func=senddata&userno=ASRS&sign=5DD885999945BA2F3DC9A61F1B857DB3&dataname=cprkwc + # 鍏ュ簱涓婃姤 + inPath: EosServer/PluginGateway.ashx?pluginid=DataIOHttp&func=senddata&userno=ASRS&sign=5DD885999945BA2F3DC9A61F1B857DB3&dataname=cprkwc + # 鍑哄簱涓婃姤 + outPath: EosServer/PluginGateway.ashx?pluginid=DataIOHttp&func=senddata&userno=ASRS&sign=5DD885999945BA2F3DC9A61F1B857DB3&dataname=cpckwc \ No newline at end of file -- Gitblit v1.9.1