SD BAPI--SD_SALESDOCUMENT_CREATE 销售订单退/换货

SD BAPI–SD_SALESDOCUMENT_CREATE 销售订单退/换货

FUNCTION zsdfu004.
*“----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*” VALUE(I_CGSQD) TYPE CHAR20 OPTIONAL
*" VALUE(I_ZNAME) TYPE CHAR12 OPTIONAL
*" VALUE(I_ZTYPE) TYPE CHAR01 OPTIONAL
*" VALUE(I_ZYY) TYPE CHAR200 OPTIONAL
*" EXPORTING
*" VALUE(E_TYPE) TYPE BAPI_MTYPE
*" VALUE(E_MSG) TYPE BAPI_MSG
*" TABLES
*" ITEM STRUCTURE ZSD004 OPTIONAL
*"----------------------------------------------------------------------

DATA: it_header_in LIKE bapisdhd1.
DATA: it_header_inx LIKE bapisdhd1x.
DATA: it_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: it_items_in LIKE bapisditm OCCURS 0 WITH HEADER LINE. "通讯字段: 销售和分销凭证项目
DATA: it_items_in2 LIKE bapisditm OCCURS 0 WITH HEADER LINE. "通讯字段: 销售和分销凭证项目
DATA: it_items_inx LIKE bapisditmx OCCURS 0 WITH HEADER LINE. "通讯字段: 销售和分销凭证项目
DATA: it_schedules_in LIKE bapischdl OCCURS 0 WITH HEADER LINE. "维护 SD 凭证计划行的通讯字段
DATA: it_schedules_inx LIKE bapischdlx OCCURS 0 WITH HEADER LINE. "维护 SD 凭证计划行的通讯字段
DATA: it_partners LIKE bapiparnr OCCURS 0 WITH HEADER LINE. "通讯字段: SD单据合作伙伴
DATA: order_conditions_in LIKE bapicond OCCURS 0 WITH HEADER LINE.
DATA: order_conditions_inx LIKE bapicondx OCCURS 0 WITH HEADER LINE.
DATA: order_conditions_in2 LIKE bapicond OCCURS 0 WITH HEADER LINE.
DATA: order_conditions_inx2 LIKE bapicondx OCCURS 0 WITH HEADER LINE.
DATA: order_text LIKE bapisdtext OCCURS 0 WITH HEADER LINE.
DATA: lt_bapiparex LIKE bapiparex OCCURS 0 WITH HEADER LINE.
DATA: ls_zbape_vbap TYPE bape_vbap.
DATA: ls_zbape_vbapx TYPE bape_vbapx.
DATA: salesdocument1 LIKE bapivbeln-vbeln.
DATA: salesdocument2 LIKE bapivbeln-vbeln.

DATA:BEGIN OF is_vbak,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
auart TYPE vbak-auart,
kunnr TYPE vbak-kunnr,
waerk TYPE vbak-waerk,
vkorg TYPE vbak-vkorg,
vtweg TYPE vbak-vtweg,
spart TYPE vbak-spart,
END OF is_vbak.
DATA:it_vbak LIKE TABLE OF is_vbak.
DATA: BEGIN OF is_vbkd,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
bstkd TYPE vbkd-bstkd, "客户PO号
END OF is_vbkd.
DATA:it_vbkd LIKE TABLE OF is_vbkd.
DATA:it_item LIKE TABLE OF zsd004 WITH HEADER LINE.

DATA:lv_error.
DATA:lv_mess(200).
DATA:lv_type1.
DATA:lv_type2.
DATA:lv_mess1.
DATA:lv_mess2.

DATA:cs_vbak TYPE vbak.
DATA:cs_vbap TYPE vbap.
DATA:cs_vbkd TYPE vbkd.
DATA:lv_bstkd TYPE vbkd-bstkd.
DATA:lv_posnr TYPE vbap-posnr.
DATA lv_knumv LIKE vbak-knumv.
DATA:cs_konv TYPE v_konv_cds.

