工業(yè)管理軟件Api接口和調(diào)度功能開發(fā)案例-實訓(xùn)指導(dǎo)書_第1頁
工業(yè)管理軟件Api接口和調(diào)度功能開發(fā)案例-實訓(xùn)指導(dǎo)書_第2頁
工業(yè)管理軟件Api接口和調(diào)度功能開發(fā)案例-實訓(xùn)指導(dǎo)書_第3頁
工業(yè)管理軟件Api接口和調(diào)度功能開發(fā)案例-實訓(xùn)指導(dǎo)書_第4頁
工業(yè)管理軟件Api接口和調(diào)度功能開發(fā)案例-實訓(xùn)指導(dǎo)書_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

工業(yè)管理軟件Api接口和調(diào)度功能開發(fā)案例實訓(xùn)指導(dǎo)書

一、實訓(xùn)目的

本課程的教學(xué)目的是讓學(xué)生掌握工業(yè)管理軟件Api接口和調(diào)度功能的開發(fā)流程和關(guān)鍵技術(shù)。

從系統(tǒng)的需求分析出發(fā),了解到開發(fā)需要實現(xiàn)和滿足的實際業(yè)務(wù)功能點:根據(jù)功能點的業(yè)務(wù)需求。

使用VisualStudio2019及以上開發(fā)工具對其進行開發(fā)實現(xiàn),然后在功能中進行測試,完成Api接口和調(diào)

度功能的開發(fā)實現(xiàn)及效果驗證。

通過綜合實訓(xùn)幫助學(xué)生全面牢固地掌握教學(xué)內(nèi)容、培養(yǎng)學(xué)生的實踐動手能力,提高學(xué)生綜合運用專

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

二、實訓(xùn)準(zhǔn)備

1、掌握C#編程開發(fā)技能。

2、了解工業(yè)管理軟件的基礎(chǔ)開發(fā)。

3、事先要能夠根據(jù)實訓(xùn)工程源代碼,配置環(huán)境,搭建項目工程。

4、安裝好實訓(xùn)開發(fā)環(huán)境,下載實訓(xùn)工程源代碼。

5、Api接口和調(diào)度功能的開發(fā)依賴于采購訂單,需要先完成采購訂單功能的開發(fā)實現(xiàn)。

三、實訓(xùn)環(huán)境

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

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

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

EAP.Modelfirst>VS中導(dǎo)入代碼片段。

四、實訓(xùn)步驟

任務(wù)描述

本實訓(xùn)讓學(xué)生體驗Api接口和調(diào)度功能的開發(fā)過程。通過本指導(dǎo)書展開詳細(xì)的開發(fā)步驟。

>任務(wù):Api接口和調(diào)度功能

實現(xiàn)邏輯包括:

1.Api接口:

■傳入?yún)?shù):傳入?yún)?shù):開始時間和結(jié)束時間(不可為空),頁數(shù)(可為空,為空查第

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

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

購日期〈=結(jié)束時間,根據(jù)頁數(shù)和頁數(shù)據(jù)量將滿足條件的訂單和對應(yīng)訂單明細(xì)的數(shù)據(jù)

返回;

■接口返回值說明:

?訂單包含的字段內(nèi)容:訂單號、采購三期、訂單總金額、訂單狀態(tài)、備注;

?訂單明細(xì)包含的字段內(nèi)容:產(chǎn)品編碼、產(chǎn)品名稱、采購價、銷售價、采購數(shù)量、

總金額、備注;

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

2.調(diào)度任務(wù)功能:

■調(diào)度任務(wù)執(zhí)行邏輯:根據(jù)頁數(shù)和頁數(shù)據(jù)量查詢采購信息,查詢數(shù)據(jù)按采購時間的升

序進行排序,通過調(diào)度定時去更改采購訂單的狀態(tài),狀態(tài)變更的條件:

?訂單對應(yīng)所有訂單明細(xì)的入庫數(shù)量為0,采購訂單的狀態(tài)變更為新建:

?訂單對應(yīng)所有訂單明細(xì)的0〈入庫數(shù)量(采購數(shù)量,采購訂單的狀態(tài)變更為部分

接收:

?訂單對應(yīng)所有訂單明細(xì)的入庫數(shù)量=采購數(shù)量,采購訂單的狀態(tài)變更為全部接收;

■調(diào)度參數(shù):頁數(shù)、頁數(shù)據(jù)量,調(diào)度任務(wù)未配置頁數(shù)和頁數(shù)量,提示頁數(shù)和頁數(shù)據(jù)量

必須配置;

■調(diào)度任務(wù)必須記錄日志信息。

Api開放接I」效果:

SMOMAPI開放平臺

圖1-1Api開放接口效果

調(diào)度任務(wù)實現(xiàn)效果:

圖1-2調(diào)度任務(wù)效果

詳細(xì)開發(fā)步驟

1.Api接口和調(diào)度功能開發(fā)環(huán)境配置介紹

1)Api接口服務(wù)使用的是SIE.WebApiHost,要進行Api接口的調(diào)試測試,需要先將實現(xiàn)接口的服

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

用到SIE.WebApiHost,并配置對應(yīng)工程的數(shù)據(jù)庫連接。

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*.,*工程數(shù)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接口對應(yīng)工程依賴和數(shù)據(jù)庫配置

2)調(diào)度功能:

