王庆喜+钟家民
摘要:基础数据是一个系统运行的前提条件,其作用举足轻重。为了保证系统的正常使用以及系统的灵活性和易维护性,实现了物流管理系统的基础数据管理功能。该功能模块采用Java、JSON技术以及Struts2、Hibernate和Spring三大框架。其实现简单,功能稳定可靠。
关键词:物流管理系统;基础数据;流程
中图分类号:TP315 文献标识码:A 文章编号:1009-3044(2017)06-0017-02
1 流程定义
通过ProcessdefinitionAction中的list方法,并在list方法中调用Service层中的listAllProcessDefinitions方法,查询所有的流程定义信息列表,并且将流程定义列表信息经过JSON序列化后显示在页面上,代码如下。
Map
List
.createProcessDefinitionQuery().orderAsc(ProcessDefinitionQuery.PROPERTY_VERSION).list();
for (ProcessDefinition processDefinition : processDefinitions) {
map.put(processDefinition.getKey(), processDefinition);
}
调用ProcessdefinitionAction的viewpng方法,并且在viewpng方法中还调用了Service层中的findPngByPDId方法,通过点击按钮,把id传递给了findPngByPDId方法,在findPngByPDId方法中通过id,查看流程定义的图片,代码如下。
ProcessDefinitionQuery processDefinitionQuery = processEngine.getRepositoryService()
.createProcessDefinitionQuery().deploymentId(deploymentid);
String pngName = processDefinitionQuery.uniqueResult().getImageResourceName();
InputStream in = processEngine.getRepositoryService().getResourceAsStream(deploymentid, pngName);
先要上传一个ZIP格式的流程定义,这个ZIP格式的流程定义包括一个XML文件和一张png格式的图片,然后经过ZIP打包。选择要发布的ZIP文件后,将数据提交到ProcessdefinitionAction中,然后调用该Action中的deploy方法,然后在deploy方法中又调用了Service层中的deployProcessDefinition方法,完成流程发布的功能。我想要强调的是以上流程发布要用到Struts2的上传组件,为了加强软件的健壮性,还应该在struts.xml配置文件中,明确的限定文件上传的格式以及其他要求。
2 收派标准
通过StandardAction中的list方法,并且在list方法中调用了Service层中的findPagigationData方法,查询所有的收派标准列表信息,并且将模块列表信息经过JSON序列化后显示在页面上,代码如下。
PageRequestBean pageRequestBean=new PageRequestBean();
PageResponseBean pageResponseBean=standardService.findPagigationData(pageRequestBean);
JSONSerializer jsonSerializer=new JSONSerializer();
jsonSerializer.exclude("*.class","*.role");
String resultJson=jsonSerializer.deepSerialize(pageResponseBean);
新增收派标准信息时,在填完收派标准信息后,信息将会提交给StandardAction中的save方法,然后在StandardAction中的save方法中就会调用Service层中的addStandard方法,添加新的收派标准信息,代码如下。
User existUser=(User)ServletActionContext.getRequest().getSession().getAttribute("existUser");
standard.setUser(existUser);
standardService.addStandard(standard);
修改收派标准信息时,获取到该条收派标准信息的id值,然后可以根据StandardAction中的view方法,接收一个参数id查询出该条收派標准的信息回显到修改页面上,然后填写修改后的收派标准信息,点击“保存”按钮,将数据提交给StandardAction中的update方法,然后在StandardAction中就会调用Service层中的updateStandard方法,来完成收派标准信息的修改。
在删除收派标准信息时,将该条信息的id传递给了StandardAction中的delete方法,然后在StandardAction中调用Service层中的deleteStandard方法来完成收派标准信息的删除,代码如下。
for(String id : ids){
Standard standard=standardDAO.findById(Standard.class, id);
standard.setDeltag("1");
}
3 定区管理
通过该Action中的list方法,并且在list方法中调用了Service层中的findPagigationData方法,查询所有的定区列表信息,并且将定区列表信息经过JSON序列化后显示在页面上。注意在定区信息列表中,不仅显示定区信息,还有把和定区对应的分区信息、取派员信息和关联的客户信息。这些功能都是通过主外建关联操作完成的功能,代码如下。
PageRequestBean pageRequestBean = new PageRequestBean();
pageRequestBean.setCriteria(detachedCriteria);
PageResponseBean pageResponseBean =decidedzoneService.findPagigationData(pageRequestBean);
JSONSerializer jsonSerializer = new JSONSerializer();
jsonSerializer.exclude("*.class","*.subareas","*.customers","*.standard");
String result = jsonSerializer.deepSerialize(pageResponseBean);
对于添加定区信息,跳转到添加定区页面,首先填写定区编号和名称,然后就是选择在定区范围内的取派负责人,然后选择要关联的分区信息,填写完毕,点击“保存”按钮,则数据就提交的DecidedzoneAction中,通过该Action中的save方法,并且在save方法中首先是关联分区,往定区数据表中添加所选分区的Id,然后再往定区中添加所选取派负责人的Id,然后在用Service层中的addDecidedzone方法,完成定区信息的添加。
对于定区信息的修改,进入DecidedzoneAction中,并在该Action中调用update方法,在update方法中,首先要查询到所对应的分区信息和取派负责人信息,关联客户信息,然后调用Service层中的updateDecidedzone方法,完成对定区信息的修改。
关联客户信息,进入了CustomerAction中,在CustomerAction中调用findnoassociation得到未关联的客户信息,调用findhasassociation得到已经关联过的客户的信息,然后用associationDecidedzone方法,为定区关联客户,并调用Service层中的association的方法,完成客户关联定区的功能。
4 结束语
本文对物流管理系统的基础数据管理进行开发,主要包括流程定义、收派标准和定区管理等基础数据的维护。功能实现采用S2SH三大框架和EasyUI框架,数据传递采用JSON字符串。功能模块运行稳定可靠,并且易于维护和扩展。
参考文献:
[1] 宁晓菊,陈艳,朱伟军,等. 基于RFID的工业园区SHIP智能物流管理系统[J]. 制造业自动化, 2014(2): 10-13.
[2] 李吟龙. 基于J2EE技术的高速公路物流管理系统[J]. 电子设计工程, 2016,24(19): 79-82.
[3] 屈展,李嬋. JSON在Ajax数据交换中的应用研究[J]. 西安石油大学学报:自然科学版,2011,26(1): 95-98.