From eb13b96cc3b01a3d44fbce6a730004e158418ab5 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 09 四月 2021 14:06:58 +0800 Subject: [PATCH] # --- src/main/java/zy/cloud/wms/common/service/erp/ErpScheduler.java | 237 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 154 insertions(+), 83 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 9107b65..d013ee5 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 @@ -4,21 +4,15 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.DateUtils; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; -import zy.cloud.wms.common.service.erp.entity.GetBasisResult; -import zy.cloud.wms.common.service.erp.entity.GetOrderResult0; -import zy.cloud.wms.common.service.erp.entity.GetOrderResultDetl0; -import zy.cloud.wms.manager.entity.Cstmr; -import zy.cloud.wms.manager.entity.CustOrder; -import zy.cloud.wms.manager.entity.Mat; -import zy.cloud.wms.manager.entity.Tag; +import zy.cloud.wms.common.service.erp.entity.*; +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.*; @@ -34,8 +28,8 @@ * Created by vincent on 2020/11/27 */ @Slf4j -@Component -@RestController +//@Component +//@RestController public class ErpScheduler { public static final String URI = "http://8.133.182.21:8080/api"; @@ -43,6 +37,8 @@ public static final String GET_BASIS = "cM/basis/getBasis"; public static final String UPLOAD_BILL = "cM/basis/uploadBill"; public static final String UPLOAD_STOCK = "cM/basis/uploadStock"; + public static final String OVER_BILL = "cM/basis/OverBill"; + public static final String UPLOAD_CANCEL_RESULT = "cM/basis/cancelOrders"; @Autowired private CustOrderService custOrderService; @@ -58,6 +54,8 @@ private TagMapper tagMapper; @Autowired private CustOrderMapper custOrderMapper; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; /** * 鍟嗗搧涓嬭浇 @@ -273,7 +271,7 @@ /** * 鎸佷箙鍖栭攢鍞鍗� */ - @Scheduled(cron = "0/45 * * * * ? ") + @Scheduled(cron = "0/5 * * * * ? ") @Transactional // @PostConstruct public void getOrdersExecute(){ @@ -296,13 +294,15 @@ List<GetOrderResult0> list = JSON.parseArray(result.getData(), GetOrderResult0.class); if (!Cools.isEmpty(list)) { 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; +// complete = false; + existNumbers.add(data.getNumber()); continue; } for (GetOrderResultDetl0 detl0 : data.getDetail()) { @@ -311,17 +311,19 @@ 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() // 澶囨敞 ); - boolean insert = custOrderService.insert(custOrder); - if (!insert) { + if (!custOrderService.insert(custOrder)) { complete = false; log.error("淇濆瓨閿�鍞鍗曞け璐ワ紒"); } @@ -330,7 +332,9 @@ if (complete) { List<String> collect = list.stream().map(GetOrderResult0::getNumber).distinct().collect(Collectors.toList()); for (String number : collect) { - custOrderService.updateStatus(number, 1); + if (!existNumbers.contains(number)) { + custOrderService.updateStatus(number, 1); + } } } @@ -346,12 +350,12 @@ /** * 瀹屾垚閿�鍞鍗� */ -// @Scheduled(cron = "0/10 * * * * ? ") + @Scheduled(cron = "0/10 * * * * ? ") @Transactional // @PostConstruct public void finishOrdersExecute(){ try { - List<CustOrder> custOrders = custOrderService.selectList(new EntityWrapper<CustOrder>().eq("status", 4)); + 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) { @@ -370,13 +374,15 @@ 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.getQty()); + detl0.setQty(custOrder.getTotal()); detl0.setPrice(custOrder.getPrice()); detl0.setComment(custOrder.getComment()); + detl0.setRowNo(custOrder.getRowNo()); list.add(detl0); iterator.remove(); } @@ -419,83 +425,148 @@ } /** - * 鏇存柊搴撳瓨 + * 搴撳瓨涓婁紶 */ -// @Scheduled(cron = "0/3 * * * * ? ") +// @Scheduled(cron = "0/15 * * * * ? ") + @GetMapping("test2") public void uploadStockExecute(){ try { -// locDetlService - - Map<String, Object> param = new HashMap<>(); - param.put("rec", 0); - param.put("Flag", 1); - String response = new HttpHandler.Builder() - .setUri(URI) - .setPath(GET_BASIS) - .setJson(JSON.toJSONString(param)) - .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; - } - List<GetBasisResult> list = JSON.parseArray(result.getData(), GetBasisResult.class); - for (GetBasisResult data : list) { - Mat mat = matService.selectByMatnr(data.getUserCode()); - String modifyDate = data.getModifyDate(); - Date updateTime = null; - if (!Cools.isEmpty(modifyDate)) { - updateTime = DateUtils.convert(data.getModifyDate()); - } - if (null == mat) { - mat = new Mat( - String.valueOf(data.getRec()), // 缂栧彿 - null, // 鎵�灞炲尯鍩� - null, // 鎵�灞炲綊绫� - data.getUserCode(), // 鍟嗗搧缂栧彿 - data.getFullName(), // 鍟嗗搧鍚嶇О - null, // 鍚嶇О - null, // 瑙勬牸 - null, // 鍨嬪彿 - null, // 鎵瑰彿 - null, // 鍗曚綅 - null, // 鏉$爜 - null, // 鍗曟嵁绫诲瀷 - null, // 鍗曟嵁缂栧彿 - null, // 瀹㈡埛鍚嶇О - null, // 鍝侀」鏁� - null, // 搴撳瓨浣欓噺 - null, // 閲嶉噺 - 1, // - null, // 娣诲姞浜哄憳 - now, // 娣诲姞鏃堕棿 - null, // 淇敼浜哄憳 - updateTime, // 淇敼鏃堕棿 - null // 澶囨敞 - ); - matService.insert(mat); - } else { - mat.setUuid(String.valueOf(data.getRec())); - mat.setMatnr(data.getUserCode()); - mat.setMaktx(data.getFullName()); - mat.setUpdateTime(updateTime); - matService.updateById(mat); - } - log.info("====>> 鏇存柊鐗╂枡锛歿}", data.getUserCode()); + List<LocDetl> statis = locDetlService.getLocDetlStatis(); + if (!Cools.isEmpty(statis)) { + UploadStock uploadStock = new UploadStock(); + uploadStock.setNumber(String.valueOf(snowflakeIdWorker.nextId())); + uploadStock.setVchType(89); + uploadStock.setBillDate(DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F)); + uploadStock.setDataSize(statis.size()); + List<UploadStockDtel> detail = new ArrayList<>(); + uploadStock.setDetail(detail); + for (LocDetl locDetl : statis) { + Mat mat = matService.selectByMatnr(locDetl.getMatnr()); + if (mat == null) {continue;} + UploadStockDtel detl = new UploadStockDtel(); + detl.setUserCode(mat.getMatnr()); + detl.setQty(locDetl.getAnfme()); +// detl.setPrice(Double.parseDouble()); + detl.setComment(mat.getMemo()); + detail.add(detl); } + String response = new HttpHandler.Builder() + .setUri(URI) + .setPath(UPLOAD_STOCK) + .setJson(JSON.toJSONString(uploadStock)) + .build() + .doPost(); + if (!Cools.isEmpty(response)) { + log.info("涓婃姤搴撳瓨鏄庣粏缁熻 ======>> \nrequest:{} \nresponse:{}", JSON.toJSONString(uploadStock), response); + Result result = JSON.parseObject(response, Result.class); + if (result.getCode() != 1) { + } + } } + } catch (Exception e) { e.printStackTrace(); - throw new RuntimeException(e.getMessage()); } } + /** + * 鑾峰彇鍙栨秷璁㈠崟 + */ + @Scheduled(cron = "0/5 * * * * ? ") + @Transactional +// @PostConstruct + public void getCancelOrdersExecute(){ + try { + Map<String, Object> json = new HashMap<>(); + String response = new HttpHandler.Builder() + .setUri(URI) + .setPath(OVER_BILL) + .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; + } + List<GetOrderResult0> list = JSON.parseArray(result.getData(), GetOrderResult0.class); + if (!Cools.isEmpty(list)) { + boolean complete = true; + Set<String> existNumbers = new HashSet<>(); + + String cancelNumber = ""; + if (!custOrderService.updateStatus(cancelNumber, 5)) { + throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�"); + } + + + } + } + } 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("鍒犻櫎閿�鍞鍗曞け璐�"); + } + } + } + } + } catch (IOException e) { + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } + + } + } -- Gitblit v1.9.1