***1)数据检查
IF i_cgsqd = ‘’.
lv_error = ‘X’.
lv_mess = ‘缺少OA单号’.
ENDIF.
IF i_zname = ‘’.
lv_error = ‘X’.
lv_mess = lv_mess && ‘/’ && ‘缺少申请者’.
ENDIF.
IF i_ztype = ‘’.
lv_error = ‘X’.
lv_mess = lv_mess && ‘/’ && ‘缺少业务类型’.
ENDIF.
IF i_ztype = ‘T’ OR i_ztype = ‘H’.
ELSE.
lv_error = ‘X’.
lv_mess = lv_mess && ‘/’ && ‘业务类型不正确’.
ENDIF.
IF item[] IS INITIAL.
lv_error = ‘X’.
lv_mess = lv_mess && ‘/’ && ‘销售订单行为空’.
ENDIF.

IF lv_error = ‘’.
LOOP AT item.
CLEAR:it_item,is_vbak,is_vbkd.
it_item-vbeln = |{ item-vbeln ALPHA = IN }|.
it_item-posnr = |{ item-posnr ALPHA = IN }|.
it_item-matnr = item-matnr.
it_item-menge = item-menge.
APPEND it_item.

  SELECT SINGLE * INTO CORRESPONDING FIELDS OF cs_vbap FROM vbap WHERE vbeln = it_item-vbeln AND posnr = it_item-posnr.IF sy-subrc <> 0.lv_error = 'X'.lv_mess = lv_mess && '/' && 'SO行:' && item-vbeln && '&' && item-posnr && '不存在'.EXIT.ELSE.IF cs_vbap-matnr <> item-matnr.lv_error = 'X'.lv_mess = lv_mess && '/' && 'SO行:' && item-vbeln && '&' && item-posnr && '物料不一致'.EXIT.ELSE.SELECT SINGLE * INTO cs_vbak FROM vbak WHERE vbeln = it_item-vbeln.MOVE-CORRESPONDING cs_vbak TO is_vbak.APPEND is_vbak TO it_vbak.
  •      SELECT SINGLE * INTO cs_vbkd FROM vbkd WHERE vbeln = it_item-vbeln AND posnr = '000000'.
    
  •      is_vbkd-vbeln = it_item-vbeln.
    
  •      is_vbkd-posnr = it_item-posnr.
    
  •      is_vbkd-bstkd = cs_vbkd-bstkd.is_vbkd-vbeln = item-vbeln.APPEND is_vbkd TO it_vbkd.ENDIF.
    ENDIF.
    

    ENDLOOP.

    SORT it_vbak BY auart kunnr waerk vkorg vtweg spart.
    DELETE ADJACENT DUPLICATES FROM it_vbak COMPARING auart kunnr waerk vkorg vtweg spart.

    IF lines( it_vbak ) > 1.
    lv_error = ‘X’.
    lv_mess = lv_mess && ‘订单抬头不一致(订单类型 or 客户 or 销售范围 or 币种)’.
    ELSEIF lines( it_vbak ) = 1.
    IF cs_vbak-auart <> ‘ZSP’.
    lv_error = ‘X’.
    lv_mess = lv_mess && ‘不是备件销售订单’.
    ENDIF.
    ENDIF.

    SORT it_vbkd BY vbeln.
    DELETE ADJACENT DUPLICATES FROM it_vbkd COMPARING vbeln.
    LOOP AT it_vbkd INTO is_vbkd.
    is_vbkd-vbeln = |{ is_vbkd-vbeln ALPHA = OUT }|.
    IF sy-tabix = 1.
    lv_bstkd = is_vbkd-vbeln.
    ELSE.
    lv_bstkd = lv_bstkd && ‘’ && ‘/’ && is_vbkd-vbeln.
    ENDIF.
    ENDLOOP.
    lv_bstkd = lv_bstkd && ‘//’ && sy-datum+4(4).
    ENDIF.

