【备品备件】入库流程--赠品入库,商贸入库和退库入库

赠品入库

前台页面:GiftsWarehousing.vue 方法:listZprk

前台js文件:zprk.js

查询方法对应的后台类:SpareZprkController 查询参数:ZZPJH

查询方法对应的SQL语句:

select ZZPJH, BUKRS, WERKS, CGHTH, MATNR, MAKTX, ZZPJHH, MEINS, YRKSL, ELIFN from spare_zprk 
where ZZPJH = 'H190220002'

查询结果如下:
在这里插入图片描述
它的HdInfo和InInfo里的数据,都是从上面的SQL语句中获取。

但是HdInfo只有一个,InInfo可以有多个。

前台页面展示的数据如下:
在这里插入图片描述

提交方法的后台类:SpareWarehousingController

方法

@PostMapping("/gifts")
    @Transactional
    public AjaxResult commercial(@RequestBody GiftsWarehousing giftsWarehousing) {
        //        入库信息
        GiftsHdInfo giftsHdInfo = giftsWarehousing.getHdInfo();
        List<GiftsLnInfo> giftsLnInfos = giftsWarehousing.getLnInfo();
        // 获取仓库信息
        SpareWarehouse spareWarehouse = spareWarehouseService.selectSpareWarehouseById(Long.valueOf(giftsHdInfo.getWarehouseId()));

        // 获取当前用户
        String createBy = getUsername();
        try {
//            处理交易头表
            SpareTradehd spareTradehd = new SpareTradehd();
            spareTradehd.setBwart("101");
            spareTradehd.setDocumentNum(giftsHdInfo.getZzpjh());
            spareTradehd.setDocumentDate(giftsHdInfo.getDocumentDate());
            spareTradehd.setPostingDate(giftsHdInfo.getPostingDate());
            spareTradehd.setCompany(giftsHdInfo.getBukrs());
            spareTradehd.setSupplier(giftsHdInfo.getElifn());
            spareTradehd.setTradeType("05");
            spareTradehd.setCreateBy(createBy);
            spareTradehd.setCreateTime(new Date());
            spareTradehdService.insertSpareTradehd(spareTradehd);
            Long hd_id = spareTradehd.getId();


            for (GiftsLnInfo giftsLnInfo : giftsLnInfos) {

//            从内存中获取批次
                String batch = SpareUtils.getByWDM(redisCache, spareWarehouse.getWarehouseCode(), giftsLnInfo.getMatnr());

//            处理批次
                SpareBatch spareBatch = spareBatchService.selectSpareBatchByBatch(batch);
//            如果批次不存在则创建批次
                if (spareBatch == null) {
                    SpareBatch sb = new SpareBatch();
                    sb.setBatch(batch);
                    sb.setMatnr(giftsLnInfo.getMatnr());
                    sb.setMatxt(giftsLnInfo.getMaktx());
                    sb.setUnit(giftsLnInfo.getMeins());
                    sb.setStockinDate(new Date());
                    spareBatchService.insertSpareBatch(sb);
                }

                if(giftsLnInfo.getActualRecevieAmount()!=null && !("").equals(giftsLnInfo.getActualRecevieAmount())){
                    SpareBatchDetail spareBatchDetail = new SpareBatchDetail();
                    spareBatchDetail.setBatch(batch);
                    spareBatchDetail.setDetailType(giftsLnInfo.getType());
                    spareBatchDetail.setIsLimit(giftsLnInfo.getType().equals("预留占用")?"1":"0");
                    spareBatchDetail.setAmount(giftsLnInfo.getActualRecevieAmount());
                    spareBatchDetail.setDept("公共部门");
                    spareBatchDetail.setBeginingDept("公共部门");
                    spareBatchDetail.setCreateBy(createBy);
                    spareBatchDetail.setCreateTime(new Date());
                    spareBatchDetailService.insertSpareBatchDetail(spareBatchDetail);
                    Long batchDeatilId = spareBatchDetail.getId();
//                  存明细历史表
                    SpareBatchDetailHistory spareBatchDetailHistory = new SpareBatchDetailHistory();
                    spareBatchDetailHistory.setBatch(batch);
                    spareBatchDetailHistory.setAmount(giftsLnInfo.getActualRecevieAmount());
                    spareBatchDetailHistory.setDetailType(giftsLnInfo.getType());
                    spareBatchDetailHistory.setDetailChangeDate(new Date());
                    spareBatchDetailHistory.setDetailChangeDirection("I");
                    spareBatchDetailHistory.setDetailChangeReason("赠品入库");
                    spareBatchDetailHistory.setDetailChangeDept(giftsLnInfo.getMeins());
                    spareBatchDetailHistory.setDocumentNum(giftsHdInfo.getZzpjh());
                    spareBatchDetailHistory.setDocumentLineNum(giftsLnInfo.getZzpjhh());
                    spareBatchDetailHistory.setBatchDetailId(String.valueOf(batchDeatilId));
                    spareBatchDetailHistory.setCreateBy(createBy);
                    spareBatchDetailHistory.setCreateTime(new Date());
                    spareBatchDetailHistoryService.insertSpareBatchDetailHistory(spareBatchDetailHistory);
                    //            上架,默认上到Z999999货架
                    SpareShelvesRecord shelvesRecord = new SpareShelvesRecord();
                    shelvesRecord.setBatch(batch);
                    shelvesRecord.setLocation(spareWarehouse.getWarehouseCode() + "Z999999");
                    shelvesRecord.setAmount(giftsLnInfo.getActualRecevieAmount());
                    shelvesRecord.setShelvesDate(new Date());
                    shelvesRecord.setShelvesPer(createBy);
                    shelvesRecord.setDirection("U");
                    shelvesRecord.setDocumentNum(giftsHdInfo.getZzpjh());
                    shelvesRecord.setCreateBy(createBy);
                    shelvesRecord.setCreateTime(new Date());
                    spareShelvesRecordService.insertSpareShelvesRecord(shelvesRecord);
//            处理库存
                    SpareInventory spareInventory = new SpareInventory();
                    spareInventory.setWareshouseCode(spareWarehouse.getWarehouseCode());
                    spareInventory.setLocationCode(spareWarehouse.getWarehouseCode() + "Z999999");
                    spareInventory.setMatnr(giftsLnInfo.getMatnr());
                    spareInventory.setMatxt(giftsLnInfo.getMaktx());
                    spareInventory.setBatch(batch);
                    spareInventory.setUnit(giftsLnInfo.getMeins());
                    spareInventory.setAmount(giftsLnInfo.getActualRecevieAmount());
                    spareInventory.setCreateBy(createBy);
                    spareInventory.setCreateTime(new Date());
                    spareInventoryService.insertSpareInventory(spareInventory);

//            处理交易行表
                    SpareTradeln spareTradeln = new SpareTradeln();
                    spareTradeln.setTradehdId(String.valueOf(hd_id));
                    spareTradeln.setMatnr(giftsLnInfo.getMatnr());
                    spareTradeln.setMatxt(giftsLnInfo.getMaktx());
                    spareTradeln.setDocumentLineNum(giftsLnInfo.getZzpjhh());
                    spareTradeln.setAmount(giftsLnInfo.getActualRecevieAmount());
                    spareTradeln.setWarehouseCode(spareWarehouse.getWarehouseCode());
                    spareTradeln.setBatch(batch);
                    spareTradeln.setCreateBy(createBy);
                    spareTradeln.setCreateTime(new Date());
                    spareTradeln.setRemark(giftsLnInfo.getRemark());
                    spareTradelnService.insertSpareTradeln(spareTradeln);
                }



            }
            return AjaxResult.success();
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            e.printStackTrace();
            return AjaxResult.error(e.getMessage());
        }
    }

