#
luxiaotao1123
2021-11-24 c58b3e345dcc7c83f776e3da9bd0db7ef7b32caf
#
1个文件已添加
1个文件已删除
1个文件已修改
141 ■■■■ 已修改文件
src/main/java/diffVal.sql 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/model/MatnrDto0.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/zy/cloud/wms/common/service/task/DiffValScheduler.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/diffVal.sql
File was deleted
src/main/java/zy/cloud/wms/common/model/MatnrDto0.java
New file
@@ -0,0 +1,15 @@
package zy.cloud.wms.common.model;
import lombok.Data;
/**
 * Created by vincent on 2021/3/31
 */
@Data
public class MatnrDto0 {
    private String PUserCode;
    private Double Qty;
}
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);
            }
        }
    }