***2)创建备件退货销售订单
IF lv_error = ‘’.
CLEAR:it_header_in,it_header_inx,salesdocument1,lv_posnr.
REFRESH:it_return,it_items_in,it_items_in2,it_items_inx,it_schedules_in,it_schedules_inx,it_partners,
order_conditions_in,order_conditions_inx,order_conditions_in2,order_conditions_inx2,lt_bapiparex,order_text.

"2.1)抬头赋值
it_header_in-doc_type      = 'ZRE2'.            "订单类型 备件退货订单类型
it_header_in-sales_org     = cs_vbak-vkorg.     "销售组织
it_header_in-distr_chan    = cs_vbak-vtweg.     "分销渠道
it_header_in-division      = cs_vbak-spart.     "产品组
it_header_in-purch_no_c    = 'T:' && lv_bstkd.  "采购订单号it_header_in-ref_1         = lv_bstkd.          "您的参考
it_header_in-doc_date      = sy-datum.          "凭证日期
it_header_in-currency      = cs_vbak-waerk.     "币种
  • it_header_inx-doc_type = ‘X’. "订单类型
  • it_header_inx-sales_org = ‘X’. "销售组织
  • it_header_inx-distr_chan = ‘X’. "销售渠道
  • it_header_inx-division = ‘X’. "产品组
  • it_header_inx-purch_no_c = ‘X’. "采购订单号
  • it_header_inx-ref_1 = ‘X’. "您的参考
  • it_header_inx-doc_date = ‘X’. "凭证日期
  • it_header_inx-currency = ‘X’. "币种
"2.2)合作伙伴
it_partners-partn_role = 'AG'.
it_partners-partn_numb = cs_vbak-kunnr.
it_partners-itm_number = space.
APPEND it_partners .
it_partners-partn_role = 'RG'.
it_partners-partn_numb = cs_vbak-kunnr.
it_partners-itm_number = space.
APPEND it_partners .
it_partners-partn_role = 'RE'.
it_partners-partn_numb = cs_vbak-kunnr.
it_partners-itm_number = space.
APPEND it_partners .
it_partners-partn_role = 'WE'.
it_partners-partn_numb = cs_vbak-kunnr.
it_partners-itm_number = space.
APPEND it_partners ."2.3)行项目
"2.3.1)行项目
LOOP AT it_item.CLEAR:it_items_in,it_items_inx.ADD 10 TO lv_posnr.it_item-posnr1 = lv_posnr.MODIFY it_item TRANSPORTING posnr1.SELECT SINGLE * INTO CORRESPONDING FIELDS OF cs_vbap FROM vbap WHERE vbeln = it_item-vbeln AND posnr = it_item-posnr.it_items_in-itm_number     = lv_posnr.            "销售订单行项目号it_items_in-material_long  = it_item-matnr.       "物料
  •  it_items_in-sales_unit     = cs_vbap-vrkme.       "单位
    it_items_in-plant          = cs_vbap-werks.       "工厂
    it_items_in-target_qty     = it_item-menge.       "数量
    it_items_in-target_qu      = cs_vbap-vrkme.       "单位
    it_items_in-purch_no_c     = 'T:' && |{ it_item-vbeln ALPHA = OUT }| && '/' && |{ it_item-posnr ALPHA = OUT }|. "行项目参考
    APPEND  it_items_in.IF i_ztype = 'H'.it_items_in-purch_no_c = 'H:' && |{ it_item-vbeln ALPHA = OUT }| && '/' && |{ it_item-posnr ALPHA = OUT }|. "行项目参考DO 10 TIMES.SELECT COUNT(*) FROM vbkd WHERE bstkd = it_items_in-purch_no_c.IF sy-subrc = 0.it_items_in-purch_no_c   = 'H' && it_items_in-purch_no_c.ELSE.EXIT.ENDIF.ENDDO.APPEND it_items_in TO it_items_in2.
    ENDIF.
    
  •  it_items_inx-updateflag  = 'M'.
    
  •  it_items_inx-itm_number    = lv_posnr.              "销售订单行项目号
    
  •  it_items_inx-material_long = 'X'.                   "物料
    