商贸入库

前台页面:CommercialWarehousing.vue 方法:listSmrk

前台js文件:smrk.js

查询方法对应的后台类:SpareSmrkController 查询参数:ebeln

查询方法对应的SQL语句:

SELECT EBELN, EBELP, a.LIFNR,c.NAME1 lifnr_desc, a.BUKRS,
       b.BUTXT BUKRS_DESC,BSTYP,BSART,BEDAT,MATNR,
       TXZ01, a.WERKS,d.NAME1 werks_desc,LGORT,MEINS,MENGE
       FROM spare_smrk a
                LEFT JOIN ( SELECT DISTINCT BUKRS, BUTXT FROM spare_t001 ) b ON b.BUKRS = a.bukrs
                LEFT JOIN spare_supplier c ON c.LIFNR = a.lifnr
                LEFT JOIN spare_t001 d ON d.WERKS = a.werks
      	where EBELN = '4500005783'

查询结果如下:
在这里插入图片描述
它的HdInfo和InInfo里的数据,都是从上面的SQL语句中获取。

但是HdInfo只有一个,InInfo可以有多个。

前台页面的展示效果如下:
在这里插入图片描述
提交方法的后台类:SpareWarehousingController

方法

@PostMapping("/commercial")
    @Transactional  
    public AjaxResult commercial(@RequestBody CommercialWarehousing commercialWarehousing) {
        //        入库信息
        CommercialHdInfo commercialHdInfo = commercialWarehousing.getHdInfo();
        List<CommercialLnInfo> commercialLnInfos = commercialWarehousing.getLnInfo();
        // 获取仓库信息
        SpareWarehouse spareWarehouse = spareWarehouseService.selectSpareWarehouseById(Long.valueOf(commercialHdInfo.getWarehouseId()));

        // 获取当前用户
        String createBy = getUsername();
        try {
//            处理交易头表
            SpareTradehd spareTradehd = new SpareTradehd();
            spareTradehd.setBwart("101");
            spareTradehd.setDocumentNum(commercialHdInfo.getEbeln());
            spareTradehd.setDocumentDate(commercialHdInfo.getDocumentDate());
            spareTradehd.setPostingDate(commercialHdInfo.getPostingDate());
            spareTradehd.setCompany(commercialHdInfo.getBukrs());
            spareTradehd.setSupplier(commercialHdInfo.getLifnr());
            spareTradehd.setTradeType("07");
            spareTradehd.setCreateBy(createBy);
            spareTradehd.setCreateTime(new Date());
            spareTradehdService.insertSpareTradehd(spareTradehd);
            Long hd_id = spareTradehd.getId();

            for (CommercialLnInfo commercialLnInfo : commercialLnInfos) {

//            从内存中获取批次
                String batch = SpareUtils.getByWDM(redisCache, spareWarehouse.getWarehouseCode(), commercialLnInfo.getMatnr());
//            处理批次
                SpareBatch spareBatch = spareBatchService.selectSpareBatchByBatch(batch);
//            如果批次不存在则创建批次
                if (spareBatch == null) {
                    SpareBatch sb = new SpareBatch();
                    sb.setBatch(batch);
                    sb.setMatnr(commercialLnInfo.getMatnr());
                    sb.setMatxt(commercialLnInfo.getTxz01());
                    sb.setUnit(commercialLnInfo.getMeins());
                    sb.setStockinDate(new Date());
                    spareBatchService.insertSpareBatch(sb);
                }

                if(commercialLnInfo.getActualRecevieAmount()!=null && !("").equals(commercialLnInfo.getActualRecevieAmount())){
                    SpareBatchDetail spareBatchDetail = new SpareBatchDetail();
                    spareBatchDetail.setBatch(batch);
                    spareBatchDetail.setDetailType(commercialLnInfo.getType());
                    spareBatchDetail.setIsLimit(commercialLnInfo.getType().equals("预留占用")?"1":"0");
                    spareBatchDetail.setAmount(commercialLnInfo.getActualRecevieAmount());
                    spareBatchDetail.setDept("公共部门");
                    spareBatchDetail.setBeginingDept("公共部门");
                    spareBatchDetail.setCreateBy(createBy);
                    spareBatchDetail.setCreateTime(new Date());
                    spareBatchDetailService.insertSpareBatchDetail(spareBatchDetail);
                    Long batchDeatilId = spareBatchDetail.getId();
//                  存明细历史表
                    SpareBatchDetailHistory spareBatchDetailHistory = new SpareBatchDetailHistory();
                    spareBatchDetailHistory.setBatch(batch);
                    spareBatchDetailHistory.setAmount(commercialLnInfo.getActualRecevieAmount());
                    spareBatchDetailHistory.setDetailType(commercialLnInfo.getType());
                    spareBatchDetailHistory.setDetailChangeDate(new Date());
                    spareBatchDetailHistory.setDetailChangeDirection("I");
                    spareBatchDetailHistory.setDetailChangeReason("商贸采购入库");
                    spareBatchDetailHistory.setDetailChangeDept(commercialLnInfo.getMeins());
                    spareBatchDetailHistory.setDocumentNum(commercialHdInfo.getEbeln());
                    spareBatchDetailHistory.setDocumentLineNum(commercialLnInfo.getEbelp());
                    spareBatchDetailHistory.setBatchDetailId(String.valueOf(batchDeatilId));
                    spareBatchDetailHistory.setCreateBy(createBy);
                    spareBatchDetailHistory.setCreateTime(new Date());
                    spareBatchDetailHistoryService.insertSpareBatchDetailHistory(spareBatchDetailHistory);

//            上架,默认上到Z999999货架
                    SpareShelvesRecord shelvesRecord = new SpareShelvesRecord();
                    shelvesRecord.setBatch(batch);
                    shelvesRecord.setLocation(spareWarehouse.getWarehouseCode() + "Z999999");
                    shelvesRecord.setAmount(commercialLnInfo.getActualRecevieAmount());
                    shelvesRecord.setShelvesDate(new Date());
                    shelvesRecord.setShelvesPer(createBy);
                    shelvesRecord.setDirection("U");
                    shelvesRecord.setDocumentNum(commercialHdInfo.getEbeln());
                    shelvesRecord.setDocumentLineNum(commercialLnInfo.getEbelp());
                    shelvesRecord.setCreateBy(createBy);
                    shelvesRecord.setCreateTime(new Date());
                    spareShelvesRecordService.insertSpareShelvesRecord(shelvesRecord);
//            处理库存
                    SpareInventory spareInventory = new SpareInventory();
                    spareInventory.setWareshouseCode(spareWarehouse.getWarehouseCode());
                    spareInventory.setLocationCode(spareWarehouse.getWarehouseCode() + "Z999999");
                    spareInventory.setMatnr(commercialLnInfo.getMatnr());
                    spareInventory.setMatxt(commercialLnInfo.getTxz01());
                    spareInventory.setBatch(batch);
                    spareInventory.setUnit(commercialLnInfo.getMeins());
                    spareInventory.setAmount(commercialLnInfo.getActualRecevieAmount());
                    spareInventory.setCreateBy(createBy);
                    spareInventory.setCreateTime(new Date());
                    spareInventoryService.insertSpareInventory(spareInventory);

//            处理交易行表
                    SpareTradeln spareTradeln = new SpareTradeln();
                    spareTradeln.setTradehdId(String.valueOf(hd_id));
                    spareTradeln.setMatnr(commercialLnInfo.getMatnr());
                    spareTradeln.setMatxt(commercialLnInfo.getTxz01());
                    spareTradeln.setAmount(commercialLnInfo.getActualRecevieAmount());
                    spareTradeln.setWarehouseCode(spareWarehouse.getWarehouseCode());
                    spareTradeln.setBatch(batch);
                    spareTradeln.setDocumentLineNum(commercialLnInfo.getEbelp());
                    spareTradeln.setCreateBy(createBy);
                    spareTradeln.setCreateTime(new Date());
                    spareTradeln.setRemark(commercialLnInfo.getRemark());
                    spareTradelnService.insertSpareTradeln(spareTradeln);
                }

            }
            return AjaxResult.success();
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            e.printStackTrace();
            return AjaxResult.error(e.getMessage());
        }
    }

