工業管理軟件Api接口和調度功能開發案例-實訓指導書_第1頁
工業管理軟件Api接口和調度功能開發案例-實訓指導書_第2頁
工業管理軟件Api接口和調度功能開發案例-實訓指導書_第3頁
工業管理軟件Api接口和調度功能開發案例-實訓指導書_第4頁
工業管理軟件Api接口和調度功能開發案例-實訓指導書_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

工業管理軟件Api接口和調度功能開發案例實訓指導書

一、實訓目的

本課程的教學目的是讓學生掌握工業管理軟件Api接口和調度功能的開發流程和關鍵技術。

從系統的需求分析出發,了解到開發需要實現和滿足的實際業務功能點:根據功能點的業務需求。

使用VisualStudio2019及以上開發工具對其進行開發實現,然后在功能中進行測試,完成Api接口和調

度功能的開發實現及效果驗證。

通過綜合實訓幫助學生全面牢固地掌握教學內容、培養學生的實踐動手能力,提高學生綜合運用專

業知識和專業技能解決實際問題的能力,強化課堂教學與實踐教學相結合,鍛煉學生的職業能力。

二、實訓準備

1、掌握C#編程開發技能。

2、了解工業管理軟件的基礎開發。

3、事先要能夠根據實訓工程源代碼,配置環境,搭建項目工程。

4、安裝好實訓開發環境,下載實訓工程源代碼。

5、Api接口和調度功能的開發依賴于采購訂單,需要先完成采購訂單功能的開發實現。

三、實訓環境

Windows10或以上操作系統(不能是Windows11家庭版)、VisualStudio2019或以上開發工具安裝、

數據庫可以選擇SqIServer數捱庫(安裝VS時將VS自帶的SqlServer安裝上,就可以不用單獨安裝

SqIServer的數據庫)或者Oracle數據庫(安裝ODAC、安裝Oracle客戶端、安裝PLSQL)、安裝

EAP.Modelfirst>VS中導入代碼片段。

四、實訓步驟

任務描述

本實訓讓學生體驗Api接口和調度功能的開發過程。通過本指導書展開詳細的開發步驟。

>任務:Api接口和調度功能

實現邏輯包括:

1.Api接口:

■傳入參數:傳入參數:開始時間和結束時間(不可為空),頁數(可為空,為空查第

一頁),頁數據量(可為空,為空查所有);

■接口實現邏輯:傳入的開始時間和結束時間去跟采購日期進行匹配,開始時間〈=采

購日期〈=結束時間,根據頁數和頁數據量將滿足條件的訂單和對應訂單明細的數據

返回;

■接口返回值說明:

?訂單包含的字段內容:訂單號、采購三期、訂單總金額、訂單狀態、備注;

?訂單明細包含的字段內容:產品編碼、產品名稱、采購價、銷售價、采購數量、

總金額、備注;

■接口完成后需要編寫接口卡。

2.調度任務功能:

■調度任務執行邏輯:根據頁數和頁數據量查詢采購信息,查詢數據按采購時間的升

序進行排序,通過調度定時去更改采購訂單的狀態,狀態變更的條件:

?訂單對應所有訂單明細的入庫數量為0,采購訂單的狀態變更為新建:

?訂單對應所有訂單明細的0〈入庫數量(采購數量,采購訂單的狀態變更為部分

接收:

?訂單對應所有訂單明細的入庫數量=采購數量,采購訂單的狀態變更為全部接收;

■調度參數:頁數、頁數據量,調度任務未配置頁數和頁數量,提示頁數和頁數據量

必須配置;

■調度任務必須記錄日志信息。

Api開放接I」效果:

SMOMAPI開放平臺

圖1-1Api開放接口效果

調度任務實現效果:

圖1-2調度任務效果

詳細開發步驟

1.Api接口和調度功能開發環境配置介紹

1)Api接口服務使用的是SIE.WebApiHost,要進行Api接口的調試測試,需要先將實現接口的服

務端工程添加依賴到SIE.WebApiHost,如我是在SETest工程實現的接口,需要先將該工程引

用到SIE.WebApiHost,并配置對應工程的數據庫連接。

