王佳豪
2021-05-05 c81332c3a4effcc55f68ecff8abb7f3fc5158de8
1.平仓入库erp单号对应功能实现
1个文件已修改
50 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
@@ -110,33 +110,43 @@
        if (list.size() > 0) {
            for (Integer i = 0; i < list.size(); i++) {
                if (!Cools.isEmpty(list.get(i).getSupplier())) { // 存在入库单号的才进行erp更新
                    String sql = "update CPICMO set FAuxCommitQty = (FAuxCommitQty + {0,number,#}) where 1=1 and Fnumber = ''{1}'' and FBillNo = ''{2}''";
                    sql = MessageFormat.format(sql, list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getSupplier());
                    if (erpSqlServer.update(sql) > 0) {
                        sql = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
                        sql = MessageFormat.format(sql, list.get(i).getMatnr(), list.get(i).getSupplier());
                        List<CPICMO> select = erpSqlServer.select(sql, CPICMO.class);
                        CPICMO cpicmo = select.get(0);
                        boolean complete = false;
                        if (cpicmo.getFQty() > 0) {
                            if (cpicmo.getFAuxCommitQty() == cpicmo.getFQty()) {
                                complete = true;
                    String sqlSelect = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
                    sqlSelect = MessageFormat.format(sqlSelect, list.get(i).getMatnr(), list.get(i).getSupplier());
                    List<CPICMO> CPICMOList = erpSqlServer.select(sqlSelect,CPICMO.class);
                    if (CPICMOList.size() > 0) { //  说明erp有对应的入库单
                        String sql = "update CPICMO set FAuxCommitQty = (FAuxCommitQty + {0,number,#}) where 1=1 and Fnumber = ''{1}'' and FBillNo = ''{2}''";
                        sql = MessageFormat.format(sql, list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getSupplier());
                        if (erpSqlServer.update(sql) > 0) {
                            sql = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
                            sql = MessageFormat.format(sql, list.get(i).getMatnr(), list.get(i).getSupplier());
                            List<CPICMO> select = erpSqlServer.select(sql, CPICMO.class);
                            CPICMO cpicmo = select.get(0);
                            boolean complete = false;
                            if (cpicmo.getFQty() > 0) {
                                if (cpicmo.getFAuxCommitQty() == cpicmo.getFQty()) {
                                    complete = true;
                                }
                            } else {
                                if (cpicmo.getFAuxCommitQty() == cpicmo.getFAuxQty()) {
                                    complete = true;
                                }
                            }
                        } else {
                            if (cpicmo.getFAuxCommitQty() == cpicmo.getFAuxQty()) {
                                complete = true;
                            if (complete) {
                                if (!completeCPakIn(list.get(i).getSupplier(), list.get(i).getMatnr())) {
                                    log.error("{}平仓入库单标记完成失败", list.get(i).getSupplier());
                                }
                            }
                        }
                        if (complete) {
                            if (!completeCPakIn(list.get(i).getSupplier(), list.get(i).getMatnr())) {
                                log.error("{}平仓入库单标记完成失败", list.get(i).getSupplier());
                            }
                        }
                    } else {
                        throw new CoolException("ERP查询不到对应通知单");
                    }
                } else {
                    throw new CoolException("通知单号不可为空");
                }
            }
            // 平仓入库逻辑
            baseMapper.pdaLocNormalIn(list);
        }
        baseMapper.pdaLocNormalIn(list);
    }
    @Override