王佳豪
2021-06-19 6e781bc28dd55c4bb5c5652ead746d947b7aeafa
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, ''{6}'', '0', 85, 0, 1052, 0, 0, 0, 0, 0, 250, {5,number,#}, 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(), list.get(i).getAnfme(), list.get(i).getMnemonic());
                            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, ''{6}'', '0', 85, 0, 1052, 0, 0, 0, 0, 0, 250, {5,number,#}, 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(), list.get(i).getAnfme(), list.get(i).getMnemonic());
                            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;
    }