Of<fevTe4tComroBer.esOdeiOetWTeuxsOrdetTeiUsPUfOrdc<WifoxiOrde*TctC8ttolkf,>U

?IQ-<x$)/4pp4ett??9?/?cnQJIQb-SOJ在

"ftptser".

nfo,:tru?.ClSMOMDemaVMtU4?l.■

?DModule(

-忌0@3

?r*:?$?.Lof.LotVSt-actoryMwtFSIELo,.?的HMtAp4MoM

:"UllaIJLIMJJAJSWW.■令Comett?d

.jpProperty

,”(?W!

4「:B

,?舊?了

ds-:30.?■■基

43

3mtlg*:(

,?:B

Xaae:Mst?r.>?’二乙一工程依賴

Conn^tionStrini":Seurc?=<U€alDe)\M6SgUx>c?lDB.AttachWiUMW=D:\gj?a\\DeHO\\SlKMDwo.V9.KJ.b?<

.DCD.91.Bdf.Iatetrat?dS?curityTrw;ls?rld4O0.91二、.ME

Happ^Htmq?>cn_____________

)*Ccr49u?4lionx?

?:(nDoeJAt

?XMW?:'I門r■二>*HoaWrvkext

"C<xm?ti(mStrin<-:-DataS4urce-(LocalD8)\\MS$aU4K?lD8.AttachWileM?-D:\\Pr?j?ctV.De)IO\\SM(?DM.¥9.IWApp.DataX砧k)94<Mixoafi9

.DtW.91.adf.latesr*tedS^uritnTn?e;Vi<rld*0CM0.9l*??"Pvogtm

DataSqlClient*.,*工程數jg庫連接配as?籍W^ApiSurtupxi

?星WeMKent

?BWp<lien<

Mae":*te?t,

Conn^tiofiStnnc*:Scarce*<LocalD8)\'JBSQUocalD8;AttachlfcFiWProjtct\\DDIO\.SMCMD??o.V9.]\\App.D?ta\

\DE?.9Ladf.lntecr?t?dS?curity=Trw;Vt<rI<J=€€M0.9二

FroviderXaM*:vSyste<Data.SqlClieat*

圖1-3SIE.WebApiHost添加Api接口對應工程依賴和數據庫配置

2)調度功能:

調度平臺使用的數據庫連接是hangfire,如果調試工程沒有添加hangfire的數據庫連接,需要先添加

上。

?m尸京gm>

*4ev.isMactmtBnabled*:tee.

23?FwOeveloper.ScnptiOir*:1>:\\VS_B?rkSp^<\\SMM\'JCttC?r<\\€or<\\SIB.?eb\\Scnpti\

34??!?.<pc!O\?14M

2S三'MlBdhpCS^etton*:(

2c占、xe?:(

27I'Fi】心tEion":a.txe".

28I*":**pplicAtion'?K*

:false.

51"DbMitrationKlstory\

S2?CormectionStriM*:Sourc?=(Uc?He)\\JBSqiLoe>lDB.AttacMbFil^n?=l>:\\ProJ<ct\\DtW\\S1IOIt.[W?.V9.l\VAppJku\

sdf.ZAt?grat?dS?curlty?True.lt*rld*DBK)_9l".

53I-Provider^Me':*$TsteB.Data.SqlCheat*

'X??”:一八"二

ConnectlonStriM*:'Data$0^33.]0"\163000^:08/八*(^£644]^???:0:\\P0"t'、\De?X\5WN.Dt?>.V9.八\AppJkr\?

\ttW_91.adf.IntegratedSecurityTrue.l??rId?DD?_9l,

'Provf“XM>”:vSystMLDAXA.

h*nsfir?:(

)??:?MMVe*

,CornetlonStrlftt-:'DataSource-lUxaHO)\\X$SQU<K?lD8;AttMfattFilenaM>(>:\\Proj<€t\\IOO\\SMOM.tW?>.V9.八\gjtau>

K?_91m”rN?S^uritr=Tru?.lt^Id=DD?_9l*

?ProvdrX":3yitm.Data.S^lCliMt9

圖1-4調度連接字符串配置

調試工程需要依賴調度平臺相關dll

/家3WebClient

>令ConnectedServices

/tProperties

>二PublishProfiles

⑹launchSettings.json

D等wwwroot

/跖依賴項

/“包

>。Microsoft.AspNetCore.SignalR.Protocols.h

°SIE.Alert.Job(9.1.21)

>的SIE.Messages(9.1.21)

>0SIE.MQ(9.1.21)

>0SIE.ORM.MappingColumn(9.1.21)

>,SIE.Queue(9.1.21)

>0SIE.Script(9.1.21)

0SIE.Session.Redis(9.1.21)

>0SIE.SimpleListReport(9.1.21)

>0SIE.Web.Alert(9.1.21)

°SIE.Web.Dashboard(9.1.21)

>,SIE.Web.Diagnostics(9.1.21)

>0SIE.Web.Localization(9.1.21)

>0SIE.Web.Mda(9.1.21)

0SIE.Web.Print(9.1.21)

>0SIE.Web.RBAC(9.1.21)

6SIE.Web.ReportServerCore(9.1.21)

>°SIE.Web.ReportServerCore.Mvc(9.1.21)

6SIE.Web.Schedule(9.1.21)|

>0SIE.Web.Senders(9.1.21)

>0Topshelf(4.2.1)

圖1-5調試工程依賴調度的程序集

調度平臺的表如果使用的是SQLSERVER的數據庫,是可以直接使用平臺的升級數據庫功能進行表的生

成;如果使用的是oracle的數據庫,則需要使用腳本在數據庫中執行,腳本如下。

Install.sql

圖1-6調度平臺oracle數據庫腳本

以上是做Api接口和調度功能要提前檢查和配置的開發環境,環境準備好后,接下來就進入到Api

接口和調度功能的開發實現了。

2.Api接口的功能開發

1)Api接口返回值訂單明細類的定義。

PurOrderlnfo.es+XOrderTestController.Api.es

回SIE.Test^I^SIE.Test.OrderTests.PurOrderlnfo?JI^PurOrderDe

45///我購訂單明細信息

46「,產二_一^需要聲明序列化

47[Serializable]

48publicclassPurOrderDetai1Info

49

50〃/<summary>產品編科|

1個引用

53publicstringProductCode(get:set;}

54

55|///<summary>產品名稱|

i個引用

58publicstringProductName{get:set:)

59

60III<summary>采購價

1個引用~

63publicdecinalPurchasePrice{get:set:}

64

65|/〃<summary>銷售價I一?類的屬性

1個引用~

68publicdecinalSellingPrice{get;set;}

69

70/〃<summary)采購數同