** it_items_inx-sales_unit = ‘X’. "单位

  •  it_items_inx-plant         = 'X'.                   "工厂
    
  •  it_items_inx-target_qty    = 'X'.                   "数量
    
  •  it_items_inx-target_qu     = 'X'.                   "单位
    
  •  it_items_inx-purch_no_c    = 'X'.                   "行项目参考
    
  •  APPEND it_items_inx."2.3.2)增强字段
    CLEAR: ls_zbape_vbap, ls_zbape_vbapx.
    ls_zbape_vbap = VALUE #(posnr    = lv_posnrzprono   = cs_vbap-zprono).
    ls_zbape_vbapx = VALUE #(posnr    = lv_posnrzprono   = 'X').CLEAR:lt_bapiparex.
    lt_bapiparex-structure = 'BAPE_VBAP'.
    lt_bapiparex+30(960)   = ls_zbape_vbap.
    APPEND lt_bapiparex TO lt_bapiparex.CLEAR:lt_bapiparex.
    lt_bapiparex-structure = 'BAPE_VBAPX'.
    lt_bapiparex+30(960)   = ls_zbape_vbapx.
    APPEND lt_bapiparex."2.3.3)计划行
    CLEAR it_schedules_in.
    it_schedules_in-itm_number   = lv_posnr.
    it_schedules_in-sched_line   = 1.
    it_schedules_in-req_qty      = it_item-menge.       "数量
    it_schedules_in-req_date     = sy-datum.
    APPEND  it_schedules_in.
    
  •  it_schedules_inx-updateflag = 'I'.
    
  •  it_schedules_inx-itm_number = lv_posnr.
    
  •  it_schedules_inx-sched_line = 1.
    
  •  it_schedules_inx-req_qty    = 'X'.
    
  •  it_schedules_inx-req_date   = 'X'.
    
  •  APPEND  it_schedules_inx."2.3.4)价格条件
    CLEAR:lv_knumv,cs_konv,order_conditions_in.
    SELECT SINGLE knumv INTO lv_knumv FROM vbak WHERE vbeln = it_item-vbeln.
    SELECT SINGLE * INTO CORRESPONDING FIELDS OF cs_konv FROM v_konv_cds WHERE knumv = lv_knumvAND kposn = it_item-posnrAND kinak = ''AND kschl LIKE 'PR0%'.order_conditions_in-itm_number = lv_posnr.       "Condition item number
    order_conditions_in-cond_st_no = cs_konv-stunr.  "步骤
    order_conditions_in-cond_count = cs_konv-zaehk.  "计数
    order_conditions_in-cond_type  = cs_konv-kschl.  "条件类型
    order_conditions_in-cond_value = cs_konv-kbetr.  "单价
    order_conditions_in-currency   = cs_konv-waers.  "币种
    order_conditions_in-cond_p_unt = cs_konv-kpein.  "价格单位
    
  •  order_conditions_in-cond_unit  = cs_konv-kmein.  "数量单位
    APPEND order_conditions_in.order_conditions_inx-updateflag  = 'U'.
    order_conditions_inx-itm_number  = lv_posnr.     "Condition item number
    order_conditions_inx-cond_st_no  = cs_konv-stunr.  "步骤
    order_conditions_inX-cond_count  = cs_konv-zaehk.  "计数
    order_conditions_inx-cond_type   = cs_konv-kschl."条件类型
    order_conditions_inx-cond_value  = 'X'.          "单价
    order_conditions_inx-currency    = 'X'.          "币种
    order_conditions_inx-cond_p_unt  = 'X'.          "价格单位
    APPEND order_conditions_inx.IF i_ztype = 'H'.APPEND LINES OF order_conditions_in TO order_conditions_in2.APPEND LINES OF order_conditions_inx TO order_conditions_inx2.
    ENDIF."2.3.5)项目文本
    CLEAR:order_text.
    
  •  order_text-doc_number = ''.
    order_text-itm_number = lv_posnr.
    order_text-text_id    = '0001'.
    order_text-langu      = sy-langu.
    order_text-text_line  = '退货,原订单:' && it_item-vbeln && '//' && it_item-posnr.
    APPEND order_text.
    

    ENDLOOP.

    "2.4 掉BAPI
    CALL FUNCTION ‘SD_SALESDOCUMENT_CREATE’
    EXPORTING
    sales_header_in = it_header_in

  •   sales_header_inx     = it_header_inx
    IMPORTINGsalesdocument_ex     = salesdocument1
    TABLESreturn               = it_returnsales_items_in       = it_items_in
    
  •   sales_items_inx      = it_items_inxsales_partners       = it_partnerssales_schedules_in   = it_schedules_in
    
  •   sales_schedules_inx  = it_schedules_inxsales_conditions_in  = order_conditions_insales_conditions_inx = order_conditions_inxsales_text           = order_textextensionin          = lt_bapiparex.
    

    DELETE it_return WHERE id = ‘V4’ AND number = ‘219’.

    IF salesdocument1 IS INITIAL.
    CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.

    lv_error = 'X'.
    lv_type1 = 'E'.LOOP AT it_return WHERE type CA 'AE'.IF sy-tabix = 1.lv_mess = '创建退货订单失败:' && it_return-message.ELSE.lv_mess = lv_mess && ',' && it_return-message.ENDIF.
    ENDLOOP.
    lv_mess1 = lv_mess.LOOP AT it_item.CLEAR it_item-posnr1.MODIFY it_item TRANSPORTING posnr1.
    ENDLOOP.
    

    ELSE.
    CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
    EXPORTING
    wait = ‘X’.

    lv_type1 = 'S'.DO 1000 TIMES.SELECT COUNT(*) FROM lips WHERE vgbel = salesdocument1.IF sy-subrc = 0.EXIT.ENDIF.
    ENDDO.LOOP AT it_item.it_item-vbeln1 = salesdocument1.SELECT SINGLE * INTO @DATA(lw_lips) FROM lips WHERE vgbel = @it_item-vbeln1 AND vgpos = @it_item-posnr1.IF sy-subrc = 0.it_item-vbeln3 = lw_lips-vbeln.it_item-posnr3 = lw_lips-posnr.ENDIF.MODIFY it_item TRANSPORTING vbeln1 vbeln3 posnr3.
    ENDLOOP.
    

    ENDIF.
    ENDIF.

