From e90dba0edc93be26e1509cfb2ec1d0681eb86e48 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期三, 27 八月 2025 08:37:04 +0800 Subject: [PATCH] 合并出库添加日志 --- src/main/java/com/zy/asrs/controller/AgvLocMastController.java | 165 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 129 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvLocMastController.java b/src/main/java/com/zy/asrs/controller/AgvLocMastController.java index 0951bb4..581c210 100644 --- a/src/main/java/com/zy/asrs/controller/AgvLocMastController.java +++ b/src/main/java/com/zy/asrs/controller/AgvLocMastController.java @@ -1,5 +1,6 @@ package com.zy.asrs.controller; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; @@ -11,21 +12,27 @@ import com.core.common.DateUtils; import com.core.common.R; import com.core.exception.CoolException; -import com.zy.asrs.entity.*; +import com.zy.asrs.entity.AdjDetl; +import com.zy.asrs.entity.AgvLocDetl; +import com.zy.asrs.entity.AgvLocMast; +import com.zy.asrs.entity.AgvWrkMast; import com.zy.asrs.entity.param.LocMastInitParam; -import com.zy.asrs.service.AdjDetlService; -import com.zy.asrs.service.AgvLocDetlService; -import com.zy.asrs.service.AgvLocMastService; -import com.zy.asrs.service.AgvWrkMastService; +import com.zy.asrs.service.*; +import com.zy.common.utils.HttpHandler; import com.zy.common.web.BaseController; +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.*; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; +@Slf4j @RestController @RequestMapping("/agv") public class AgvLocMastController extends BaseController { @@ -38,19 +45,28 @@ private AgvLocDetlService agvLocDetlService; @Autowired private AdjDetlService adjDetlService; + @Autowired + ApiLogService apiLogService; + + @Value("${agv.url}") + private String url; + @Value("${agv.locStsUrl}") + private String locStsUrl; @RequestMapping(value = "/locMast/list/auth") @ManagerAuth - public R list(@RequestParam(defaultValue = "1")Integer curr, - @RequestParam(defaultValue = "10")Integer limit, - @RequestParam(required = false)String orderByField, - @RequestParam(required = false)String orderByType, - @RequestParam Map<String, Object> param){ + public R list(@RequestParam(defaultValue = "1") Integer curr, + @RequestParam(defaultValue = "10") Integer limit, + @RequestParam(required = false) String orderByField, + @RequestParam(required = false) String orderByType, + @RequestParam Map<String, Object> param) { excludeTrash(param); EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); convert1(param, wrapper); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} - return R.ok(agvLockMastService.selectPage(new Page<>(curr, limit), wrapper.eq("status",0))); + if (!Cools.isEmpty(orderByField)) { + wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); + } + return R.ok(agvLockMastService.selectPage(new Page<>(curr, limit), wrapper.eq("status", 0))); } @RequestMapping(value = "/locMast/add/auth") @@ -67,19 +83,43 @@ @RequestMapping(value = "/locMast/update/auth") @ManagerAuth(memo = "搴撲綅淇敼") @Transactional - public R update(AgvLocMast locMast){ - if (Cools.isEmpty(locMast) || null==locMast.getLocNo()){ - return R.error(); + public R update(AgvLocMast locMast) { + if (Cools.isEmpty(locMast) || null == locMast.getLocNo()) { + return R.error("鍙傛暟缂哄け"); } AgvWrkMast wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>() .eq("source_loc_no", locMast.getLocNo()) .or().eq("loc_no", locMast.getLocNo())); - if(!Cools.isEmpty(wrkMast)){ - return R.error("璇ュ簱浣嶆鍦ㄤ綔涓氾紝璇峰厛澶勭悊宸ヤ綔妗�"); + if (!Cools.isEmpty(wrkMast)) { + return R.error("璇ュ簱浣嶆鍦ㄤ綔涓氾紝璇峰厛澶勭悊宸ヤ綔妗�"); } AgvLocMast oldLocMast = agvLockMastService.selectById(locMast.getLocNo()); if (locMast.getLocSts().equals("F") && (oldLocMast.getLocSts().equals("D") || oldLocMast.getLocSts().equals("O"))) { return R.error("褰撳墠鎿嶄綔宸茶闃绘锛岃鑱旂郴绠$悊鍛�"); + } + String barcode = oldLocMast.getBarcode(); + int br = 0; + if (locMast.getLocSts() == "O" || locMast.getLocSts() == "X") { + switch (locMast.getBarcode().substring(0, 2)) { + case "10": + br = 1; + break; + case "20": + br = 2; + break; + case "21": + br = 4; + break; + case "30": + br = 3; + break; + case "40": + br = 5; + break; + } + if (oldLocMast.getLocType1() != br) { + return R.error("璐ф灦鍜屽簱浣嶇被鍨嬩笉鍖归厤锛�"); + } } Date now = new Date(); // 鏈夌墿鏂欐椂淇敼涓虹┖搴撲綅鎴栬�呯┖鏉垮簱浣嶏紝鍒欏垹闄ゅ簱瀛樻槑缁� @@ -99,30 +139,80 @@ adjDetl.setAppeTime(now); adjDetl.setAppeUser(getUserId()); if (!adjDetlService.insert(adjDetl)) { - throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + throw new CoolException("搴撲綅淇敼澶辫触"); } } if (!agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", locMast.getLocNo()))) { - throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + throw new CoolException("搴撲綅鏄庣粏鍒犻櫎澶辫触"); } + if (locMast.getLocSts().equals("O")) { + locMast.setBarcode(""); + } + } + } else if (oldLocMast.getLocSts().equals("D")) { + if (locMast.getLocSts().equals("O")) { + locMast.setBarcode(""); } } locMast.setModiUser(getUserId()); locMast.setModiTime(now); - if(!agvLockMastService.updateById(locMast)) { - throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + if (!agvLockMastService.updateById(locMast)) { + throw new CoolException("涓诲簱浣嶄慨鏀瑰け璐�"); + } else { + try { + if (locMast.getLocSts().equals("O")) { + HashMap<String, String> data = new HashMap<>(); + data.put("reqCode", System.currentTimeMillis() + ""); + data.put("podCode", barcode); + data.put("positionCode", locMast.getLocNo()); + data.put("indBind", "0"); + String response = ""; + boolean success = false; + int code = 0; + try { + response = new HttpHandler.Builder() + .setUri(url) + .setPath(locStsUrl) + .setTimeout(30, TimeUnit.SECONDS) + .setJson(JSONObject.toJSONString(data)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + code = Integer.parseInt(jsonObject.get("code").toString()); + if (code != 0) { + log.info("搴撲綅瑙g粦AGV鎺ュ彛璋冪敤澶辫触锛岃繑鍥炰俊鎭細" + response); + } else { + success = true; + } + } catch (Exception e) { + throw new CoolException("璋冪敤AGV鍝嶅簲閿欒"); + } finally { + apiLogService.save( + "璐ф灦涓庝綅缃В缁�", + url + locStsUrl, + null, + "127.0.0.1", + JSON.toJSONString(data), + response, + success + ); + } + } + } catch (Exception e) { + + } } return R.ok(); } @RequestMapping(value = "/locMast/delete/auth") @ManagerAuth(memo = "搴撲綅鍒犻櫎") - public R delete(@RequestParam String param){ + public R delete(@RequestParam String param) { List<AgvLocMast> list = JSONArray.parseArray(param, AgvLocMast.class); - if (Cools.isEmpty(list)){ - return R.error(); + if (Cools.isEmpty(list)) { + return R.error("鍙傛暟缂哄け"); } - for (AgvLocMast entity : list){ + for (AgvLocMast entity : list) { agvLockMastService.delete(new EntityWrapper<>(entity)); } return R.ok(); @@ -130,7 +220,7 @@ @RequestMapping(value = "/locMast/export/auth") @ManagerAuth(memo = "搴撲綅瀵煎嚭") - public R export(@RequestBody JSONObject param){ + public R export(@RequestBody JSONObject param) { List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); Map<String, Object> map = excludeTrash(param.getJSONObject("locMast")); @@ -143,7 +233,7 @@ @ManagerAuth public R query(@RequestBody JSONObject param) { Wrapper<AgvLocMast> wrapper = new EntityWrapper<AgvLocMast>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); - if (null != agvLockMastService.selectOne(wrapper)){ + if (null != agvLockMastService.selectOne(wrapper)) { return R.parse(BaseRes.REPEAT).add(getComment(AgvLocMast.class, String.valueOf(param.get("key")))); } return R.ok(); @@ -153,11 +243,13 @@ @ManagerAuth(memo = "鍒濆鍖栧簱浣�") public R init(LocMastInitParam param) { //娓呯┖鍘熸湁搴撲綅 - agvLockMastService.clearLoc(); +// agvLockMastService.clearLoc(); + //鍒濆鍖栦竴妤煎簱浣� + agvLockMastService.initLocFloor1(); //鍒濆鍖栦簩妤煎簱浣� - agvLockMastService.initLocFloor2(); +// agvLockMastService.initLocFloor2(); //鍒濆鍖栦笁妤肩珯鐐� - //agvLockMastService.initLocFloor3(); +// agvLockMastService.initLocFloor3(); return R.ok(); } @@ -168,10 +260,10 @@ return R.ok(agvLockMastService.selectById(String.valueOf(id))); } - private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ - for (Map.Entry<String, Object> entry : map.entrySet()){ + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) { + for (Map.Entry<String, Object> entry : map.entrySet()) { String val = String.valueOf(entry.getValue()); - if (val.contains(RANGE_TIME_LINK)){ + 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])); @@ -180,10 +272,11 @@ } } } - private <T> void convert1(Map<String, Object> map, EntityWrapper<T> wrapper){ - for (Map.Entry<String, Object> entry : map.entrySet()){ + + private <T> void convert1(Map<String, Object> map, EntityWrapper<T> wrapper) { + for (Map.Entry<String, Object> entry : map.entrySet()) { String val = String.valueOf(entry.getValue()); - if (val.contains(RANGE_TIME_LINK)){ + 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])); -- Gitblit v1.9.1