Files
cdtestplant_v1/apps/createDocument/controllers/__pycache__/dg.cpython-38.pyc

195 lines
23 KiB
Plaintext
Raw Normal View History

2025-04-29 18:09:00 +08:00
U
\!<21>gG<67><00>@sTddlmZddlmZmZmZddlmZddlm Z ddl
m Z ddl m Z ddlmZddlmZdd lmZdd
lmZmZmZmZdd lmZmZdd lmZmZmZm Z m!Z!dd l"m#Z#ddlm$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,ddl-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4eddgd<19>Gdd<1B>dee4<65><04>Z5dS)<1D>)<01> timedelta)<03>ControllerBase<73>api_controller<65>route)<01>IsAuthenticated)<01>JWTAuth)<01> transaction)<01>Q)<01> DocxTemplate)<01>Path)<01> ChenResponse)<04>Project<63>Contact<63> Abbreviation<6F>
TestDemand)<02>Dict<63>Fragment)<05> get_str_dict<63> get_list_dict<63> get_testType<70> get_ident<6E> get_str_abbr)<01>create_csx_chapter_dict)<01>MyHTMLParser_p)<01>get_object_or_404)<01> model_to_dict)<01>create_dg_docx)<01>
RichParser)<01>DocTime)<01> project_path)<01>GenerateLogger)<01>FragementToolsMixinz /generateu生成大纲文档)<01>tagsc@s<>eZdZed<01>Zejddd<04>eje d<05>dd<07><04><01>Z
ejdd d<04>eje d<05>d
d <0B><04><01>Z ejd d d<04>eje d<05>dd<0F><04><01>Z ejddd<04>eje d<05>dd<13><04><01>Z ejddd<04>eje d<05>dd<17><04><01>Zejddd<04>eje d<05>dd<1B><04><01>Zejddd<04>eje d<05>dd<1F><04><01>Zejd d!d<04>eje d<05>d"d#<23><04><01>Zejd$d%d<04>e d<05>d&d'<27><04>Zejd(d)d<04>e d<05>d*d+<2B><04>Zejd,d-d<04>e d<05>d.d/<2F><04>Zejd0d1d<04>e d<05>d2d3<64><04>Zejd4d5d<04>e d<05>d6d7<64><04>Zejd8d9d<04>e d<05>d:d;<3B><04>Zejd<d=d<04>e d<05>d>d?<3F><04>Zejd@dAd<04>e d<05>dBdC<64><04>ZejdDdEd<04>e d<05>dFdG<64><04>ZejdHdId<04>e d<05>dJdK<64><04>ZejdLdMd<04>e d<05>dNdO<64><04>ZejdPdQd<04>e d<05>dRdS<64><04>ZejdTdUd<04>e d<05>dVdW<64><04>ZejdXdYd<04>e d<05>dZd[<5B><04>Zejd\d]d<04>e d<05>d^d_<64><04>Z ejd`dad<04>e d<05>dbdc<64><04>Z!ejddded<04>e d<05>dfdg<64><04>Z"ejdhdid<04>e d<05>djdk<64><04>Z#ejdldmd<04>e d<05>dndo<64><04>Z$ejdpdqd<04>e d<05>drds<64><04>Z%ejdtdud<04>e d<05>dvdw<64><04>Z&ejdxdyd<04>eje d<05>dzd{<7B><04><01>Z'd|S)}<7D>GenerateControllerDGu 测评大纲z/create/testdemandzcreate-testdemand)<01>url_name<6D><01>idc"Cs<>t<00><01>dt|<01>ddd}t|<02>}tt|d<05>}tjjdd<07>j <09>
<EFBFBD>}dd <09>t d
|d
<00>D<00>}d d <09>t d
|d
<00>D<00>}|j j d d <0A><01><0E>}|j<0F><10>} | D<00>]<5D>}
|<06>t|
j<13><01>} g} t|
j<15><10><00>D]<5D>\} }| d
t| d
<00><01>dd<0F>|j|jr<>|j<19>dd<11>nd|j<1B>r|j<1B>dd<11>nd|j<1C>r(|j<1C>dd<11>nd|j<1D>r@|j<1D>dd<11>nd|j<1E>rX|j<1E>dd<11>ndd<13>}| <0C>|<0F>q<>d}tjjdd<07>j <09><10>D].}|
j D] }||j!k<02>r<>||j"d7}<10>q<><71>q<>|
j#j$dk<02>r<>|
j#j%d|
j#j&}|j'<27>(dd|<13><00><02>t)|
j#j$<24>}|<14>*|<03>}|
j+j&|
j#j,|
j#j&d<19>g}|
j-<2D><10>D]$}|j+j&|j,|j&d<19>}|<16>|<18><00>q$|
j&|
j!t.|
<EFBFBD>t/|
j0d<1A>||| ||
j1<EFBFBD>dd<11>|
j2<EFBFBD>dd<11>d<1B>
}|| <00>|<19>q<>d|j&i}g}t|<07>D]L\} }tjjdd<07>j jt| d
<00>d <0A>}|j"}|j3}|||d<1D>} |<1B>| <20><00>q<>t4|dd<1F>d <0A>}||d <|<03>5|<1A>z2|<03>6t<00><01>dt|<01>d!d<00>t7d"d"d#d$<24>WSt8k
<EFBFBD>r<>}!zt7d%d%d&<26>9|!<21>d$<24>WY<00>Sd'}!~!XYnXd'S)(u目前生成第一轮测试项<E8AF95>media<69> form_template<74>dgu测试项及方法.docxr%<00>testType)<01>codecSsg|]}|<01>qS<00>r,)<02>.0<EFBFBD>ir,r,<00>GE:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py<70>
<listcomp>+sz:GenerateControllerDG.create_testdemand.<locals>.<listcomp><3E>cSsg|]}g<00>qSr,r,)r-<00>jr,r,r/r0,sr<00><01>key<65><00>0<>
<EFBFBD><07>)<08>index<65>rindex<65>subName<6D>subDesc<73> condition<6F> operation<6F>observe<76>expect<63>
testMethod<EFBFBD> <20>-u 测试项u.设计需求中的描述为空,请检查 -> )Zdut_nameZdesign_chapterZ design_name<6D>priority)
<EFBFBD>namer4<00>identrE<00>doc_listZdesign_descriptionZtest_demand_contentrB<00>adequacy<63>testDesciption<6F> project_name)<03>type<70>item<65>sortcSs|dS)NrNr,)<01>xr,r,r/<00><lambda>{<00>z8GenerateControllerDG.create_testdemand.<locals>.<lambda><3E>data<74>
output_dir<EFBFBD><EFBFBD><00>文档生成成功<E58A9F><03>statusr+<00>message<67><65><00>0模版文件已打开,请关闭后再试,{0}N):r <00>cwdrr
rr r<00>objects<74>get<65>dictItem<65>count<6E>range<67>pField<6C>filter<65>first<73>rtField<6C>allr:<00>intr*<00> enumerate<74>
testQField<EFBFBD>str<74>rjustr<r=<00>replacer>r?r@rA<00>appendrBr4<00>title<6C>design<67> descriptionrGrF<00>logger<65>write_warning_logr<00>get_final_list<73>dut<75>chapter<65> otherDesignrrrErIrJrN<00>sorted<65>render<65>saver <00>PermissionError<6F>format)"<22>selfr&ZtplTestDemandGenerate_path<74>doc<6F>
project_qsZ test_type_lenZtype_number_listZ list_list<73>project_round_one<6E> testDemand_qs<71> single_qs<71>
type_index<EFBFBD> content_listr:<00>contentZ content_dictZtestmethod_strZ dict_item_qsZtm_itemZ design_info<66> html_parserZ desc_listrHZ relate_designZddictZtestdemand_dict<63>context<78> output_list<73>li<6C>qsZ context_strrN<00>table<6C>er,r,r/<00>create_testdemand!s<>  