***3)创建备件换货销售订单
"大部分数据用创建退货销售订单的数据
IF i_ztype = ‘H’.
IF lv_error = ‘’.
CLEAR:salesdocument2.
REFRESH:it_return.

  "3.1)抬头赋值it_header_in-doc_type      = 'ZSP'.            "订单类型 备件退货订单类型it_header_in-purch_no_c    = 'H:' && lv_bstkd.  "采购订单号DO 10 TIMES.SELECT COUNT(*) FROM vbkd WHERE bstkd = it_header_in-purch_no_c.IF sy-subrc = 0.it_header_in-purch_no_c    = 'H' && it_header_in-purch_no_c.ELSE.EXIT.ENDIF.ENDDO."3.2项目文本LOOP AT order_text.REPLACE '退货' WITH '换货' INTO order_text-text_line.MODIFY order_text TRANSPORTING text_line.ENDLOOP."3.3 掉BAPICALL FUNCTION 'SD_SALESDOCUMENT_CREATE'EXPORTINGsales_header_in     = it_header_in
  •     sales_header_inx    = it_header_inxIMPORTINGsalesdocument_ex    = salesdocument2TABLESreturn              = it_returnsales_items_in      = it_items_in2
    
  •     sales_items_inx     = it_items_inxsales_partners      = it_partnerssales_schedules_in  = it_schedules_in
    
  •     sales_schedules_inx = it_schedules_inxsales_conditions_in = order_conditions_in2sales_conditions_inx = order_conditions_inx2sales_text          = order_textextensionin         = lt_bapiparex.DELETE it_return WHERE id = 'V4' AND  number = '219'.IF salesdocument2 IS INITIAL.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.lv_error = 'X'.lv_type2 = 'E'.LOOP AT it_return WHERE type CA 'AE'.IF sy-tabix = 1.lv_mess = '创建换货订单失败:' && it_return-message.ELSE.lv_mess = lv_mess && ',' && it_return-message.ENDIF.ENDLOOP.lv_mess2 = lv_mess.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.lv_type2 = 'S'.LOOP AT it_item.it_item-vbeln2 = salesdocument2.it_item-posnr2 = it_item-posnr1.MODIFY it_item TRANSPORTING vbeln2 posnr2.ENDLOOP.
    ENDIF.
    

    ENDIF.
    ENDIF.

    IF lv_error = ‘’.
    e_type = ‘S’.
    e_msg = ‘处理成功’.
    ELSE.
    IF salesdocument1 <> ‘’.
    e_type = ‘I’.
    e_msg = ‘退货订单创建成功:’ && salesdocument1 && ‘//换货订单创建失败,’ && lv_mess.
    ELSE.
    e_type = ‘E’.
    e_msg = ‘处理失败,’ && lv_mess.
    ENDIF.
    ENDIF.

