单据状态转换通用方法
本帖最后由 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;"> //填写单据相关属性
{
rdata.set("docTypeCode", "rksq");//单据类型编码
rdata.set("transactionTypeCode", "biz");//事物处理类型
rdata.set("codeType", "importApplyStatus");//状态分类编码
}
//填写单据相关属性
private static final String FINISH_STATES="ywc";
private static final String PROCESSING_STATES="clz";
private static final String FAIL_CONFIRM_STATES="wtg";
private static final String WAITING_HANDLE_STATES="dcl";
private static final String WAITING_CONFIRM_STATES="dqr";
//填写单据相关状态变化事件备注,对应状态图中每一步操作的说明
private static final String FINISH_REMARKS="入库申请单处理完成,生成通知单: ${importAdviceMstId}";
private static final String PROCESSING_REMARKS="入库申请处理中,生成通知单: ${importAdviceMstId}";</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;">/**
* 调用的update方法
*/public void updateDocStatusDo(RData rdata){
utplDocDao.updateImportApplyStatus(rdata);
}public ImportApplyDoc(String importApplyMstId) { 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;">根据情况决定是否需要参数 public void finished(String importAdviceMstId) {
rdata.set("importAdviceMstId", importAdviceMstId);//content使用
rdata.set("status", FINISH_STATES);
rdata.set("remarks", FreeMarkers.renderString(FINISH_REMARKS, rdata));
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 static ImportApplyDoc getImportApplyDocById(String importApplyMstId){
return new ImportApplyDoc(importApplyMstId);
}</pre><p>附:使用方法</p><p>DocHelper.getImportApplyDocById(importApplyMstId).finished(importAdviceMstId);<br/></p></ul>
页:
[1]