<18>

  
 <06>
<04>
  <0C> <04> <02>
"z&GenerateControllerDG.create_testdemandz /create/yijuz create-yijucCs,tt|d<01>}td|j<03>}d|i}td||<01>S)Nr%<00>standard<72> std_documentsu标准依据文件.docx)rr rr<>r)r{r&r}Z yiju_listr<74>r,r,r/<00> create_yiju<6A>s   <02>z GenerateControllerDG.create_yijuz/create/techyijuzcreate-techyijucCs<>tt|d<01>}|j<02>tdd<03>tdd<03>Btdd<03>Btdd<03>B<00>}g}|D].}|j|jd|j|j|j d<08>}|<04>
|<06>qDd |i}t d
||<01>S) Nr%<00>XQ<58>rLZSJZXY<58>YZrD)<04>doc_name<6D> ident_version<6F> publish_date<74>sourcer<65>u技术依据文件.docx) rr <00>pdFieldrbr rF<00>ref<65>version<6F> release_date<74> release_unionrlr)r{r&r}Z duties_qsr<73>ZdutyZone_dutyr<79>r,r,r/<00>create_techyiju<6A>s 0<04> <02>z$GenerateControllerDG.create_techyijuz/create/contactzcreate-contactc Cs<>tt|d<01>}t|dddddddd d
g d <0B>}tjj|dd <0C>j}tjj|dd <0C>j}tjj|dd <0C>j}||d <||d<||d<d|i}td||<01>S)Nr%<00> entrust_unit<69>entrust_contact<63>entrust_contact_phone<6E>dev_unit<69> dev_contact<63>dev_contact_phone<6E> test_unit<69> test_contact<63>test_contact_phone)<01>fields)rF<00> entrust_addr<64>dev_addr<64> test_addr<64>datasu联系人和方式.docx)rr rrr\r]<00>addrr)r{r&r}Z contact_dictr<74>r<>r<>r<>r,r,r/<00>create_contact<63>s( <02><02><02>z#GenerateControllerDG.create_contactz/create/timeaddresszcreate-timeaddresscCst|<01>}|<02><01>}td||<01>S)Nu测评时间和地点.docx)r<00>dg_address_timer)r{r&Z doc_timerr<72>r,r,r/<00>create_timeaddress<73>sz'GenerateControllerDG.create_timeaddressz/create/funcListzcreate-funcListc
Cst<00><01>dt|<01>ddd}t|<02>}tt|d<05>}g}|jjtdd<07>dd <09>D]B}i}|j d
krP|j
|d <t |j <0C>}|j |d d <0A>|d<|<05>|<07>qP|j
|d<0F>} |<03>| <09>z2|<03>t<00><01>dt|<01>dd<00>tdddd<13>WStk
<EFBFBD>r}
ztddd<15>|
<EFBFBD>d<13>WY<00>Sd}
~
XYnXdS)Nr'r(r)u被测软件功能.docxr%<00>6<><01>
demandTyper6)<01>
round__key<EFBFBD>1<> func_name<6D>d)Zimg_sizeZfunc_description)rK<00>funcListrSrTrUrVrYrZ)r r[rr
rr <00>psFieldrbr r<>rFrrorrrlrwrxr ryrz) r{r&<00>
input_pathr|r}r<><00> designDemand<6E>func<6E>parserr<72>r<>r,r,r/<00>create_funcList<73>s(  


 <02>
"z$GenerateControllerDG.create_funcListz/create/interfaceListzcreate-interfaceListcCs td<01>dS)NuB进入了该区域,为调试代码请检查为什么进入此处)<01>print)r{r&r,r,r/<00>create_interfaceList<73>sz)GenerateControllerDG.create_interfaceListz/create/softCompositionzcreate-softCompositionc
Cs<>t<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}|<03>|<07>z2|<03>t<00><01>dt|<01>dd<00>tddd d
<EFBFBD>WStk
r<EFBFBD>}ztd d d <0C> |<08>d
<EFBFBD>WY<00>Sd}~XYnXdS) Nr'r(r)u测评对象.docxu 测评对象<E5AFB9>rkZ user_contentrSrTrUrVrYrZ<00>
r r[rr
<00>_generate_fragrwrxr ryrz<00> r{r&r<>r|rk<00>frag<61>rich_text_listr<74>r<>r,r,r/<00>create_softComposition<6F>s <06>
"z+GenerateControllerDG.create_softCompositionz/create/interfacezcreate-interfacec Cs<>tt|d<01>}|j}g}|jjdd<03>}t|<05>}d}|D]*}|<04>|j<02>|d7}||kr4|<04>d<06>q4g} |D],}
|
j|
j|
j|
j |
j
|
j d<07>} | <09>| <0B>qh||| d<08>} t d | |<01>S)
Nr%<00>r<>rr1<00>、)rFrGr<><00>torL<00>protocal)rK<00>itersZ iter_listu被测软件接口.docx) rr rFr<>rb<00>lenrlrGr<>r<>rLr<>r) r{r&r}rKZinterfaceNameListr<74>Z iters_lengthr:ZinterZinterface_list<73> interfaceZinterface_dictr<74>r,r,r/<00>create_interface<63>s4   <04> <02>z%GenerateControllerDG.create_interfacez/create/performancezcreate-performancec Csvtt|d<01>}|jjdd<03>}g}d}|D]:}t<04>}|<07>|j<06>|d7}|<04>|<05>d<06>d<07>|j <09><00>q&d|i}t
d ||<01>S)
Nr%r5r<>rr1r<>r8<00>performance_listu被测软件性能.docx) rr r<>rbr<00>feedrorl<00>join<69>
allStrListr) r{r&r}<00> design_qsr<73>r:<00>
design_oner<EFBFBD>r<>r,r,r/<00>create_performances  <02>z'GenerateControllerDG.create_performancez/create/static_envzcreate-static_envc
Cs<>t<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}|<03>|<07>z2|<03>t<00><01>dt|<01>dd<00>tddd d
<EFBFBD>WStk
r<EFBFBD>}ztd d d <0C> |<08>d
<EFBFBD>WY<00>Sd}~XYnXdS) Nr'r(r)u静态测试环境说明.docxu静态测试环境说明r<E6988E>rSrTrUrVrYrZr<>r<>r,r,r/<00>create_static_env/s <06>
"z&GenerateControllerDG.create_static_envz/create/static_softzcreate-static_softcCsVt<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}td||<01>S)Nr'r(r)u静态软件项.docxu静态软件项r<E9A1B9><00>r r[rr
r<>r<00>r{r&r<>r|rkr<>r<>r<>r,r,r/<00>create_static_soft@s <06>z'GenerateControllerDG.create_static_softz/create/static_hardzcreate-static_hardcCsVt<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}td||<01>S)Nr'r(r)u静态硬件和固件项.docxu静态硬件和固件项r<E9A1B9>r<>r<>r,r,r/<00>create_static_hardLs <06>z'GenerateControllerDG.create_static_hardz/create/dynamic_envzcreate-dynamic_envc
Cs<>t<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}|<03>|<07>z2|<03>t<00><01>dt|<01>dd<00>tddd d
<EFBFBD>WStk
r<EFBFBD>}ztd d d <0C> |<08>d
<EFBFBD>WY<00>Sd}~XYnXdS) Nr'r(r)u动态测试环境说明.docxu动态测试环境说明r<E6988E>rSrTrUrVrYrZr<>r<>r,r,r/<00>create_dynamic_envXs <06>
"z'GenerateControllerDG.create_dynamic_envz/create/dynamic_softzcreate-dynamic_softcCsVt<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}td||<01>S)Nr'r(r)u动态软件项.docxu动态软件项r<E9A1B9>r<>r<>r,r,r/<00>create_dynamic_softis <06>z(GenerateControllerDG.create_dynamic_softz/create/dynamic_hardzcreate-dynamic_hardcCsVt<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}td||<01>S)Nr'r(r)u动态硬件和固件项.docxu动态硬件和固件项r<E9A1B9>r<>r<>r,r,r/<00>create_dynamic_hardus <06>z(GenerateControllerDG.create_dynamic_hardz/create/test_datazcreate-test_datacCsVt<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}td||<01>S)Nr'r(r)u测评数据.docxu 测评数据r<E68DAE>r<>r<>r,r,r/<00>create_test_data<74>s <06>z%GenerateControllerDG.create_test_dataz/create/env_diffzcreate-env_diffcCsVt<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}||oD|d<06>}td||<01>S)Nr'r(r)u环境差异性分析.docxu环境差异性分析r<E69E90>r<>r<>r,r,r/<00>create_env_diff<66>s <06>z$GenerateControllerDG.create_env_diffz/create/baseInformationzcreate-baseInformationc Cs<>tt|d<01>}t|jd<02>}td|j<05>}t|jd<04>}t|jd<05>}g}|D]}|<07>|<08> d<06><01>qD|j
j dd<08><01> <0C>} | j j d d
<EFBFBD><01> <0C>}
|
s<EFBFBD>td d d d <0A>S|
j} t|
j<11>t|
j<12>t|
j<13>t|
j<14>} |j} |j|d<0E>|<07>| | |j<18>d<0F>| |<02><1A>||d<10>
}td||<01>S)Nr%<00>security_level<65>language<67>runtime<6D>devplantr<74>rr3<00>SOr<4F>rYu0您还未创建轮次,请进入工作区创建)r+rWrXr8z%Y-%m-%d)
rKr<>r<>r<><00>
line_countZ recv_dater<65><00> soft_typer<65>r<>u被测软件基本信息.docx)rr rr<>rr<>r<>r<>rlr]rarbrc<00>rdFieldr r<>rf<00> code_line<6E> comment_line<6E>mix_line<6E>
black_liner<EFBFBD>rFr<><00> beginTime<6D>strftime<6D>get_soft_type_displayr)r{r&r}<00>security<74> languagesr<73>r<>Z language_listr<74><00> project_roundZfirst_round_SOr<4F>r<>r<>r<>r,r,r/<00>create_information<6F>s>     <04><08>
<02> z'GenerateControllerDG.create_informationz/create/levelAndTypezcreate-levelAndTypecCs<>t<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}|rP||oH|d<06>}n<>tt|d<07>}|j<07>d<08><01> <09>} t
t d d
<EFBFBD>| <09><02>}
d d d ddddddddddddg} g} t | <0B>D](\} }|
D]}||kr<>| <0C> t| <0A><01>q<>q<EFBFBD>d<1A>|
<EFBFBD>|j| d<1B>}td||<01>S)Nr'r(r)u 测试级别和测试类型.docxu测试级别和测试类型r<E59E8B>r%r*cSst|dd<01>S<00>Nr*<00>r<00><01>qs_itemr,r,r/rP<00>rQz:GenerateControllerDG.create_levelAndType.<locals>.<lambda>u 文档审查u 静态分析u 代码审查u 逻辑测试u 功能测试u 性能测试u 边界测试u恢复性测试u安装性测试u数据处理测试u 余量测试u 强度测试u 接口测试u人机交互界面测试u兼容性测试r<E8AF95>)Z testTypesrKr<>)r r[rr
r<>rr <00>ptField<6C>values<65>distinct<63>list<73>maprgrlrir<>rFr)r{r&r<>r|rkr<>r<>r<>r}<00>
test_types<EFBFBD>type_name_listZ
word_typesr<EFBFBD>r:<00> test_typeZ
exist_typer,r,r/<00>create_levelAndType<70>s< <06> <02><02>z(GenerateControllerDG.create_levelAndTypez/create/strategyzcreate-strategyc Cs<>t<00><01>dt|<01>ddd}t|<02>}|<00>||d<05>\}}}|rP||oH|d<06>}n^tt|d<07>}|j} t| <09>dkrrd nd
}
|j <09>
d <0B><01> <0B>} t t d d <0A>| <0B><02>} |jt| d<0E>|
| d<0F>}td||<01>S)Nr'r(r)u测试策略.docxu 测试策略r<E795A5>r%r5TFr*cSst|dd<01>Sr<>r<>r<>r,r,r/rP<00>rQz6GenerateControllerDG.create_strategy.<locals>.<lambda>r<>)rKZsecurity_level_str<74>isDmscr<63>)r r[rr
r<>rr r<>rfr<>r<>r<>r<>r<>rFrr) r{r&r<>r|rkr<>r<>r<>r}r<>r<>r<>r<>r,r,r/<00>create_strategy<67>s$ <06> <02>z$GenerateControllerDG.create_strategyz/create/adequacy_effectivenesszcreate-adequacy_effectivenessc Cs<>tt|d<01>}|jjdd<03><01><04>}|s0tdddd<06>Si}|j<06><07>}|D]>}td|j g<01>d<00>
d<08>}||krpd ||<qB||d 7<qBt |<04>}g} |<04> <0C>D]\}
} | <09> |
<EFBFBD>| <0B>d
<EFBFBD><03>q<>|j|d <0B>| <09>d <0C>} td | |<01>S)Nr%rr3rYu未找到首轮测试信息!rVr*r<>r1u项r<E9A1B9>)rK<00>length<74>type_stru8测试内容充分性及测试方法有效性分析.docx)rr rarbrcr rdrerr*r]r<><00>itemsrlrFr<>r) r{r&r}r~Z type_dictZ testDemands<64>
testDemandr<EFBFBD>rZ type_str_listr4<00>valuer<65>r,r,r/<00>create_adequacy_effectiveness<73>s( 

<08>z2GenerateControllerDG.create_adequacy_effectivenessz /create/group<75> create_groupcCs<tt|d<01>}|jd<02>|j<04>|j|j|j|jd<03>}t d||<01>S)Nr%r<>)<06> duty_personZ
member_str<EFBFBD>quality_person<6F> vise_person<6F> config_personr<6E>u 测评组织及任务分工.docx)
rr rr<><00>memberrr r
r<>r<00>r{r&r}r<>r,r,r/rs 
<04>z!GenerateControllerDG.create_groupz/create/guaranteezcreate-guaranteecCs tt|d<01>}d|i}td||<01>S)Nr%<00>projectu测评条件保障.docx)rr rr r,r,r/<00>create_guarantee's
 <02>z%GenerateControllerDG.create_guaranteez/create/abbreviationzcreate-abbreviationcCsTtt|d<01>}g}|jD](}|tjj|d<02><01><06>jd<03>}|<03>|<05>qd|i}t d||<01>S)Nr%)rm)rm<00>des<65> abbreviationsu缩略语.docx)