***4)更新接口返回表item
LOOP AT item.
item-vbeln = |{ item-vbeln ALPHA = IN }|.
item-posnr = |{ item-posnr ALPHA = IN }|.
READ TABLE it_item WITH KEY vbeln = item-vbeln
posnr = item-posnr.
IF sy-subrc = 0.
item-vbeln1 = it_item-vbeln1.
item-posnr1 = it_item-posnr1.
item-vbeln3 = it_item-vbeln3.
item-posnr3 = it_item-posnr3.
item-vbeln2 = it_item-vbeln2.
item-posnr2 = it_item-posnr2.
ENDIF.
MODIFY item TRANSPORTING vbeln1 posnr1 vbeln3 posnr3 vbeln2 posnr2.
ENDLOOP.

***5)更新sap接口记录表
DATA:lt_07 TYPE TABLE OF ztsd007 WITH HEADER LINE.
DATA:lv_xh TYPE ztsd007-xh.
DATA:lv_xhitem TYPE ztsd007-xhitem.
DATA:lv_date TYPE sy-datum.
DATA:lv_time TYPE sy-uzeit.
CLEAR:lv_xh,lv_xhitem,lt_07[].

lv_date = sy-datum.
lv_time = sy-uzeit.

SELECT MAX( xh ) INTO lv_xh FROM ztsd007.
ADD 1 TO lv_xh.

IF item[] IS INITIAL.
CLEAR lt_07.
lt_07-xh = lv_xh.
lt_07-xhitem = 1.
lt_07-cgsqd = i_cgsqd.
lt_07-zname = i_zname.
lt_07-ztype = i_ztype.
lt_07-zdate = lv_date.
lt_07-ztime = lv_time.
lt_07-ztype3 = e_type.
lt_07-mess3 = e_msg.
lt_07-zyy = i_zyy.
APPEND lt_07.
ELSE.
LOOP AT it_item.
CLEAR lt_07.
ADD 1 TO lv_xhitem.

  lt_07-xh = lv_xh.lt_07-xhitem = lv_xhitem.lt_07-cgsqd = i_cgsqd.lt_07-zname = i_zname.lt_07-ztype = i_ztype.lt_07-zdate = lv_date.lt_07-ztime = lv_time.lt_07-ztype3 = e_type.lt_07-mess3 = e_msg.lt_07-zyy   = i_zyy.lt_07-vbeln = it_item-vbeln.lt_07-posnr = it_item-posnr.lt_07-matnr = it_item-matnr.lt_07-menge = it_item-menge.lt_07-ztype1 = lv_type1.lt_07-mess1 = lv_mess1.lt_07-vbeln1 = it_item-vbeln1.lt_07-posnr1 = it_item-posnr1.lt_07-vbeln3 = it_item-vbeln3.lt_07-posnr3 = it_item-posnr3.lt_07-ztype2 = lv_type2.lt_07-mess2 = lv_mess2.lt_07-vbeln2 = it_item-vbeln2.lt_07-posnr2 = it_item-posnr2.APPEND lt_07.
