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

赠品入库

前台页面: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());
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准:Go语言的标准非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值