調(diào)度平臺使用的數(shù)據(jù)庫連接是hangfire,如果調(diào)試工程沒有添加hangfire的數(shù)據(jù)庫連接,需要先添加

上。

?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調(diào)度連接字符串配置

調(diào)試工程需要依賴調(diào)度平臺相關(guān)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調(diào)試工程依賴調(diào)度的程序集

調(diào)度平臺的表如果使用的是SQLSERVER的數(shù)據(jù)庫,是可以直接使用平臺的升級數(shù)據(jù)庫功能進行表的生

成;如果使用的是oracle的數(shù)據(jù)庫,則需要使用腳本在數(shù)據(jù)庫中執(zhí)行,腳本如下。

Install.sql

圖1-6調(diào)度平臺oracle數(shù)據(jù)庫腳本

以上是做Api接口和調(diào)度功能要提前檢查和配置的開發(fā)環(huán)境,環(huán)境準(zhǔn)備好后,接下來就進入到Api

接口和調(diào)度功能的開發(fā)實現(xiàn)了。

2.Api接口的功能開發(fā)

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

PurOrderlnfo.es+XOrderTestController.Api.es

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

45///我購訂單明細(xì)信息

46「,產(chǎn)二_一^需要聲明序列化

47[Serializable]

48publicclassPurOrderDetai1Info

49

50〃/<summary>產(chǎn)品編科|

1個引用

53publicstringProductCode(get:set;}

54

55|///<summary>產(chǎn)品名稱|

i個引用

58publicstringProductName{get:set:)

59

60III<summary>采購價

1個引用~

63publicdecinalPurchasePrice{get:set:}

64

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

1個引用~

68publicdecinalSellingPrice{get;set;}

69

70/〃<summary)采購數(shù)同

】個引用

73publicdecinalPurchaseQty{get:set:)

74

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

1個引用~

78publicdecinalTotalAmount{get:set;}

79

80III<summary>

1個引用~

83publicstringRemark(get;set;}

84

85

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

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

PurOrderlnfo.esOrderTestController.Api.es

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

4

-namespaceSIE.Test.OrderTests

6(_____

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

[Serializable]—'標(biāo)記序列化特性

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〉仃單狀態(tài)|值屬性定義

1個51周~

31publicintOrderStatus{get;set;}

32

33-V”〈summary)爸可

-1個引用

-

36-publicstringFemark{get;set;}

37s

38|/〃〈sunnary〉il?單明細(xì)|

2個引用~

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

42

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

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

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承軟與矍瞋取■,訪。代現(xiàn)招配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接口的實現(xiàn)

?□Tea

?SIE.Tttt.Ord?rT?stt

,QTeM

,@SILTwt

<swmry>

國體1M?

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

</八—iry)?DAlerts

?OApi

publicpartialclassOrderTestController(XdMinController?QApiModeK

?OCommon

?OControlton

///負(fù)取緊WHJ通信息,ODMM

///</su?Birr>?ODbM9fatiom

〃/graana?--5tftrtTi>e'

采中訂供開知時?□DHMU

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

??OEmptoyeet

—Api接口開放標(biāo)記?OEXAM

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

.DHdpec

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

?Olt?wTMU

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

r?DAteTlMendTise.PartUrU貝數(shù).為中仔品PMtXiabtr.3HPAT?K”《‘我歐MM?%'fr"?!鲈籓rdefTm

向ff")Jmt?pageSixe)gmui業(yè)刖?DContig

接口返回類型接口參數(shù)?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接匚實現(xiàn)

6)Api接口方法體的邏輯實現(xiàn)

OrderTestControllerJKpi.cs*X

▼1%SIE?TestQrderTests?OrderTestController

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

DateTimeendTime,[ApiParameter("頁姿,為空查第一頁")]int?pageNumber,[ApiParameter("頁數(shù)據(jù)數(shù)量,為主查所有")]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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論