ENDLOOP.

ENDIF.

IF lt_07[] IS NOT INITIAL.
MODIFY ztsd007 FROM TABLE lt_07.
COMMIT WORK.
ENDIF.

ENDFUNCTION.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/52489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

储能运行约束的Matlab建模方法

最近一段时间有很多人问我最优潮流计算中储能系统的建模方法。部分朋友的问题我回复了&#xff0c;有些没有回消息的&#xff0c;我就不再一一回复了&#xff0c;在这里我写一篇博客统一介绍一下。 1.储能系统介绍 首先&#xff0c;让【GPT】简单介绍一下储能系统&#xff1a;…

Maven解析

目录 Maven的概念 Pom 项目坐标 仓库 Maven环境搭建 安装jdk 配置maven 配置本地仓库地址 配置阿里云 maven 镜像仓库&#xff0c;下载速度更快 在idea中配置maven ​编辑 pom中名词解释 Maven命令 Maven的概念 Maven 是 Apache 软件基金会的一个开源项目,是一个…

PhantomJS+java 后端生成echart图表的图片

PhantomJSjava 后端生成echart图表的图片 前言源码效果实现echarts-convertPhantomJS实现echarts截图得到图片java延时读取base64数据 参考 前言 该项目仅用作个人学习使用 源码 地址 docker镜像&#xff1a; registry.cn-chengdu.aliyuncs.com/qinjie/java-phantomjs:1.0 …

航空电子设备中的TSN通讯架构—直升机

前言 以太网正在迅速取代传统网络&#xff0c;成为航空电子设备和任务系统的核心高速网络。本文提出了以太网时间敏感网络(TSN)在航空电子设备上应用的技术优势问题。在实际应用中&#xff0c;TSN已成为一个具有丰富的机制和协议的工具箱&#xff0c;可满足与时间和可靠性相关…

vue2 computed计算属性,watch侦听器

一、今日学习目标 1.指令补充 指令修饰符v-bind对样式增强的操作v-model应用于其他表单元素 2.computed计算属性 基础语法计算属性vs方法计算属性的完整写法成绩案例 3.watch侦听器 基础写法完整写法 二、指令修饰符 1.什么是指令修饰符&#xff1f; 所谓指令修饰符就是…

windows下cmd快速生成大文件命令

fsutil file createnew [文件名] [文件大小]

卷轴模式解析:如何实现用户留存、引流拓客

随着现代技术的不断发展和数字货币市场的日益成熟&#xff0c;越来越多的数字货币项目被推向市场。而消费者需求日益复杂&#xff0c;单一的玩法模式已经不能满足消费者追求更好购物体验的需求。电商平台需要尊重消费者的意愿&#xff0c;满足消费者的多样化需求&#xff0c;这…

天眼查接口 查询企业信息API 企查查接口

item_get-获得tyc详情 tyc.item_get 公共参数 请求地址: https://api-gw.cn/tyc/item_get 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff0…

BLFS学习系列 第26章. 显示管理器 —— 总述

显示管理器&#xff08;Display Manager&#xff09;是用于启动图形显示&#xff08;当前为X服务器&#xff09;并为窗口管理器或桌面环境提供登录功能的图形程序。 有许多显示管理器可用。一些较为知名的包括&#xff1a;GDM、KDM&#xff08;已弃用&#xff09;、LightDM、L…

vue项目权限管理