退库入库

前台页面:ReturnWarehousing.vue 方法:listMatdoc

前台js文件:matdoc.js

查询方法对应的后台类:SpareMatdocController 查询参数:mblnr

查询方法对应的SQL语句:

SELECT
            MBLNR,MJAHR,VGART,BLART,BLDAT,BUDAT,CPUDT,CPUTM,
            AEDAT,USNAM,BKTXT,ZEILE,BWART,a.MATNR,b.MAKTX,
            WERKS,LGORT,SHKZG,WAERS,DMBTR,MENGE,a.MEINS,ERFMG,
            ERFME,SGTXT,KOKRS,cast(RSNUM+0 as char) rsnum,
            PRCTR,PS_PSP_PNR,RSPOS,c.amount return_amount
        FROM spare_matdoc a
                left join spare_mara b on b.matnr=a.matnr
                left join (select document_num,document_line_num,sum(amount) amount from spare_batch_detail_history where detail_change_direction='I' group by document_num,document_line_num ) c 
								on c.document_num=a.MBLNR and c.document_line_num=a.ZEILE
where MBLNR = ''

执行查询之后发现:
在这里插入图片描述
spare_matdoc 表不存在。

看来这个流程并没有启用。

再去看看,入库的方法有没有。

咦,竟然有。