】個引用

73publicdecinalPurchaseQty{get:set:)

74

75|///<summary>總金額|

1個引用~

78publicdecinalTotalAmount{get:set;}

79

80III<summary>

1個引用~

83publicstringRemark(get;set;}

84

85

圖1-7Api接口返回值訂單明細類的定義

2)Api接口返回值采購訂單信息類的定義。

PurOrderlnfo.esOrderTestController.Api.es

回SIE.Test-I^SIE.Test.OrderTests.PurOrderDetaillnfo■SellingPrice

4

-namespaceSIE.Test.OrderTests

6(_____

:|/〃〈summary〉采購訂單信息

[Serializable]—'標記序列化特性

3個劇用

publicclassPurOrderlnfo

(

:///<summary>

///訂單號

///</sunrnary>

publicstringCrderNo{get;set;}

s

-[summary〉采購日期|

-1個引用~~

-publicDatelinePurchaseDate{get;set;}

21-

22

23E-E|/〃Csunmary〉訂單總金鬻

-1個引用

-

26publicdecimalTotalAmount{get;set;}訂單信息返回

27E

28.〈stimmary〉仃單狀態|值屬性定義

1個51周~

31publicintOrderStatus{get;set;}

32

33-V”〈summary)爸可

-1個引用

-

36-publicstringFemark{get;set;}

37s

38|/〃〈sunnary〉il?單明細|

2個引用~

41publicList<PurOrderDetailInfo>PurOrderDetaillnfos{get;set;}

42

圖1-8Api接口返回值訂單類的定義

3)在SIE.Test工程的OrderTests文件夾卜定義一個控制器,區分方法的控制器。

KfOdfvtnloxtOr4?rT*fKontroll?<^fa.Cf?X

BSIfleu

?naoespaceSILTest.OrderTests

央媾HJMSi推ilk

——一聲明為部分類

public|1:Ji]].“Ord

