From c58b3e345dcc7c83f776e3da9bd0db7ef7b32caf Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期三, 24 十一月 2021 09:04:56 +0800 Subject: [PATCH] # --- src/main/java/zy/cloud/wms/common/service/task/DiffValScheduler.java | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 105 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..78a6df5 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,100 @@ @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") + .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