From 383c6139926563f02fba4432effbfc27f87d88c5 Mon Sep 17 00:00:00 2001 From: bfwms <1> Date: 星期三, 30 七月 2025 14:36:57 +0800 Subject: [PATCH] ERP对接 --- src/main/java/com/zy/asrs/controller/OpenController.java | 40 ++++++++++++------- src/main/java/com/zy/common/model/DetlDto.java | 20 +++++++--- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 17 ++++++-- src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java | 1 src/main/java/com/zy/asrs/task/ERPReportScheduler.java | 25 ++++++++++-- 5 files changed, 73 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index 025696b..e83bde1 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -1,6 +1,7 @@ package com.zy.asrs.controller; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.core.annotations.AppAuth; import com.core.common.*; import com.core.exception.CoolException; @@ -17,6 +18,7 @@ import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; /** @@ -162,23 +164,31 @@ */ @PostMapping("/order/pakout/new/default/v1") @AppAuth(memo = "娣诲姞璁㈠崟鍑哄簱") - public synchronized R pakoutOrderCreate(@RequestHeader(required = false) String appkey, - @RequestBody OpenOrderPakoutParam param, - HttpServletRequest request) { + public synchronized R pakoutOrderCreate( + @RequestBody HashMap<String , Object> map + ) { // auth(appkey, param, request); - if (Cools.isEmpty(param)) { - return R.parse(BaseRes.PARAM); + String toJSONString = JSONObject.toJSONString(map.get("data")); + List<OpenOrderPakoutParam> openOrderPakoutParams=JSON.parseArray(toJSONString,OpenOrderPakoutParam.class); + int i=1; + for (OpenOrderPakoutParam param: openOrderPakoutParams){ + if (Cools.isEmpty(param)) { + return R.parse(BaseRes.PARAM); + } + if (Cools.isEmpty(param.getOrderNo())) { + return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖"); + } + System.out.println(i+"-------------------------------"+param.getOrderNo()); + i++; + if (Cools.isEmpty(param.getOrderType())) { + return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖"); + } + if (Cools.isEmpty(param.getOrderDetails())) { + return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖"); + } + openService.pakoutOrderCreate(param); } - if (Cools.isEmpty(param.getOrderNo())) { - return R.error("鍗曟嵁缂栧彿[orderNo]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getOrderType())) { - return R.error("鍗曟嵁绫诲瀷[orderType]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getOrderDetails())) { - return R.error("鍗曟嵁鏄庣粏[orderDetails]涓嶈兘涓虹┖"); - } - openService.pakoutOrderCreate(param); + return R.ok(); } diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index 4f423d8..98861b1 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -247,7 +247,7 @@ List<DetlDto> list = new ArrayList<>(); List<DetlDto> orderDetails = param.getOrderDetails(); for (DetlDto detail : orderDetails) { - DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); + DetlDto dto = new DetlDto(detail.getMatnr(),detail.getMaktx(), detail.getBatch(), detail.getAnfme()); if (DetlDto.has(list, dto)) { DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); assert detlDto != null; @@ -259,10 +259,17 @@ for (DetlDto detlDto : list) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { - throw new CoolException(detlDto.getMatnr() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"); + Mat mat1=new Mat(); + mat1.setTagId(1L); + mat1.setMatnr(detlDto.getMatnr()); + mat1.setMaktx(detlDto.getMaktx()); + mat1.setMatType(3); + matService.insert(mat1); } OrderDetl orderDetl = new OrderDetl(); - orderDetl.sync(mat); +// orderDetl.sync(mat); + orderDetl.setMatnr(detlDto.getMatnr()); + orderDetl.setMaktx(detlDto.getMaktx()); orderDetl.setBatch(detlDto.getBatch()); orderDetl.setAnfme(detlDto.getAnfme()); orderDetl.setOrderId(order.getId()); @@ -286,8 +293,6 @@ wrkMast.setIoType(101); wrkMast.setWrkSts(17L); wrkMast.setMemo("鎹℃枡杞叏鏉垮伐浣滄。"); - wrkMastService.update(wrkMast, new EntityWrapper<WrkMast>() - .eq("wrk_no", wrkMast.getWrkNo())); List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); List<LocDetl> locDetls = locDetlService.selectByLocNo(wrkMast.getSourceLocNo()); for (LocDetl locDetl : locDetls) { @@ -318,6 +323,8 @@ } } locMastService.updateLocSts(wrkMast.getSourceLocNo(), "R"); + wrkMastService.update(wrkMast, new EntityWrapper<WrkMast>() + .eq("wrk_no", wrkMast.getWrkNo())); } diff --git a/src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java b/src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java index 9dfd3ae..0e6c397 100644 --- a/src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java +++ b/src/main/java/com/zy/asrs/task/CollectOrdersScheduler.java @@ -144,6 +144,7 @@ mat1.setMatnr(orderResult.getItemNo()); mat1.setMaktx(orderResult.getItemName()); mat1.setSpecs(orderResult.getItemSpec()); + mat1.setMatType(3); matService.insert(mat1); // throw new CoolException(orderResult.getItemNo() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"); } diff --git a/src/main/java/com/zy/asrs/task/ERPReportScheduler.java b/src/main/java/com/zy/asrs/task/ERPReportScheduler.java index 7005ede..9292c76 100644 --- a/src/main/java/com/zy/asrs/task/ERPReportScheduler.java +++ b/src/main/java/com/zy/asrs/task/ERPReportScheduler.java @@ -64,6 +64,9 @@ if(wrkDetls!=null&&wrkDetls.size()>0){ List<LinkedHashMap<String,Object>> datas=new ArrayList<>(); for(WrkDetl wrkDetl:wrkDetls){ + if(Cools.isEmpty(wrkDetl.getOrderNo())){ + continue; + } OrderDetl orderDetl= orderDetlService.selectItem(wrkDetl.getOrderNo(),wrkDetl.getMatnr(),wrkDetl.getBatch()); if(orderDetl==null){ log.error("orderNo={}锛宮atnr={}锛宐atch={}锛屾病鏈夋煡璇㈠埌璁㈠崟鏄庣粏",wrkDetl.getOrderNo(),wrkDetl.getMatnr(),wrkDetl.getBatch()); @@ -76,22 +79,35 @@ } DocType docType = docTypeService.selectById(order.getDocType());//鍗曟嵁缂栧彿 LinkedHashMap<String,Object> map=new LinkedHashMap<>(); - map.put("orgNo",orderDetl.getManu());//缁勭粐缂栫爜 + if(wrkMast.getIoType()<50){ + map.put("orgNo",orderDetl.getManu());//缁勭粐缂栫爜 + map.put("docType",docType.getMemo()); + map.put("cellNo",orderDetl.getBrand()); + }else{ + map.put("orgNo","2");//缁勭粐缂栫爜 + int i = orderDetl.getOrderNo().indexOf("5D"); + if(i!=-1){ + map.put("docType","B064"); + }else{ + map.put("docType","D001"); + } + map.put("cellNo","L01A20"); + } + map.put("docNo",orderDetl.getOrderNo()); - map.put("docType",docType.getMemo()); map.put("docSeqNo",orderDetl.getModel()); map.put("itemNo",orderDetl.getMatnr()); map.put("qty",wrkDetl.getAnfme()); map.put("unitNo",orderDetl.getUnit()); map.put("warehouseNo","02201"); - map.put("cellNo",orderDetl.getBrand()); + map.put("combinationLotNo",String.valueOf(orderDetl.getBatch())); map.put("barcode",wrkDetl.getMatnr()); datas.add(map); } String path= ""; String work= ""; - if(wrkMast.getIoType()<100){ + if(wrkMast.getIoType()<50){ path=inReportAddress; work="鍏ュ簱"; }else{ @@ -101,6 +117,7 @@ path=outReportAddress; HashMap<String,Object> map=new HashMap<>(); map.put("data",datas); + System.out.println(map.toString()); //涓婃姤ERP String response = ""; boolean success = false; diff --git a/src/main/java/com/zy/common/model/DetlDto.java b/src/main/java/com/zy/common/model/DetlDto.java index a792802..ae3b160 100644 --- a/src/main/java/com/zy/common/model/DetlDto.java +++ b/src/main/java/com/zy/common/model/DetlDto.java @@ -19,6 +19,8 @@ private String matnr; + private String maktx; + private String batch; private Double anfme; @@ -48,6 +50,12 @@ this.batch = batch; this.anfme = anfme; } + public DetlDto(String matnr,String maktx, String batch, Double anfme) { + this.matnr = matnr; + this.maktx = maktx; + this.batch = batch; + this.anfme = anfme; + } public DetlDto(String matnr, String batch, Double anfme,Long owner) { this.matnr = matnr; @@ -57,12 +65,12 @@ } - public DetlDto(String orderNo, String matnr, String batch, Double anfme) { - this.orderNo = orderNo; - this.matnr = matnr; - this.batch = batch; - this.anfme = anfme; - } +// public DetlDto(String orderNo, String matnr, String batch, Double anfme) { +// this.orderNo = orderNo; +// this.matnr = matnr; +// this.batch = batch; +// this.anfme = anfme; +// } public DetlDto(String matnr, String batch, Double anfme, String memo, String cstmr) { this.matnr = matnr; -- Gitblit v1.9.1