1.权限分类 权限管理主要分为后端权限和前端权限。后端权限是关键&#xff0c;主要控制对数据库的操作&#xff1b;前端权限为辅&#xff0c;主要表现在对界面显示、路由导航、按钮显示操作与否、无效请求前端拦截和响应拦截提升用户体验等。 2.前端权限主要思路 菜单的控制&…

SpringBoot中Mapper.xml的入参方式

在SpringBoot开发过程中&#xff0c;我们使用 ***Mapper.xml***Mapper.java 来封装对数据库表的 CURD 操作&#xff0c;正常每张表会有一组对应的文件。 一、Mapper常见用法 下面例举一个查询操作&#xff1a; 数据表t_sap_customer&#xff0c;表中有字段id、code、name、c…

2023河南萌新联赛第(六)场:河南理工大学 C - 旅游

2023河南萌新联赛第&#xff08;六&#xff09;场&#xff1a;河南理工大学 C - 旅游 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K Special Judge, 64bit IO Format: %lld 题目描述 小C喜欢旅游&#xf…

江西武功山旅游攻略(周末两日游)

一、 往返路线 1: 出发路线 周五晚上上海出发坐火车&#x1f684;到江西萍乡(11.5小时,卧铺550左右) 打车到江西武功山景区,120-150元左右,人均30元,1小时10分左右到达 或者 &#x1f697;到达萍乡北之后 出站后步行200米到长途汽车站&#xff0c;乘旅游巴士直达武功山游…

HCIP STP协议

STP协议 STP协议概念生成树为什么要用STP STP名词解释根网桥根端口指定端口非指定端口 STP的版本802.1DPVSTPVST 快速生成树 STP协议概念 IEEE 802.1d STP&#xff08;生成树协议&#xff0c;Spanning-Tree Protocol&#xff09;协议&#xff1a; ①使冗余端口置于“阻塞状态”…

设计模式(7)模板方法模式

一、定义&#xff1a; 定义一个操作中的算法骨架&#xff0c;而将算法的一些步骤延迟到子类中&#xff0c;使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。 //模板方法抽象类 public abstract class AbstractClass {//模板方法publ…

keepalived双机热备,keepalived+lvs(DR)

本节主要学习了keepalivedlvs的作用和配置方法主要配置调度器和web节点&#xff0c;还有keepalived的双击热备&#xff0c;主要内容有概述&#xff0c;安装&#xff0c;功能模块&#xff0c;配置双击热备&#xff0c;验证方法&#xff0c;双击热备的脑裂现象和VIP无法通信。 目…

17.HPA和rancher

文章目录 HPA部署 metrics-server部署HPA Rancher部署Rancherrancher添加集群仪表盘创建 namespace仪表盘创建 Deployments仪表盘创建 service 总结 HPA HPA&#xff08;Horizontal Pod Autoscaling&#xff09;Pod 水平自动伸缩&#xff0c;Kubernetes 有一个 HPA 的资源&…

SQL事务

事务的概念&#xff1a; 事务是在数据库上按照一定的逻辑顺序执行的任务序列&#xff0c;既可以由用户手动执行&#xff0c;也可以由某种数据库程序自动执行。事务就是一些SQL语句组&#xff08;每条单独的SQL语句也算一个事务&#xff09;&#xff0c;其中事务中的SQL…

04-Numpy基础-利用数组进行数据处理

NumPy数组使你可以将许多种数据处理任务表述为简洁的数组表达式&#xff08;否则需要编 写循环&#xff09;。用数组表达式代替循环的做法&#xff0c;通常被称为矢量化。一般来说&#xff0c;矢量化 数组运算要比等价的纯Python方式快上一两个数量级&#xff08;甚至更多&…

WPF实战项目十二(API篇):配置AutoMapper

1、新建类库WPFProjectShared&#xff0c;在类库下新建文件夹Dtos&#xff0c;新建BaseDto.cs&#xff0c;继承INotifyPropertyChanged&#xff0c;实现通知更新。 public class BaseDto : INotifyPropertyChanged{public int Id { get; set; }public event PropertyChangedEv…