From 69b16c271110dfceb8b38e835dad0fdc0730a90b Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期二, 05 十二月 2023 08:17:58 +0800
Subject: [PATCH] #
---
src/main/java/zy/cloud/wms/common/service/task/DiffValScheduler.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 106 insertions(+), 1 deletions(-)
diff --git a/src/main/java/zy/cloud/wms/common/service/task/DiffValScheduler.java b/src/main/java/zy/cloud/wms/common/service/task/DiffValScheduler.java
index 839fafe..37d8df6 100644
--- a/src/main/java/zy/cloud/wms/common/service/task/DiffValScheduler.java
+++ b/src/main/java/zy/cloud/wms/common/service/task/DiffValScheduler.java
@@ -1,12 +1,26 @@
package zy.cloud.wms.common.service.task;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Arith;
+import com.core.common.Cools;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RestController;
+import zy.cloud.wms.common.model.MatnrDto;
+import zy.cloud.wms.common.model.MatnrDto0;
+import zy.cloud.wms.common.service.erp.ErpScheduler;
+import zy.cloud.wms.common.service.erp.Result;
+import zy.cloud.wms.common.service.erp.entity.GetBasisResult;
+import zy.cloud.wms.manager.entity.DiffVal;
import zy.cloud.wms.manager.service.DiffValService;
+import zy.cloud.wms.manager.utils.HttpHandler;
+
+import java.util.*;
/**
* Created by vincent on 2021/11/23
@@ -17,10 +31,101 @@
@Autowired
private DiffValService diffValService;
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
@Transactional
- @Scheduled(cron = "0/10 * * * * ? ")
+ @Scheduled(cron = "0 */10 * * * ?")
public void run() {
+ List<MatnrDto0> erpQtyList = null;
+ Date now = new Date();
+ try {
+ Map<String, Object> param = new HashMap<>();
+ param.put("PUserCode", "N");
+ param.put("KUserCode", "N");
+ String response = new HttpHandler.Builder()
+// .setUri("http://123.60.34.127:6220/api")
+ .setUri("http://shhtapi.vipgrasp.com:6220/api")
+ .setPath(ErpScheduler.GET_STOCK)
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ if (!Cools.isEmpty(response)) {
+ log.info(response);
+ Result result = JSON.parseObject(response, Result.class);
+ if (result.getCode() != 1) {
+ return;
+ }
+ erpQtyList = JSON.parseArray(result.getData(), MatnrDto0.class);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ if (Cools.isEmpty(erpQtyList)) {
+ log.error("鑾峰彇EPR搴撳瓨澶辫触");
+ return;
+ }
+ List<Map<String, Object>> maps = jdbcTemplate.queryForList("select sum(a.anfme) as count, a.matnr from (\n" +
+ "\tselect\n" +
+ "\tsum(anfme) as anfme,\n" +
+ "\tmatnr\n" +
+ "\tfrom asr_loc_detl\n" +
+ "\tgroup by matnr\n" +
+ "\tunion all\n" +
+ "\tselect\n" +
+ "\tsum(anfme) as anfme,\n" +
+ "\tmatnr\n" +
+ "\tfrom man_loc_detl\n" +
+ "\tgroup by matnr\n" +
+ ") as a\n" +
+ "where 1=1\n" +
+ "group by a.matnr");
+ List<MatnrDto> stockQtyList = new ArrayList<>();
+ for (Map<String, Object> map : maps) {
+ stockQtyList.add(Cools.conver(map, MatnrDto.class));
+ }
+
+ for (MatnrDto item : stockQtyList) {
+ DiffVal diffVal = diffValService.selectById(item.getMatnr());
+ if (diffVal == null) {
+ diffVal = new DiffVal(
+ item.getMatnr(), // 鐗╂枡缂栧彿[闈炵┖]
+ item.getCount(), // WMS搴撳瓨
+ 0.0D, // ERP搴撳瓨
+ item.getCount(), // 宸紓鍊�
+ now, // 鏇存柊鏃堕棿
+ null // 澶囨敞
+ );
+ diffValService.insert(diffVal);
+ } else {
+ diffVal.setStockQty(item.getCount());
+ double erpQty = diffVal.getErpQty();
+ diffVal.setVal(Arith.subtract(2, diffVal.getStockQty(), erpQty));
+ diffVal.setUpdateTime(now);
+ diffValService.updateById(diffVal);
+ }
+ }
+
+ for (MatnrDto0 item : erpQtyList) {
+ DiffVal diffVal = diffValService.selectById(item.getPUserCode());
+ if (diffVal == null) {
+ diffVal = new DiffVal(
+ item.getPUserCode(), // 鐗╂枡缂栧彿[闈炵┖]
+ 0.0D, // WMS搴撳瓨
+ item.getQty(), // ERP搴撳瓨
+ -item.getQty(), // 宸紓鍊�
+ now, // 鏇存柊鏃堕棿
+ null // 澶囨敞
+ );
+ diffValService.insert(diffVal);
+ } else {
+ diffVal.setErpQty(item.getQty());
+ double stockQty = diffVal.getStockQty();
+ diffVal.setVal(Arith.subtract(2, stockQty, diffVal.getErpQty()));
+ diffVal.setUpdateTime(now);
+ diffValService.updateById(diffVal);
+ }
+ }
}
--
Gitblit v1.9.1