rr <00> abbreviationrr\rbrcrrlr)r{r&r}r<00>abbrZ abbr_dictr<74>r,r,r/<00>create_abbreviation0s 
 <02>z(GenerateControllerDG.create_abbreviationz/create/yzComparisonzcreate-yzComparisonc Csd}tt|d<02>}g}|jdk<02>r|jjdd<05><01><05>}t|<05>\}}|jjdd<07><01><05>}|<08>r|j<08> <09>} | D]<5D>}
|
j
|
j gd<08>} |
j <0C> <09>} | D]t} d <09> d
t| jd <0B>| jg<03>}|| j<00>| j<12>d }d <0A> |t|<06>| j<0F>d <00>t|<0F>g<03>}| j
||d<0E>}| d<00>|<11>q<>|<04>| <0B>qdd|i}td||<01>S)u\目前追踪需求项的章节号是硬编码按6.2章节起步6.2.1~x.x.x依次排序<E68E92>6.2r%<00>9rr3r<>r<><00>rFrt<00> test_demand<6E>_r<5F>r*r1<00>.<2E>rFrtrGr<00> design_listu研制总要求追踪表.docx)rr <00> report_typerarbrcrr<><00>rsFieldrerFrt<00>dtFieldr<64>rr*rGr:r4rirlr)r{r&<00>test_item_prefixr}rr~<00> testType_list<73>last_chapter_items<6D>yz_dut<75>
yz_designsrn<00> design_dict<63>
test_items<EFBFBD> test_item<65> reveal_ident<6E>test_item_last_chapter<65> test_chapter<65>test_item_dictr<74>r,r,r/<00>create_yzComparison?s6   