?<?Ofde<TonWrc*

圖1-9接口控制器的定義

4)訂單控制器類聲明為部分類。

?]%$CT“t?(MwTe<0OdtrTttfCoiwolw?]@JOfgHoQ%b-SO、?#"

S!B.AUrt.

iff萬—WBKtny

usingSILCooBcm.Coafigs:

uslntSIE.CoMon.Xu^MrRul?s;

usingSILDOMU.

usincSILOoMin.Validation.

uslnsSILTett.AlertPlust,

USlXlfSIB.Test.Helper;

utin(SIE.Test.0r4erTest*.C?cifits;

usinfSystM;

usingSyitmCollections.C?>*nc;

utintSyttM.Linq.

naae^ac*SIE.Test.OrderTests

一?需要將訂單的控制器類也聲明為部分類,否則會報港

publicdlelasiOr4erTeitControl!?r:DosaicCoatroller

publicvirtualstrideG?tOrderXoO

vareettfig=Co0fi<S?rvic?.C?tConfit(fwvOrd?rX<CenngOvtyp*of?OrdafT”t));

if(eeofig??trailIconfit-Ordex*(o??null)

thnwncUM&H<mE“eUonr未找fOJ承軟與矍瞋取■,訪。代現招配1T110KO):

return'\Service.UsolveCW^rRu!?Coetroller>0

.G?fi?rateSecBtnt(confit-Or^?r^o!d.I)

.HrstOrDefMltO:

>C?OfdevTe?'Pnnub4tf{t

圖1-10訂單控制器類聲明為部分類

5)獲取采購訂單信息的Api接口的實現

?□Tea

?SIE.Tttt.Ord?rT?stt

,QTeM

,@SILTwt

<swmry>

國體1M?

尼所訂艱心1依II控制》?

</八—iry)?DAlerts

?OApi

publicpartialclassOrderTestController(XdMinController?QApiModeK

?OCommon

?OControlton

///負取緊WHJ通信息,ODMM

///</su?Birr>?ODbM9fatiom

〃/graana?--5tftrtTi>e'

采中訂供開知時?□DHMU

<p*raaMB二、ndTiae"果明ij/p"r?a>

??OEmptoyeet

—Api接口開放標記?OEXAM

LApSS*TTic?(我取灰啊“甲41g>J

.DHdpec

:retura:ApxReturn(?女蜘ifListPurOrderInfo>")J——?接口返回值說明

?Olt?wTMU

21icSrtuadLi八PurOrd—kCIjtPUrOr&rLisMiADiPar-KyUK上開如時間")]DateTiaettaxtTiw.【ApiParineSr(?桌購給量?□A>b

r?DAteTlMendTise.PartUrU貝數.為中仔品PMtXiabtr.3HPAT?K”《‘我歐MM?%'fr"。■曰OrdefTm

向ff")Jmt?pageSixe)gmui業刖?DContig

接口返回類型接口參數?C?Ordc?CeS燈ertc

v<r?H?rInfos=ne?Li?t<ForOrd*-Info>()?C?OfdevUMPrkiubtext

?€■OrM初K,

returnorderInfos:?€■OrdefTestcs

?C?Ofd**TtttConUofl?f.Ap?x^

BC?OrMIcKoca必rc

圖1-11獲取訂單Api接匚實現

6)Api接口方法體的邏輯實現

OrderTestControllerJKpi.cs*X

▼1%SIE?TestQrderTests?OrderTestController

publicvirtualList<PurOrderInfo>GetPirOrderList([ApiParaaBter("采購開始時間")]DatelinestartTiroe,[ApiParaaeter("茶用結束時間")]

DateTimeendTime,[ApiParameter("頁姿,為空查第一頁")]int?pageNumber,[ApiParameter("頁數據數量,為主查所有")]int?pageSize)

varorderinfos■newList<PurOrderlnfo>0;

varpaginginfo■ne?PaginglnfoO

(

PageNusber=pageNumber.HasValue?pageNuaber.Value:1,

PageSize=pageSize.HasValue?pageSize.Value:int.MaxValue-1.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論