@PostMapping("/ret")
    @Transactional
    public AjaxResult ret(@RequestBody ReturnWarehousing returnWarehousing) {
        //        入库信息
        ReturnHdInfo returnHdInfo = returnWarehousing.getHdInfo();
        List<ReturnLnInfo> returnLnInfos = returnWarehousing.getLnInfo();
        // 获取仓库信息
        SpareWarehouse spareWarehouse = spareWarehouseService.selectSpareWarehouseById(Long.valueOf(returnHdInfo.getWarehouseId()));

        // 获取当前用户
        String createBy = getUsername();
        try {
//            处理交易头表
            SpareTradehd spareTradehd = new SpareTradehd();
            spareTradehd.setBwart("101");
            spareTradehd.setDocumentNum(returnHdInfo.getMblnr());
            spareTradehd.setDocumentDate(returnHdInfo.getDocumentDate());
            spareTradehd.setPostingDate(returnHdInfo.getPostingDate());
            spareTradehd.setTradeType("09");
            spareTradehd.setCreateBy(createBy);
            spareTradehd.setCreateTime(new Date());
            spareTradehdService.insertSpareTradehd(spareTradehd);
            Long hd_id = spareTradehd.getId();


            for (ReturnLnInfo returnLnInfo : returnLnInfos) {

//            从内存中获取批次
                String batch = SpareUtils.getByWDM(redisCache, spareWarehouse.getWarehouseCode(), returnLnInfo.getMatnr());

//            处理批次
                SpareBatch spareBatch = spareBatchService.selectSpareBatchByBatch(batch);
//            如果批次不存在则创建批次
                if (spareBatch == null) {
                    SpareBatch sb = new SpareBatch();
                    sb.setBatch(batch);
                    sb.setMatnr(returnLnInfo.getMatnr());
                    sb.setMatxt(returnLnInfo.getMaktx());
                    sb.setUnit(returnLnInfo.getMeins());
                    sb.setStockinDate(new Date());
                    spareBatchService.insertSpareBatch(sb);
                }

                // 根据预留查部门
                String dept=null;
                List<SpareResb> spareResbs = spareResbService.selectSpareResbByRsnum(Long.valueOf(returnLnInfo.getRsnum()));
                if (spareResbs.size()>0){
                    dept = spareResbs.get(0).getKtext();
                }

                if (returnLnInfo.getActualRecevieAmount()!=null && !("").equals(returnLnInfo.getActualRecevieAmount())){
                    SpareBatchDetail spareBatchDetail = new SpareBatchDetail();
                    spareBatchDetail.setBatch(batch);
                    spareBatchDetail.setDetailType(returnLnInfo.getType());
                    spareBatchDetail.setIsLimit("0");
                    spareBatchDetail.setAmount(returnLnInfo.getActualRecevieAmount());



                    spareBatchDetail.setDept("公共部门");
                    spareBatchDetail.setBeginingDept(dept);
                    spareBatchDetail.setCreateBy(createBy);
                    spareBatchDetail.setCreateTime(new Date());
                    spareBatchDetailService.insertSpareBatchDetail(spareBatchDetail);
                    Long batchDeatilId = spareBatchDetail.getId();
//                  存明细历史表
                    SpareBatchDetailHistory spareBatchDetailHistory = new SpareBatchDetailHistory();
                    spareBatchDetailHistory.setBatch(batch);
                    spareBatchDetailHistory.setAmount(returnLnInfo.getActualRecevieAmount());
                    spareBatchDetailHistory.setDetailType(returnLnInfo.getType());
                    spareBatchDetailHistory.setDetailChangeDate(new Date());
                    spareBatchDetailHistory.setDetailChangeDirection("I");
                    spareBatchDetailHistory.setDetailChangeReason("退库入库");
                    spareBatchDetailHistory.setDetailChangeDept(returnLnInfo.getMeins());
                    spareBatchDetailHistory.setDocumentNum(returnHdInfo.getMblnr());
                    spareBatchDetailHistory.setDocumentLineNum(returnLnInfo.getZeile());
                    spareBatchDetailHistory.setBatchDetailId(String.valueOf(batchDeatilId));
                    spareBatchDetailHistory.setCreateBy(createBy);
                    spareBatchDetailHistory.setCreateTime(new Date());
                    spareBatchDetailHistoryService.insertSpareBatchDetailHistory(spareBatchDetailHistory);

//            上架,默认上到Z999999货架
                    SpareShelvesRecord shelvesRecord = new SpareShelvesRecord();
                    shelvesRecord.setBatch(batch);
                    shelvesRecord.setLocation(spareWarehouse.getWarehouseCode() + "Z999999");
                    shelvesRecord.setAmount(returnLnInfo.getActualRecevieAmount());
                    shelvesRecord.setShelvesDate(new Date());
                    shelvesRecord.setShelvesPer(createBy);
                    shelvesRecord.setDirection("U");
                    shelvesRecord.setDocumentNum(returnHdInfo.getMblnr());
                    shelvesRecord.setCreateBy(createBy);
                    shelvesRecord.setCreateTime(new Date());
                    spareShelvesRecordService.insertSpareShelvesRecord(shelvesRecord);
//            处理库存
                    SpareInventory spareInventory = new SpareInventory();
                    spareInventory.setWareshouseCode(spareWarehouse.getWarehouseCode());
                    spareInventory.setLocationCode(spareWarehouse.getWarehouseCode() + "Z999999");
                    spareInventory.setMatnr(returnLnInfo.getMatnr());
                    spareInventory.setMatxt(returnLnInfo.getMaktx());
                    spareInventory.setBatch(batch);
                    spareInventory.setUnit(returnLnInfo.getMeins());
                    spareInventory.setAmount(returnLnInfo.getActualRecevieAmount());
                    spareInventory.setCreateBy(createBy);
                    spareInventory.setCreateTime(new Date());
                    spareInventoryService.insertSpareInventory(spareInventory);

//            处理交易行表
                    SpareTradeln spareTradeln = new SpareTradeln();
                    spareTradeln.setTradehdId(String.valueOf(hd_id));
                    spareTradeln.setMatnr(returnLnInfo.getMatnr());
                    spareTradeln.setMatxt(returnLnInfo.getMaktx());
                    spareTradeln.setDocumentLineNum(returnLnInfo.getZeile());
                    spareTradeln.setAmount(returnLnInfo.getActualRecevieAmount());
                    spareTradeln.setWarehouseCode(spareWarehouse.getWarehouseCode());
                    spareTradeln.setBatch(batch);
                    spareTradeln.setCreateBy(createBy);
                    spareTradeln.setCreateTime(new Date());
                    spareTradeln.setRemark(returnLnInfo.getRemark());
                    spareTradelnService.insertSpareTradeln(spareTradeln);
                }

            }
            return AjaxResult.success();
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            e.printStackTrace();
            return AjaxResult.error(e.getMessage());
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值