<12><06> <02>z(GenerateControllerDG.create_yzComparisonz/create/xqComparisonzcreate-xqComparisonc Cs"tt|d<01>}d}g}|jjdd<04><01><04>}|<05>rt|<05>\}}|jjdd<06><01><04>}|jjdd<06><01><04>} | <09>r4| j<07><08>}
|
D]<5D>} ddgd <09>} g} | <0A> | j
<EFBFBD><08><00>| <0A> | j <0B><08><00>| D]~}|j d
kr<>d <0B> dt|j d <0C>|jg<03>}||j <00>|j<11>d }d<0E> |t|<06>|j <0C>d <00>t|<10>g<03>}|j||d<0F>}| d<00>|<12>q<>|<04>| <0C>qp|<08>r
|j<07><08>}|D]<5D>} | j| jgd <09>} g} | <0A> | j
<EFBFBD><08><00>| <0A> | j <0B><08><00>| D]v}d <0B> dt|j d <0C>|jg<03>}||j <00>|j<11>d }d<0E> |t|<06>|j <0C>d <00>t|<10>g<03>}|j||d<0F>}| d<00>|<12><00>q<>|<04>| <0C><00>qHd|i}td||<01>SdS)Nr%rrr3r<>r<>r<><00>/r<00><04>8<>15<31>3<>2rr*r1rrrru 需求规格说明追踪表.docx)rr rarbrcrr<>rre<00>extendr<00>odFieldr*r<>rrGr:r4rirFrlrtr)r{r&r}rrr~r r!Zxq_dutZso_dutZ
so_designsrnr$r%r&r'r(r)r*Z
xq_designsr<EFBFBD>r,r,r/<00>create_xqComparisonfsb  
 
