王佳豪
2021-06-09 faecccbe46a1f85b5d9b18fce12e02764faba78e
src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
@@ -9,6 +9,7 @@
import com.zy.asrs.entity.LocNormal;
import com.zy.asrs.entity.WaitPakin;
import com.zy.asrs.entity.WaitPakinLog;
import com.zy.asrs.entity.param.ERPselectParam;
import com.zy.asrs.mapper.LocNormalMapper;
import com.zy.asrs.mapper.OutStockMapper;
import com.zy.asrs.service.LocNormalService;
@@ -93,7 +94,44 @@
                        }
                    }
                } else {
                    throw new CoolException("通知单号不可为空");
                    // throw new CoolException("通知单号不可为空"); 通知单号空的情况下,往CPICMO表插入手动入库数据
                    // 判断原先平仓是否存在有货,如果有货数量进行累加
                    LocNormal oldLocList = locNormalService.selectOne(new EntityWrapper<LocNormal>().eq("matnr", list.get(i).getMatnr()).and().eq("warehouse", list.get(i).getWarehouse()).and().eq("mnemonic", list.get(i).getMnemonic()).and().eq("state", "1"));
                    if (!Cools.isEmpty(oldLocList)) {
                        // erp更新
                        if (Cools.isEmpty(list.get(i).getSupplier())) {
                            String maxKeySql = "select max(FInterID) as num from CPICMO";
                            List<ERPselectParam> maxKeyList = erpSqlServer.select(maxKeySql, ERPselectParam.class);
                            Integer maxKey = maxKeyList.get(0).getNum();
                            String ErpSql = "insert into CPICMO(FBrNo, FSourceBillNo, FBillNo, FTranType, FStatus, FMRP, FItemID, FQty, FCommitQty, FSourceEntryID, FClosed, FUnitID, FAuxCommitQty, FCancellation, FQtyFinish, FQtyScrap, FQtyLost, FAuxQtyFinish, FAuxQtyScrap, FAuxQtyLost, FMrpClosed, FBomInterID, FQtyPass, FAuxQtyPass, FQtyBack, FAuxQtyBack, FFinishTime, FReadyTIme, FPowerCutTime, FFixTime, FWaitItemTime, FWaitToolTime, FTaskID, FWorkTypeID, FCostObjID, FStockQty, FAuxStockQty, FSuspend, FReleasedQty, FReleasedAuxQty, FUnScheduledQty, FUnScheduledAuxQty, FSubEntryID, FScheduleID, FPlanOrderInterID, FProcessPrice, FProcessFee, FGMPBatchNo, FGMPCollectRate, FGMPItemBalance, FGMPBulkQty, FCustID, FMRPLockFlag, FHandworkClose, FInHighLimit, FInHighLimitQty, FInLowLimit, FInLowLimitQty, FChangeTimes, FCheckCommitQty, FAuxCheckCommitQty, FPlanConfirmed, FPlanMode, FMTONo, FPrintCount, FFinClosed, FStockFlag, FStartFlag, FVchBillNo, FVchInterID, FCardClosed, FHRReadyTime, FSourceTranType, FSourceInterId, FInterID, FAuxQty, FAuxInHighLimitQty, FAuxInLowLimitQty, Fnumber, FWorkShop) values (0, 0, '0', 85, 0, 1052, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14036, '0', 0, 0, 14215, 0, '0', 0, 1059, 0, 0, 0, 0, {0,number,#}, {1,number,#}, {2,number,#}, {3,number,#}, ''{4}'', 11378)";
                            ErpSql = MessageFormat.format(ErpSql, maxKey + 1, list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getMatnr());
                            erpSqlServer.update(ErpSql);
                        }
//                        Double updateAnfme = new Double(list.get(i).getAnfme().doubleValue());
                        // 平仓入库(更新)逻辑
                        list.get(i).setAnfme(oldLocList.getAnfme().add(list.get(i).getAnfme()));
                        updateList.add(list.get(i));
                        if (baseMapper.withoutSupplierLocNormalUpdate(updateList) > 0) {
                            // cust_wait_pakin转cust_wait_pakin_log,并更新数量
//                            custWaitPakinToLog(list.get(i), updateAnfme);
                        }
                    } else {
                        // erp更新
                        if (Cools.isEmpty(list.get(i).getSupplier())) {
                            String maxKeySql = "select max(FInterID) as num from CPICMO";
                            List<ERPselectParam> maxKeyList = erpSqlServer.select(maxKeySql, ERPselectParam.class);
                            Integer maxKey = maxKeyList.get(0).getNum();
                            String ErpSql = "insert into CPICMO(FBrNo, FSourceBillNo, FBillNo, FTranType, FStatus, FMRP, FItemID, FQty, FCommitQty, FSourceEntryID, FClosed, FUnitID, FAuxCommitQty, FCancellation, FQtyFinish, FQtyScrap, FQtyLost, FAuxQtyFinish, FAuxQtyScrap, FAuxQtyLost, FMrpClosed, FBomInterID, FQtyPass, FAuxQtyPass, FQtyBack, FAuxQtyBack, FFinishTime, FReadyTIme, FPowerCutTime, FFixTime, FWaitItemTime, FWaitToolTime, FTaskID, FWorkTypeID, FCostObjID, FStockQty, FAuxStockQty, FSuspend, FReleasedQty, FReleasedAuxQty, FUnScheduledQty, FUnScheduledAuxQty, FSubEntryID, FScheduleID, FPlanOrderInterID, FProcessPrice, FProcessFee, FGMPBatchNo, FGMPCollectRate, FGMPItemBalance, FGMPBulkQty, FCustID, FMRPLockFlag, FHandworkClose, FInHighLimit, FInHighLimitQty, FInLowLimit, FInLowLimitQty, FChangeTimes, FCheckCommitQty, FAuxCheckCommitQty, FPlanConfirmed, FPlanMode, FMTONo, FPrintCount, FFinClosed, FStockFlag, FStartFlag, FVchBillNo, FVchInterID, FCardClosed, FHRReadyTime, FSourceTranType, FSourceInterId, FInterID, FAuxQty, FAuxInHighLimitQty, FAuxInLowLimitQty, Fnumber, FWorkShop) values (0, 0, '0', 85, 0, 1052, 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14036, '0', 0, 0, 14215, 0, '0', 0, 1059, 0, 0, 0, 0, {0,number,#}, {1,number,#}, {2,number,#}, {3,number,#}, ''{4}'', 11378)";
                            ErpSql = MessageFormat.format(ErpSql, maxKey + 1, list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getAnfme(), list.get(i).getMatnr());
                            erpSqlServer.update(ErpSql);
                        }
                        // 平仓入库逻辑
                        addList.add(list.get(i));
                        if (baseMapper.pdaLocNormalIn(addList) > 0) {
                            // cust_wait_pakin转cust_wait_pakin_log,并更新数量
//                            custWaitPakinToLog(list.get(i), list.get(i).getAnfme().doubleValue());
                        }
                    }
                }
            }
        }
