csq39 发表于 2017-9-15 20:08:50

单据状态转换通用方法

本帖最后由 csq39 于 2017-9-15 20:14 编辑

<ul class=" list-paddingleft-2"><li><p>构建状态图,为每一条状态转换事件设定方法名</p></li><li><p>构建单据类:在类路径io.raycom.business.support.documents中编写单据状态转换类,命名规则:单据名称+“Doc”,例如:ImportApplyDoc</p></li><li><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; vertical-align: baseline; word-wrap: break-word; word-break: break-word;">单据类编写规则</p><pre style="box-sizing: border-box; margin-top: 20px; margin-bottom: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; vertical-align: baseline; position: relative; overflow-x: auto; border-radius: 4px; background-color: rgb(247, 247, 247); text-shadow: none;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//填写单据相关属性
&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rdata.set(&quot;docTypeCode&quot;,&nbsp;&quot;rksq&quot;);//单据类型编码
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rdata.set(&quot;transactionTypeCode&quot;,&nbsp;&quot;biz&quot;);//事物处理类型
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rdata.set(&quot;codeType&quot;,&nbsp;&quot;importApplyStatus&quot;);//状态分类编码
&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;//填写单据相关属性
private&nbsp;static&nbsp;final&nbsp;String&nbsp;FINISH_STATES=&quot;ywc&quot;;
private&nbsp;static&nbsp;final&nbsp;String&nbsp;PROCESSING_STATES=&quot;clz&quot;;
private&nbsp;static&nbsp;final&nbsp;String&nbsp;FAIL_CONFIRM_STATES=&quot;wtg&quot;;
private&nbsp;static&nbsp;final&nbsp;String&nbsp;WAITING_HANDLE_STATES=&quot;dcl&quot;;
private&nbsp;static&nbsp;final&nbsp;String&nbsp;WAITING_CONFIRM_STATES=&quot;dqr&quot;;&nbsp;
&nbsp;//填写单据相关状态变化事件备注,对应状态图中每一步操作的说明
private&nbsp;static&nbsp;final&nbsp;String&nbsp;FINISH_REMARKS=&quot;入库申请单处理完成,生成通知单:&nbsp;${importAdviceMstId}&quot;;
private&nbsp;static&nbsp;final&nbsp;String&nbsp;PROCESSING_REMARKS=&quot;入库申请处理中,生成通知单:&nbsp;${importAdviceMstId}&quot;;</pre></li><ul style="list-style-type: square;" class=" list-paddingleft-2"><li><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; vertical-align: baseline; word-wrap: break-word; word-break: break-word;">编写构造方法</p><pre style="box-sizing: border-box; margin-top: 20px; margin-bottom: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; vertical-align: baseline; position: relative; overflow-x: auto; border-radius: 4px; background-color: rgb(247, 247, 247); text-shadow: none;">/**
&nbsp;*&nbsp;调用的update方法
&nbsp;*/public&nbsp;void&nbsp;updateDocStatusDo(RData&nbsp;rdata){
&nbsp;&nbsp;utplDocDao.updateImportApplyStatus(rdata);
}public&nbsp;ImportApplyDoc(String&nbsp;importApplyMstId)&nbsp;{&nbsp;&nbsp;super(importApplyMstId);
}</pre></li><li><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; vertical-align: baseline; word-wrap: break-word; word-break: break-word;">编写事件处理方法</p><pre style="box-sizing: border-box; margin-top: 20px; margin-bottom: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; vertical-align: baseline; position: relative; overflow-x: auto; border-radius: 4px; background-color: rgb(247, 247, 247); text-shadow: none;">根据情况决定是否需要参数&nbsp;public&nbsp;void&nbsp;finished(String&nbsp;importAdviceMstId)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;rdata.set(&quot;importAdviceMstId&quot;,&nbsp;&nbsp;importAdviceMstId);//content使用
&nbsp;&nbsp;&nbsp;&nbsp;rdata.set(&quot;status&quot;,&nbsp;FINISH_STATES);
&nbsp;&nbsp;&nbsp;&nbsp;rdata.set(&quot;remarks&quot;,&nbsp;FreeMarkers.renderString(FINISH_REMARKS,&nbsp;rdata));
&nbsp;&nbsp;&nbsp;&nbsp;updateDocStatus(rdata);
}</pre></li><li><p>设置基本属性</p></li></ul><li><p>编写dao方法,在UtplDocDao.java和UtplDocDao.xml中编写对应状态更新sql</p></li><li><p>在类DocHelperon中编写获取方法,例如:</p></li><p><br/></p><pre style="box-sizing: border-box; margin-top: 20px; margin-bottom: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; vertical-align: baseline; position: relative; overflow-x: auto; border-radius: 4px; background-color: rgb(247, 247, 247); text-shadow: none; color: rgb(49, 49, 49); font-size: 14px;">public&nbsp;static&nbsp;ImportApplyDoc&nbsp;getImportApplyDocById(String&nbsp;importApplyMstId){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;return&nbsp;new&nbsp;ImportApplyDoc(importApplyMstId);
&nbsp;&nbsp;&nbsp;&nbsp;}</pre><p>附:使用方法</p><p>DocHelper.getImportApplyDocById(importApplyMstId).finished(importAdviceMstId);<br/></p></ul>
页: [1]
查看完整版本: 单据状态转换通用方法