src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/ReportMesOrderResult.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OpenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/constant/MesConstant.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -563,6 +563,16 @@ return mobileService.pdckqr(param); } // @PostMapping("/pdtz/auth") // @ManagerAuth(memo = "盘点调整库存") // public synchronized R pdtz(@RequestBody PdckqrParam param) { // // 根据工作号确认复核 // if(Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getMaterials())){ // return R.parse(BaseRes.PARAM); // } // return mobileService.pdtz(param); // } @PostMapping("/pdaWarehousingNow") @ManagerAuth(memo = "pda组托立即入库") public synchronized R pdaWarehousingNow(@RequestBody PdaWarehousingNowParam param) { src/main/java/com/zy/asrs/controller/OpenController.java
@@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Created by vincent on 2022/4/8 @@ -159,6 +160,18 @@ return R.ok(); } @PostMapping("/xhd") @AppAuth(memo = "盘点位请求亮灯") public synchronized R requestXhd(@RequestHeader(required = false) String appkey, @RequestBody Map<String,Object> param, HttpServletRequest request) { auth(appkey, param, request); if (Cools.isEmpty(param.get("barcode"))){ return R.parse("条码错误:" + param.get("barcode")); } return openService.requestXhd((String) param.get("barcode")); } /*@PostMapping("/order/matSync/default/v1") @AppAuth(memo = "商品信息同步接口") public synchronized R syncMatInfo(@RequestHeader(required = false) String appkey, src/main/java/com/zy/asrs/entity/ReportMesOrderResult.java
@@ -9,11 +9,11 @@ */ @Data public class ReportMesOrderResult { private String groupNo; private Integer qty; private String packageNo; private Integer status; public ReportMesOrderResult(String brand, Integer qty) { this.groupNo = brand; this.qty = qty; this.packageNo = brand; this.status = qty; } } src/main/java/com/zy/asrs/service/OpenService.java
@@ -76,6 +76,11 @@ R zphjCdwc(ZphjcdwcParam param); /** * gwcs到达盘点位置传递托盘条码获取亮灯 */ R requestXhd(String barcode); /** * 添加入库单 */ void pakinOrderCreate(OpenOrderPakinParam param); src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1210,6 +1210,8 @@ List<PdckqrParam.Material> materials = param.getMaterials(); boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials); // todo 两箱盘两箱需要确定位置没错 if (isFullyCancelled) { // 盘点物料确成功,工作档转换 盘点出库->盘点再入库,下发回库命令 // 保存工作主档历史档 if (!wrkMastLogService.save(wrkMast.getWrkNo())) { @@ -1252,11 +1254,19 @@ return R.ok("盘点确认成功"); } else { // 物料不一致 // todo 不一致的处理处理方法待定 // 不一致的处理处理方法:弹出调整界面 // 重新扫描实物上面的码进行调整 // 实物在库存里面的地方清空,任务所在库存清空 // 将实物和当前托盘位置和库位绑定 // 一个木箱情况直接调整 // 两个木箱出两个 都调整 // 两个木箱出一个 调整一个 // 工作档标记异常->回库 return R.error("盘点确认异常"); } return R.error("盘点确认异常"); } @Override @@ -1516,9 +1526,7 @@ boolean success = false; // 获取请求头 Map<String,Object> headers = new HashMap<>(); headers.put("digi-type","sync "); headers.put("digi-protocol","raw"); headers.put("digi-datakey"," XCommon.ImportData"); headers.put("Content-Type","application/json;charset=UTF-8"); // 构造请求体 JSONObject jsonObject = new JSONObject(); @@ -1528,22 +1536,23 @@ String response = ""; try { response = new HttpHandler.Builder() .setUri(MesConstant.MES_IP_PORT) .setPath(MesConstant.MES_DP_URL) .setUri(MesConstant.MES_CC_IP_PORT) .setPath(MesConstant.MES_CC_DP_URL) .setHeaders(headers) .setJson(body) .build() .doPost(); .doGet(); if (!Cools.isEmpty(response)) { JSONObject jsonObject1 = JSONObject.parseObject(response); int code = (int) jsonObject1.get("code"); String msg = (String) jsonObject1.get("msg"); if (code != 200) { throw new CoolException(msg); boolean state = jsonObject1.getBoolean("state"); String msg = (String) jsonObject1.get("message"); if (code == 200 && state) { success = true; } success = true; throw new CoolException(msg); } else { log.error("返修品入库给mes推送待判失败!!!url:{};request:{};response:{}", MesConstant.URL + MesConstant.PAKIN_URL, body, response); log.error("返修品入库给mes推送待判失败!!!url:{};request:{};response:{}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_IP_PORT, body, response); throw new CoolException("返修品入库给mes推送待判失败"); } } catch (Exception e) { @@ -1553,7 +1562,7 @@ // 保存接口日志 apiLogService.save( "返修品入库给mes推送待判", MesConstant.MES_IP_PORT + MesConstant.MES_DP_URL, MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_IP_PORT, null, "127.0.0.1", body, src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1667,6 +1667,29 @@ return R.ok(zphjcdwcVos); } @Override public R requestXhd(String barcode) { // 库存明细木箱位置集合 List<LocDetl> locDetls = locDetlMapper.selectList(new EntityWrapper<LocDetl>().eq("zpallet", barcode)); List<String> collect1 = locDetls.stream().map(LocDetl::getOrigin).distinct().collect(Collectors.toList()); // 工作明细木箱位置集合 List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("zpallet", barcode)); List<String> collect2 = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList()); // 0明细异常,1亮左,2亮右,3都亮 if (collect1.size() == 0 || collect2.size() == 0){ return R.ok(0); } else if((collect1.size() == 1 && collect2.size() == 1) || (collect1.size() == 2 && collect2.size() == 2)) { return R.ok(3); } else if(collect1.size() == 2 && collect2.size() == 1) { return R.ok(collect2.get(0).equals("左") ? 1 : 2); } else { return R.parse("亮信号灯条码异常:" + barcode); } } /** * 创建桁架理货出库的工作档 */ src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -52,49 +52,94 @@ // 出库完成上报 if (docType.getPakout() == 1) { List<ReportMesOrderResult> collect = orderDetls.stream().map(orderDetl -> new ReportMesOrderResult(orderDetl.getBrand(), orderDetl.getQty().intValue())).collect(Collectors.toList()); JSONObject object = new JSONObject(); object.put("orderNo",order.getOrderNo()); object.put("orderDetls",collect); String body = JSON.toJSONString(object); String response = ""; boolean success = false; try { response = new HttpHandler.Builder() .setUri(MesConstant.MES_IP_PORT) .setPath(MesConstant.MES_CKSB_URL) .setJson(body) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { success = true; // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } else { log.error("请求MES出库单上报接口失败!!!url:{};request:{};response:{}", MesConstant.MES_IP_PORT+MesConstant.MES_CKSB_URL, JSON.toJSONString(collect), response); throw new CoolException("请求MES出库单上报接口失败"); } } catch (Exception e) { log.error("请求MES出库单上报接口异常", e); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // return FAIL.setMsg(e.getMessage()); } finally { // 盘点单上报 if (docType.getDocName().equals("盘点单")) { List<ReportMesOrderResult> collect = orderDetls.stream().map(orderDetl -> new ReportMesOrderResult(orderDetl.getBrand(), orderDetl.getQty().intValue())).collect(Collectors.toList()); JSONObject object = new JSONObject(); object.put("orderNo",order.getOrderNo()); object.put("orderDetls",collect); String body = JSON.toJSONString(object); String response = ""; boolean success = false; try { // 保存接口日志 apiLogService.save( "请求MES出库单上报接口", MesConstant.MES_IP_PORT + MesConstant.MES_CKSB_URL, null, "127.0.0.1", JSON.toJSONString(collect), response, success ); } catch (Exception e) { log.error("", e); } response = new HttpHandler.Builder() .setUri(MesConstant.MES_CC_IP_PORT) .setPath(MesConstant.MES_CC_SB_URL) .setJson(body) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { success = true; // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("更新订单上报完成失败:" + order); } } else { log.error("请求仓储MES盘点单上报接口失败!!!url:{};request:{};response:{}", MesConstant.MES_CC_IP_PORT+MesConstant.MES_CC_SB_URL, JSON.toJSONString(collect), response); } } catch (Exception e) { log.error("请求仓储MES盘点单上报接口异常", e); } finally { try { // 保存接口日志 apiLogService.save( "请求仓储MES盘点单上报接口", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_SB_URL, null, "127.0.0.1", JSON.toJSONString(collect), response, success ); } catch (Exception e) { log.error("", e); } } } else if(docType.getDocName().equals("出库申请单") || docType.getDocName().equals("反修出库单")) { // 返修出库单/出库申请单上报 List<ReportMesOrderResult> collect = orderDetls.stream().map(orderDetl -> new ReportMesOrderResult(orderDetl.getBrand(), orderDetl.getQty().intValue() == 1 ? 2 : 3)).collect(Collectors.toList()); JSONObject object = new JSONObject(); object.put("outboundNumber",order.getOrderNo()); object.put("outBounds",collect); String body = JSON.toJSONString(object); String response = ""; boolean success = false; try { response = new HttpHandler.Builder() .setUri(MesConstant.MES_ZL_IP_PORT) .setPath(MesConstant.MES_ZL_SB_URL) .setJson(body) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); Integer code = jsonObject.getInteger("code"); Boolean state = jsonObject.getBoolean("state"); if (code == 200 && state) { success = true; // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("更新订单上报完成失败:" + order); } } else { log.error("请求质量MES出库单上报接口失败!!!url:{};request:{};response:{}", MesConstant.MES_ZL_IP_PORT+MesConstant.MES_ZL_SB_URL, JSON.toJSONString(collect), response); } } catch (Exception e) { log.error("请求质量MES出库单上报接口异常", e); } finally { try { // 保存接口日志 apiLogService.save( "请求质量MES出库单上报接口", MesConstant.MES_ZL_IP_PORT + MesConstant.MES_ZL_SB_URL, null, "127.0.0.1", JSON.toJSONString(collect), response, success ); } catch (Exception e) { log.error("", e); } } } } // 入库完成上报 src/main/java/com/zy/common/constant/MesConstant.java
@@ -13,11 +13,20 @@ public static final String PAKOUT_URL = "wmsFinprd/api/zy/v1/packOut/sendList"; // MES接口IP地址 public static final String MES_IP_PORT = "http://192.168.14.249:8008"; // MES仓储IP地址 public static final String MES_CC_IP_PORT = "http://172.22.152.3:8156"; // 给MES推送一楼反修为待判 public static final String MES_DP_URL = "/api/Task/InventoryTask"; // 给仓储MES推送一楼反修为待判 public static final String MES_CC_DP_URL = "/planCutRolling/v1/updateBatchHandleType"; // 给仓储MES推送盘点出库结果 public static final String MES_CC_SB_URL = "/planCutRolling/v1/updateBatchHandleType"; // MES质量IP地址 public static final String MES_ZL_IP_PORT = "http://172.22.152.3:8157"; // 给质量MES推送 成品/反修品 出库结果 public static final String MES_ZL_SB_URL = "/qualityOutboundOrder/v1/confirmReceipt"; // 给MES推送出库单结果 public static final String MES_CKSB_URL = "/api/Task/InventoryTask";