<12><06> 
<12><06><02>z(GenerateControllerDG.create_xqComparisonz/create/fanXqComparisonzcreate-fanXqComparisoncCs0tt|d<01>}d}|jjdd<04><01><04>}t|<04>\}}g}|<07>|j<07><08><00>g}|D]<5D>} | j j
dksp| j j
dkrJ| j dkrJd<08> dt | j d <09>| jg<03>}
|| j <00>| j<10>d
} d <0B> |t|<05>| j <0B>d
<00>t| <0B>g<03>} | j dkr<>| j j
dkr<>| j| |
d d d <0A>d<0E>} n| j| |
| jj| jjd <0A>d<0E>} |<08>| <0A>qJd|i}td||<01>S)Nr%rrr3r<>r<>r-rr*r1rr,)rFrt)rFrtrGrn<00>
items_listu 反向需求规格追踪表.docx)rr rarbrcrr2rdrersrLr*r<>rrGr:r4rirFrnrtrlr)r{r&r}rr~r r!r%r5r&r'r(r)r*r<>r,r,r/<00>create_fanXqComparison<6F>s@  "<12><06><02><04><06><04> <02>z+GenerateControllerDG.create_fanXqComparisonz/create/codeQualityzcreate-codeQualitycCs<>tt|d<01>}|jjdd<03><01><04>}i}|<04>d|ji<01>|r<>|jjdd<06><01><04>}|r<>|<04>d|ji<01>|<04>dt |j
<EFBFBD>t |j <0B>t |j <0C>t |j <0A>i<01>|<04>d t |j
<EFBFBD>t |j <0C>i<01>|<04>d
t |j <0A>t |j <0C>i<01>|<04>d |j i<01>n td d d<0E>Std||<01>S)Nr%rr3rKr<>r<>r<><00>sizeZtotal_code_liner<65>r<>u未找到源代码被测件rY)rXr+u 代码质量度量分析表.docx)rr rarbrc<00>updaterFr<>r<>rfr<>r<>r<>r<>r r)r{r&r}r~r<>Z
source_dutr,r,r/<00>create_codeQuality<74>s$ <04><08> z'GenerateControllerDG.create_codeQualityz/create/mainTechzcreate-mainTechcCs<>tt|d<01>}|jdkr<>|jjdd<04><01><05>}|jjdd<06><01><05>}g}|r<>|j<07><08>}|D]<5D>}t <09>}|<08>
|j <0B>|j } |j d<07>| <09>gd<08>}
|j<0F><08>D]J} | jjd kr<>t <09>} | <0C>
|j <0B>| j } | jj d<07>| <0A>d
<EFBFBD>}|
d <00>|<0E>q<>|<05>|
<EFBFBD>qPd |i}td ||<01>SdS)Nr%rrr3r<>r<>r8)rtrorr<>)rtror<00> data_listu主要战技指标.docx)rr rrarbrcr<>rrerr<>ror<>rtr<>r3rsrLrnrlr)r{r&r}r~r"r:r#rnr<>Zp_listr$<00>demandZ
parser_oneZ
p_one_listZxq_design_dictr<74>r,r,r/<00>create_mainTech<63>s, 

    z$GenerateControllerDG.create_mainTechN)(<28>__name__<5F>
__module__<EFBFBD> __qualname__r rprr]r<00>atomicrfr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rrrrr+r4r6r9r<r,r,r,r/r#s<> b 
      !          " !      & ; '  r#N)6<>datetimer<00> ninja_extrarrrZninja_extra.permissionsr<00>ninja_jwt.authenticationr<00> django.dbr<00>django.db.modelsr Zdocxtplr
<00>pathlibr <00>utils.chen_responser <00>apps.project.modelsr rrrZapps.dict.modelsrr<00>
utils.utilrrrrrZutils.chapter_tools.csx_chapterrr<00>django.shortcutsr<00>django.forms.modelsrZ#apps.createDocument.extensions.utilrZ.apps.createDocument.extensions.parse_rich_textr<00>+apps.createDocument.extensions.documentTimerZutils.path_utilsr<00>+apps.createSeiTaiDocument.extensions.loggerr Z%apps.createDocument.extensions.mixinsr!r#r,r,r,r/<00><module>s.