自动化立体仓库 - WMS系统
1
zhang
7 天以前 5dff87c18f48e0a14440d1225924d35f8de7b00e
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -11,12 +11,12 @@
import com.zy.asrs.entity.AgvLocDetl;
import com.zy.asrs.entity.AgvLocMast;
import com.zy.asrs.entity.AgvWrkDetl;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.mapper.AgvLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.DataFormatter;
@@ -52,20 +52,26 @@
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private FlowLogService flowLogService;
    @Autowired
    private ConfigService configService;
    public void addLocDetlInfo(String locNo, int taskCode) {
        Date now = new Date();
        List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", taskCode));
        long flowId = snowflakeIdWorker.nextId();
        agvWrkDetls.stream().map(agvWrkDetl -> {
            AgvLocDetl agvLocDetl = new AgvLocDetl();
            //log.info("agvWrkDetl: " + agvLocDetl.getBarcode());
            BeanUtils.copyProperties(agvWrkDetl, agvLocDetl);
            agvLocDetl.setLocNo(locNo);
            //log.info("zc添加库存日志:{}", JSON.toJSON(agvLocDetl));
            this.insert(agvLocDetl);
            // 流水 -- 新增订单明细
            OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode());
            AgvLocDetl agvLocDetl = this.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo).eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()));
            if (agvLocDetl != null) {
                this.updateAnfme(agvLocDetl.getAnfme() + agvWrkDetl.getAnfme(), agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getBatch(), agvLocDetl.getThreeCode(), agvLocDetl.getDeadTime());
            } else {
                agvLocDetl = new AgvLocDetl();
                //log.info("agvWrkDetl: " + agvLocDetl.getBarcode());
                BeanUtils.copyProperties(agvWrkDetl, agvLocDetl);
                agvLocDetl.setLocNo(locNo);
                //log.info("zc添加库存日志:{}", JSON.toJSON(agvLocDetl));
                this.insert(agvLocDetl);
                // 流水 -- 新增订单明细
                //OrderDetl orderDetl = orderDetlService.selectItem(agvWrkDetl.getOrderNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode());
//            FlowLog flowLog = new FlowLog();
//            flowLog.setFid(String.valueOf(flowId));
//            flowLog.setSpare2(String.valueOf(taskCode));
@@ -91,6 +97,7 @@
//            if (!flowLogService.insert(flowLog)) {
//                throw new CoolException("同步半成品调拨单流水记录失败");
//            }
            }
            return agvLocDetl;
        }).collect(Collectors.toList());
@@ -100,13 +107,25 @@
        //根据物料号和批次找到对应的库存,并且按照修改时间排序
        Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time");
        if (type != null) {
            if (type.equals(AsrsConstants.ERCHANG)){
            if (type.equals(AsrsConstants.ERCHANG)) {
                wrapper.notLike("loc_no", "F3");
            }else {
                wrapper.notLike("loc_no", "F1");
            } else {
                boolean flag = false;
                for (String s : configService.getMatCode()) {
                    if (matnr.startsWith(s)) {
                        flag = true;
                    }
                }
                if (flag) {
                    //wrapper.notLike("loc_no", "F3");
                    wrapper.notLike("loc_no", "F1");
                } else {
                    wrapper.notLike("loc_no", "F1");
                }
            }
        }
        wapperSetCondition(wrapper, "batch", batch);
        //一直有PE带批次字段导致,无法出库,就注释掉
        //wapperSetCondition(wrapper, "batch", batch);
        wapperSetCondition(wrapper, "three_code", csocode);
        //wapperSetCondition(wrapper, "dead_time", isoseq);
@@ -184,11 +203,16 @@
    }
    /*
    更新库存明细
     */
    public void updateStock(String sourceLoc, String targetLoc) {
        this.baseMapper.updateStock(sourceLoc, targetLoc);
    public void updateStock(String sourceLoc, String targetLoc, Long userId) {
        if (Cools.isEmpty(userId)) {
            this.baseMapper.updateStock(sourceLoc, targetLoc);
        } else {
            this.baseMapper.updateStock2(sourceLoc, targetLoc, userId);
        }
    }
    public Page<AgvLocDetl> getStockStatis(Page<AgvLocDetl> page) {
@@ -203,8 +227,19 @@
    }
    @Override
    public Double getSumAnfme2(String matnr, String threeCode) {
        return this.baseMapper.selectSumAnfmeByMatnr2(matnr, threeCode);
    }
    @Override
    public AgvLocDetl selectItem(String locNo, String matnr, String batch, String csocode, String isoCode) {
        return this.baseMapper.selectItemByOrderNo(locNo, matnr, batch, csocode, isoCode);
    }
    @Override
    public List<AgvLocDetl> selectItem2(String locNo, String matnr, String batch, String csocode, String isoCode) {
        return this.baseMapper.selectItemByOrderNo2(locNo, matnr, batch, csocode, isoCode);
    }
    @Override
@@ -218,8 +253,18 @@
    }
    @Override
    public Double getSumAnfmeProcessed2(String matnr, String threeCode) {
        return this.baseMapper.selectSumAnfmeByMatnrProcessed2(matnr, threeCode);
    }
    @Override
    public Double getSumAnfmeDb(String matnr, String threeCode, Integer floor) {
        return this.baseMapper.selectSumAnfmeByMatnr2(matnr, threeCode, floor);
        return this.baseMapper.selectSumAnfmeByMatnr22(matnr, threeCode, floor);
    }
    @Override
    public Double getSumAnfmeDb2(String matnr, String threeCode, Integer floor) {
        return this.baseMapper.selectSumAnfmeByMatnr3(matnr, threeCode, floor);
    }
    @Override