@@ -150,37 +188,39 @@
    /* cust_wait_pakin转cust_wait_pakin_log,并更新数量 */
    private boolean custWaitPakinToLog(LocNormal list, Double updateAnfme) {
        WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("supplier", list.getSupplier()).and().eq("matnr", list.getMatnr()));
        WaitPakinLog waitPakinLog = new WaitPakinLog();
        waitPakinLog.setAnfme(updateAnfme);
        waitPakinLog.setMatnr(waitPakin.getMatnr());
        waitPakinLog.setMaktx(waitPakin.getMaktx());
        waitPakinLog.setLgnum(waitPakin.getLgnum());
        waitPakinLog.setType(waitPakin.getType());
        waitPakinLog.setMnemonic(waitPakin.getMnemonic());
        waitPakinLog.setSupplier(waitPakin.getSupplier());
        waitPakinLog.setWarehouse(waitPakin.getWarehouse());
        waitPakinLog.setBrand(waitPakin.getBrand());
        waitPakinLog.setAltme(waitPakin.getAltme());
        waitPakinLog.setZpallet(waitPakin.getZpallet());
        waitPakinLog.setBname(waitPakin.getBname());
        waitPakinLog.setLocNo(waitPakin.getLocNo());
        waitPakinLog.setStatus(waitPakin.getStatus());
        waitPakinLog.setIoStatus(waitPakin.getIoStatus());
        waitPakinLog.setMemo(waitPakin.getMemo());
        waitPakinLog.setModiTime(waitPakin.getModiTime());
        waitPakinLog.setModiUser(waitPakin.getModiUser());
        waitPakinLog.setAppeTime(waitPakin.getAppeTime());
        waitPakinLog.setAppeUser(waitPakin.getAppeUser());
        // 转入库通知历史档
        waitPakinLogService.insert(waitPakinLog);
        // 修改入库同志档物料数量
        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
        wrapper.eq("supplier", list.getSupplier())
                .eq("matnr", list.getMatnr())
                .isNull("zpallet");
        WaitPakin pakin = new WaitPakin();
        pakin.setAnfme(waitPakin.getAnfme() - updateAnfme);
        waitPakinService.update(pakin, wrapper);
        if(!Cools.isEmpty(waitPakin)){
            WaitPakinLog waitPakinLog = new WaitPakinLog();
            waitPakinLog.setAnfme(updateAnfme);
            waitPakinLog.setMatnr(waitPakin.getMatnr());
            waitPakinLog.setMaktx(waitPakin.getMaktx());
            waitPakinLog.setLgnum(waitPakin.getLgnum());
            waitPakinLog.setType(waitPakin.getType());
            waitPakinLog.setMnemonic(waitPakin.getMnemonic());
            waitPakinLog.setSupplier(waitPakin.getSupplier());
            waitPakinLog.setWarehouse(waitPakin.getWarehouse());
            waitPakinLog.setBrand(waitPakin.getBrand());
            waitPakinLog.setAltme(waitPakin.getAltme());
            waitPakinLog.setZpallet(waitPakin.getZpallet());
            waitPakinLog.setBname(waitPakin.getBname());
            waitPakinLog.setLocNo(waitPakin.getLocNo());
            waitPakinLog.setStatus(waitPakin.getStatus());
            waitPakinLog.setIoStatus(waitPakin.getIoStatus());
            waitPakinLog.setMemo(waitPakin.getMemo());
            waitPakinLog.setModiTime(waitPakin.getModiTime());
            waitPakinLog.setModiUser(waitPakin.getModiUser());
            waitPakinLog.setAppeTime(waitPakin.getAppeTime());
            waitPakinLog.setAppeUser(waitPakin.getAppeUser());
            // 转入库通知历史档
            waitPakinLogService.insert(waitPakinLog);
            // 修改入库同志档物料数量
            Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
            wrapper.eq("supplier", list.getSupplier())
                    .eq("matnr", list.getMatnr())
                    .isNull("zpallet");
            WaitPakin pakin = new WaitPakin();
            pakin.setAnfme(waitPakin.getAnfme() - updateAnfme);
            waitPakinService.update(pakin, wrapper);
        }
        return true;
    }