From 39eda46cbbf3ebb393c3770a5a19e923cace2a13 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 22 四月 2021 14:05:54 +0800 Subject: [PATCH] # --- src/main/java/zy/cloud/wms/common/service/erp/ErpScheduler.java | 313 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 193 insertions(+), 120 deletions(-) diff --git a/src/main/java/zy/cloud/wms/common/service/erp/ErpScheduler.java b/src/main/java/zy/cloud/wms/common/service/erp/ErpScheduler.java index a844e3c..a82b817 100644 --- a/src/main/java/zy/cloud/wms/common/service/erp/ErpScheduler.java +++ b/src/main/java/zy/cloud/wms/common/service/erp/ErpScheduler.java @@ -14,8 +14,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import zy.cloud.wms.common.service.erp.entity.*; +import zy.cloud.wms.common.utils.VersionUtils; import zy.cloud.wms.manager.entity.*; -import zy.cloud.wms.manager.mapper.CustOrderMapper; import zy.cloud.wms.manager.mapper.TagMapper; import zy.cloud.wms.manager.service.*; import zy.cloud.wms.manager.utils.HttpHandler; @@ -43,8 +43,6 @@ public static final String UPLOAD_CANCEL_RESULT = "cM/basis/cancelOrders"; @Autowired - private CustOrderService custOrderService; - @Autowired private MatService matService; @Autowired private CstmrService cstmrService; @@ -55,7 +53,9 @@ @Autowired private TagMapper tagMapper; @Autowired - private CustOrderMapper custOrderMapper; + private OrderService orderService; + @Autowired + private OrderDetlService orderDetlService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @@ -298,44 +298,81 @@ boolean complete = true; Set<String> existNumbers = new HashSet<>(); for (GetOrderResult0 data : list) { - if (custOrderService.selectCount(new EntityWrapper<CustOrder>() - .eq("number", data.getNumber()) -// .ne("bType_id", data.getBTypeID()) - ) > 0) { -// log.error("{}鍗曞彿宸插瓨鍦�", data.getNumber()); -// complete = false; + if (orderService.selectByOrderNo(data.getNumber()) != null) { existNumbers.add(data.getNumber()); continue; } + Cstmr cstmr = cstmrService.selectByUuid(data.getBTypeID()); + Order order = new Order( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + data.getNumber(), // 璁㈠崟缂栧彿 + data.getBillDate(), // 鍗曟嵁鏃ユ湡 + 11L, // 鍗曟嵁绫诲瀷 + null, // 椤圭洰缂栧彿 + null, // 椤圭洰鍚嶇О + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + String.valueOf(data.getVchcode()), // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + cstmr==null?data.getBTypeID():cstmr.getName(), // 瀹㈡埛 + data.getBTypeID(), // 鑱旂郴鏂瑰紡 * + null, // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + data.getETypeID(), // 涓氬姟鍛� * + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 + 1L, // 璁㈠崟鐘舵�� + 1, // 鐘舵�� + 9527L, // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + 9527L, // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + data.getSummary() // 澶囨敞 + ); + if (!orderService.insert(order)) { + throw new CoolException("淇濆瓨璁㈠崟琛ㄥご澶辫触锛�"); + } for (GetOrderResultDetl0 detl0 : data.getDetail()) { - CustOrder custOrder = new CustOrder( - data.getNumber(), // 閿�鍞崟鍙� - data.getBillDate(), // 鍗曟嵁鏃ユ湡[闈炵┖] - data.getBTypeID(), // 瀹㈡埛缂栧彿 - data.getETypeID(), // 缁忔墜浜虹紪鍙穂闈炵┖] - data.getVchcode(), // 鍗曟嵁鑷ID - detl0.getUserCode(), // 鍟嗗搧缂栧彿 - detl0.getQty(), // 鍟嗗搧鏁伴噺 - detl0.getQty(), // 鎬绘暟閲� - detl0.getPrice(), // 鍟嗗搧鍗曚环 - detl0.getRowNo(), // 鍟嗗搧鏄庣粏琛屽彿 - detl0.getComment(), // 鍟嗗搧澶囨敞[闈炵┖] - 0, // 鐘舵�� - now, // 娣诲姞鏃堕棿 - now, // 淇敼鏃堕棿 - data.getSummary() // 澶囨敞 - ); - if (!custOrderService.insert(custOrder)) { + Mat mat = matService.selectByMatnr(detl0.getUserCode()); + if (mat == null) { + log.error("{}鍟嗗搧涓嶅瓨鍦ㄣ��", detl0.getUserCode()); + continue; + } + OrderDetl orderDetl = new OrderDetl(); + VersionUtils.setOrderDetl(orderDetl, mat); + orderDetl.setName(String.valueOf(detl0.getRowNo())); // 鍟嗗搧鏄庣粏琛屽彿 + orderDetl.setOrderId(order.getId()); // 璁㈠崟鍐呯爜 + orderDetl.setAnfme(detl0.getQty()); // 鍟嗗搧鏁伴噺 + orderDetl.setCount(detl0.getQty()); // 鎬绘暟閲� * + orderDetl.setUnitPrice(detl0.getPrice()); // 鍟嗗搧鍗曚环 + orderDetl.setCreateBy(9527L); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(9527L); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setMemo(detl0.getComment()); + if (!orderDetlService.insert(orderDetl)) { complete = false; log.error("淇濆瓨閿�鍞鍗曞け璐ワ紒"); } + } } if (complete) { List<String> collect = list.stream().map(GetOrderResult0::getNumber).distinct().collect(Collectors.toList()); for (String number : collect) { if (!existNumbers.contains(number)) { - custOrderService.updateStatus(number, 1); + orderService.updateSettle(number, 1L); } } } @@ -357,37 +394,35 @@ // @PostConstruct public void finishOrdersExecute(){ try { - List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("status", 4).isNotNull("vch_code")); - if (!Cools.isEmpty(custOrders)) { - List<String> numbers = custOrders.stream().map(CustOrder::getNumber).distinct().collect(Collectors.toList()); - for (String number : numbers) { + List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4).isNotNull("number")); + if (!Cools.isEmpty(orders)) { + List<String> orderNos = orders.stream().map(Order::getOrderNo).distinct().collect(Collectors.toList()); + for (Order order : orders) { GetOrderResult0 getOrderResult0 = new GetOrderResult0(); List<GetOrderResultDetl0> list = new ArrayList<>(); getOrderResult0.setDetail(list); - // 閬嶅巻閫掑噺 - Iterator<CustOrder> iterator = custOrders.iterator(); - while (iterator.hasNext()) { - CustOrder custOrder = iterator.next(); - if (custOrder.getNumber().equals(number)) { - // 琛ㄥご - if (Cools.isEmpty(getOrderResult0.getNumber())) { - getOrderResult0.setNumber(number); - getOrderResult0.setVchType(11); // todo:luxiaotao - getOrderResult0.setBillDate(custOrder.getBillDate()); - getOrderResult0.setBTypeID(custOrder.getBTypeId()); - getOrderResult0.setKTypeID("瀹忔尯浠撳簱"); - getOrderResult0.setVchcode(custOrder.getVchcode()); - } - // 琛ㄤ綋 - GetOrderResultDetl0 detl0 = new GetOrderResultDetl0(); - detl0.setUserCode(custOrder.getUserCode()); - detl0.setQty(custOrder.getTotal()); - detl0.setPrice(custOrder.getPrice()); - detl0.setComment(custOrder.getComment()); - detl0.setRowNo(custOrder.getRowNo()); - list.add(detl0); - iterator.remove(); - } + + + // 澶� + getOrderResult0.setNumber(order.getOrderNo()); + getOrderResult0.setVchType(11); // todo:luxiaotao + getOrderResult0.setBillDate(order.getOrderTime()); + getOrderResult0.setBTypeID(order.getTel()); + getOrderResult0.setKTypeID("瀹忔尯浠撳簱"); + getOrderResult0.setVchcode(Integer.parseInt(order.getNumber())); + getOrderResult0.setSummary("閿�鍞鍗� - " + DateUtils.convert(new Date(), "yyyy-MM-dd HH:mm")); + + // 浣� + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo()); + for (OrderDetl orderDetl : orderDetls) { + GetOrderResultDetl0 detl0 = new GetOrderResultDetl0(); + detl0.setUserCode(orderDetl.getMatnr()); + detl0.setQty(orderDetl.getCount()); + detl0.setPrice(orderDetl.getUnitPrice()); + detl0.setComment(orderDetl.getMemo()); + detl0.setUnit(orderDetl.getUnit()); + detl0.setRowNo(Integer.parseInt(orderDetl.getName())); + list.add(detl0); } System.out.println(JSON.toJSONString(getOrderResult0)); @@ -403,16 +438,98 @@ log.warn(response); Result result = JSON.parseObject(response, Result.class); if (result.getCode() != 1) { - return; + continue; } - // 杞巻鍙叉。 - int save = custOrderMapper.saveLog(getOrderResult0.getNumber()); - if (save > 0) { - if (custOrderMapper.delete(new EntityWrapper<CustOrder>().eq("number", getOrderResult0.getNumber())) == 0) { - throw new CoolException("鍒犻櫎閿�鍞鍗曞け璐�"); - } - log.info("{}閿�鍞鍗曟嫞璐х粨鏉�", getOrderResult0.getNumber()); + if (!orderService.updateSettle(getOrderResult0.getNumber(), 6L)) { + throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�"); } +// // 杞巻鍙叉。 +// int save = custOrderMapper.saveLog(getOrderResult0.getNumber()); +// if (save > 0) { +// if (custOrderMapper.delete(new EntityWrapper<CustOrder>().eq("number", getOrderResult0.getNumber())) == 0) { +// throw new CoolException("鍒犻櫎閿�鍞鍗曞け璐�"); +// } +// log.info("{}閿�鍞鍗曟嫞璐х粨鏉�", getOrderResult0.getNumber()); +// } + } + + } + } + + + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } + + } + + /** + * 瀹屾垚閲囪喘閫�璐ц鍗� + */ + @Scheduled(cron = "0/10 * * * * ? ") + @Transactional +// @PostConstruct + public void finishOrders0Execute(){ + try { + List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4).eq("doc_type", 6)); + if (!Cools.isEmpty(orders)) { + List<String> orderNos = orders.stream().map(Order::getOrderNo).distinct().collect(Collectors.toList()); + for (Order order : orders) { + GetOrderResult0 getOrderResult0 = new GetOrderResult0(); + List<GetOrderResultDetl0> list = new ArrayList<>(); + getOrderResult0.setDetail(list); + + + // 澶� + getOrderResult0.setNumber(order.getOrderNo()); + getOrderResult0.setVchType(6); // todo:luxiaotao + getOrderResult0.setBillDate(order.getOrderTime()); + getOrderResult0.setBTypeID(order.getTel()); + getOrderResult0.setKTypeID("瀹忔尯浠撳簱"); + getOrderResult0.setBTypeID(Cools.isEmpty(order.getCstmr())?"SHHT":String.valueOf(order.getCstmr())); + getOrderResult0.setBTypeID("SHHT"); + getOrderResult0.setSummary("閲囪喘閫�璐у崟 - " + DateUtils.convert(new Date(), "yyyy-MM-dd HH:mm")); + + + // 浣� + List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo()); + for (OrderDetl orderDetl : orderDetls) { + GetOrderResultDetl0 detl0 = new GetOrderResultDetl0(); + detl0.setUserCode(orderDetl.getMatnr()); + detl0.setQty(orderDetl.getAnfme()); + detl0.setPrice(orderDetl.getUnitPrice()); + detl0.setUnit(orderDetl.getUnit()); + detl0.setComment(orderDetl.getMemo()); + list.add(detl0); + } + + System.out.println(JSON.toJSONString(getOrderResult0)); + + + String response = new HttpHandler.Builder() + .setUri(URI) + .setPath(UPLOAD_BILL) + .setJson(JSON.toJSONString(getOrderResult0)) + .build() + .doPost(); + if (!Cools.isEmpty(response)) { + log.warn(response); + Result result = JSON.parseObject(response, Result.class); + if (result.getCode() != 1) { + continue; + } + if (!orderService.updateSettle(getOrderResult0.getNumber(), 6L)) { + throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�"); + } +// // 杞巻鍙叉。 +// int save = custOrderMapper.saveLog(getOrderResult0.getNumber()); +// if (save > 0) { +// if (custOrderMapper.delete(new EntityWrapper<CustOrder>().eq("number", getOrderResult0.getNumber())) == 0) { +// throw new CoolException("鍒犻櫎閿�鍞鍗曞け璐�"); +// } +// log.info("{}閿�鍞鍗曟嫞璐х粨鏉�", getOrderResult0.getNumber()); +// } } } @@ -479,15 +596,17 @@ /** * 鑾峰彇鍙栨秷璁㈠崟 */ - @Scheduled(cron = "0/5 * * * * ? ") + @Scheduled(cron = "0/10 * * * * ? ") @Transactional // @PostConstruct public void getCancelOrdersExecute(){ try { Map<String, Object> json = new HashMap<>(); + json.put("vchType", 151); + json.put("flag", 2); String response = new HttpHandler.Builder() .setUri(URI) - .setPath(OVER_BILL) + .setPath(GET_ORDERS) .setJson(JSON.toJSONString(json)) .build() .doPost(); @@ -500,62 +619,16 @@ } List<GetOrderResult0> list = JSON.parseArray(result.getData(), GetOrderResult0.class); if (!Cools.isEmpty(list)) { - boolean complete = true; Set<String> existNumbers = new HashSet<>(); - - } - } - } catch (IOException e) { - e.printStackTrace(); - throw new RuntimeException(e.getMessage()); - } - - } - - /** - * 涓婁紶閿�鍞鍗曞彇娑堢粨鏋� - */ - @Scheduled(cron = "0/5 * * * * ? ") - @Transactional -// @PostConstruct - public void uploadCancelOrdersExecute(){ - try { - List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("status", 3).isNotNull("vch_code")); - if (Cools.isEmpty(custOrders)) { - return; - } - Map<String, Object> json = new HashMap<>(); - List<UploadCancelResult> list = new ArrayList<>(); - for (CustOrder custOrder : custOrders) { - UploadCancelResult result = new UploadCancelResult(); - result.setNumber(custOrder.getNumber()); - result.setUserCode(custOrder.getUserCode()); - result.setQty(custOrder.getTotal()); - result.setStatus(1); - list.add(result); - } - json.put("data", list); - String response = new HttpHandler.Builder() - .setUri(URI) - .setPath(UPLOAD_CANCEL_RESULT) - .setJson(JSON.toJSONString(json)) - .build() - .doPost(); - if (!Cools.isEmpty(response)) { -// log.info(response); - Date now = new Date(); - Result result = JSON.parseObject(response, Result.class); - if (result.getCode() != 1) { - return; - } - for (UploadCancelResult result1 : list) { - // 杞巻鍙叉。 - int save = custOrderMapper.saveLog(result1.getNumber(), result1.getUserCode()); - if (save > 0) { - if (custOrderMapper.delete(new EntityWrapper<CustOrder>().eq("number", result1.getNumber()).eq("user_code", result1.getUserCode())) == 0) { - throw new CoolException("鍒犻櫎閿�鍞鍗曞け璐�"); + for (GetOrderResult0 result0 : list) { + existNumbers.add(result0.getNumber()); + } + for (String number : existNumbers) { + if (!orderService.updateSettle(number, 5L)) { +// throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�"); } } + } } } catch (IOException e) { -- Gitblit v1.9.1