物流基础数据的功能实现

时间:2022-10-21 11:14:08

物流基础数据的功能实现

摘要:基础数据是一个系统运行的前提条件,其作用举足轻重。为了保证系统的正常使用以及系统的灵活性和易维护性,实现了物流管理系统的基础数据管理功能。该功能模块采用Java、JSON技术以及Struts2、Hibernate和Spring三大框架。其实现简单,功能稳定可靠。

关键词:物流管理系统;基础数据;流程

中图分类号:TP315 文献标识码:A 文章编号:1009-3044(2017)06-0017-02

1 流程定义

通过ProcessdefinitionAction中的list方法,并在list方法中调用Service层中的listAllProcessDefinitions方法,查询所有的流程定义信息列表,并且将流程定义列表信息经过JSON序列化后显示在页面上,代码如下。

Map map = new HashMap();

List processDefinitions = processEngine.getRepositoryService()

.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.

上一篇:浅谈分布式数据库系统的设计与优化 下一篇:基于ZigBee网络的AODV路由改进算法