项目一:第七天 CRM 和bos系统实现定区关联客户,关联快递员. 通过CXF框架实现
定区关联客户

需求:为了快递方便客户下订单(发快递),派快递员上门取件。 所以说需要让定区关联客户(知道客户属于哪个定区),定区跟快递员关系:多对多。知道让哪个快递员上门取件。
将CRM系统中,客户表中逻辑外键c_fixed_area_id 设置为定区ID


实现步骤:
第一步:在服务端CRM系统扩展方法(CXF服务端)
***注意服务端扩展新增方法后需要自测
第二步:在客户端BOS中调用CRM中查询客户方法-展示客户记录
***判断选中定区记录数
***发送ajax请求获取客户记录
***将返回客户记录(json数组)遍历展示在下拉框中
第三步:实现数据左右移动
***通过js代码实现
第四步:在CRM中扩展客户关联定区方法
第五步:在BOS中调用CRM完成客户关联定区
(1),在CXF的服务端的CRM编写 未关联到定区客户数据, 和关联到某个定区的客户数据,通过cmd黑窗口生成 刚才写的两个代码. 将生成的接口代码复制到Bos系统的service层.


(2) 修改前台页面.
通过datagrid判断只能选中一条, 使用$.post(
${pageContext.request.contextPath}/fixedAreaAction_findNotAssociation.action",null,function(data){)
for(var i= 0;i<data.length;i++){
var id = data[i].id;
var name = data[i].username+"("+data[i].address +")";
//给左侧下拉框中追加option
$("#noassociationSelect").append('<option value="'+id+'">'+name+'</option>')
}
//发送请求获取关联到当前定区的客户记录--提交定区id
$.post("${pageContext.request.contextPath}/fixedAreaAction_findHasAssociationByFixedAreaId.action",{"id":rows[0].id},function(data){
//data返回客户数据;返回json数组;遍历数组中内容
for(var i= 0;i<data.length;i++){
var id = data[i].id;
var name = data[i].username+"("+data[i].mobilePhone+")";
//给左侧下拉框中追加option
$("#associationSelect").append('<option value="'+id+'">'+name+'</option>')
}
})
$('#customerWindow').window('open');
在Action中注入CRM的CustomerService 执行两个方法

1.1 下拉框数据左右移动效果
<script type="text/javascript">
$(function(){
$("#toRight").click(function(){
//目的:给右侧下拉框追加选型option,来源于左侧选中option选型
$("#associationSelect").append($("#noassociationSelect option:selected"));
})
$("#toLeft").click(function(){
//目的:给右侧下拉框追加选型option,来源于左侧选中option选型
$("#noassociationSelect").append($("#associationSelect option:selected"));
})
//给左侧select元素增加双击事件
$("#noassociationSelect").dblclick(function(){
//目的:给右侧下拉框追加选型option,来源于左侧选中option选型
$("#associationSelect").append($("#noassociationSelect option:selected"));
})
$("#associationSelect").dblclick(function(){
$("#noassociationSelect").append($("#associationSelect option:selected"));
})
})
</script>
1.1 提交表单完成定区关联客户
1、 给关联客户绑定事件
a) 给隐藏域赋值:定区id
b) 给下拉框设置选中效果


1.1 完成定区关联客户
1.1.1 在CRM中扩展方法定区关联客户
定区关联客户:关联逻辑CRM中实现;
Service:注意:service开启事务管理



注意:服务端如果方法名称,参数,返回类型如果没变,不需要重新生成本地代码。
新增方法/修改方法参数/方法名称/返回类型,必须重新发布服务,重新生成本地代码
1.1.1 定区action远程调用CRM完成定区关联客户
后台管理系统中定区action中添加定区关联客户方法

1 定区关联快递员
定区-快递员:多对多关联;向中间表添加数据;
需求:给定区分配负责快递员。 将来某个客户发送快递;现在已经完成定区关联客户(客户属于哪个定区),接着完成定区关联快递员。
定区-快递员:多对多关联向中间表添加记录。向定区快递员关系表新增记录
收派时间-快递员:一对多关联更新子表(多方)外键。更新快递员表中收派时间外键字段。
1、未删除,未关联到当前定区快递员记录
2、收派时间-简化处理

第一步:页面展示数据
**以下拉框展示在职并且未关联到当前定区快递员记录
**展示收派时间记录—简化处理
第二步:提交表单 提交定区id,快递员id,收派时间id
第三步:服务器端接收参数 1、快递员关联定区(新增) 2、快递员关联收派时间(更新)
1.1 使用combobox展示快递员数据
定区是物流公司进行物流分配基本单位,快递员负责定区。定区关联快递员,谁来管理某个定区。
下拉框中数据:未删除快递员数据:查询deltag标识等于 null
1、 页面fixed_area.jsp
2、 设置combobox的url发出请求-改为js方式创建下拉列表
{
id : 'button-association-courier',
text : '关联快递员',
iconCls : 'icon-sum',
handler : function(){
// 判断是否已经选中了一个定区,弹出关联快递员窗口
var rows = $("#grid").datagrid('getSelections');
if(rows.length==1){
// 只选择了一个定区
//通过js方式创建下拉列表
/* <input data-options="ditable:false, url:'${pageContext.request.contextPath}/courierAction_listajax.action?fixedAreaId=',valueField:'id',textField:'name'"
type="text" name="courierId" class="easyui-combobox" required="true" /> */
$("#courierId").combobox({
url:'${pageContext.request.contextPath}/courierAction_listajax.action?fixedAreaId='+rows[0].id,
valueField:'id',
textField:'name',
editable:false
});
// 弹出定区关联快递员 窗口
$("#courierWindow").window('open');
}else{
// 没有选中定区,或者选择 了多个定区
$.messager.alert("警告","关联快递员,只能(必须)选择一个定区","warning");
}
}
}
3、 在courierAction中添加查询未删除快递员,返回json的数组数据

Dao:
//第一步子查询:根据定区id 查询该定区下现在已经负责快递员id
@Query(nativeQuery=true, value="select * from t_courier c where c.c_deltag = '0' "
+ "and c.c_id not in(select fc.c_courier_id from t_fixedarea_courier fc where fc.c_fixed_area_id = ?)")
List<Courier> listajax(String fixedAreaId);
1、 数据展示
让定区关联快递员,让快递员关联收派时间!
1.1 展示收派时间
收派时间简化处理:上班时间id在页面中定死


1.1 提交快递员表单
1、 给按钮绑定单击事件


1.1 服务端执行定区关联快递员
1、 在定区Action中添加定区关联快递员的方法


项目一:第七天 CRM 和bos系统实现定区关联客户,关联快递员. 通过CXF框架实现的更多相关文章
- JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户
		
1 学习计划 1.定区关联客户 n 完善CRM服务中的客户查询方法 n 在BOS项目中配置代理对象远程调用crm服务 n 调整定区关联客户页面 n 实现定区关联客户 2.查看定区中包含的分区 n 页面 ...
 - BOS中定区关联客户
		
1. 首先发布crm服务 第一步:创建动态的web项目crm,导入hessian的jar 第二步:创建一个crm数据库和t_customer表 第三步:在crm项目的web.xml中配置spring的 ...
 - 仿LOL项目开发第七天
		
仿LOL项目开发第七天 by 草帽 不知不觉已经写到了第七篇这种类型的博客,但是回过头看看之前写的,发现都只能我自己能看懂. 我相信在看的童鞋云里雾里的,因为我基本上没怎么详细讲一个脚本怎么用?但是你 ...
 - 项目一:第六天 WebService写接口 和CXF框架
		
1 课程计划 1. webService入门(了解) 2. 基于jdk1.7开发webservice服务(了解) 3. Apache CXF框架入门(掌握) 4. 基于CXF框架搭建CRM系统(掌握) ...
 - Apache shiro集群实现 (七)分布式集群系统下---cache共享
		
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
 - 项目一:在线下单(补充) activeMQ使用(重点) 重构客户注册功能,发短信功能分离
		
1 课程计划 1.在线下单(补充) 2.activeMQ使用(重点) n 简介和安装 n activeMQ入门案例 n spring整合activeMQ应用 3.重构客户注册功能,发短信功能分离 n ...
 - 项目一:第五天 1、区域数据(pinyin4j-简码,城市编码) 2、Web层代码重构(model对象,分页代码提取) 3、区域分页查询 3、分区添加功能 4、定区管理管理-添加,分页
		
Service: /** * @Description: 1.保存定区 2.让分区关联定区 * 对象三种状态 1.持久态(被session管理对象-一级缓存中有对象) 2.托管态(有OID标识,数据 ...
 - python接口测试-项目实践(七)脚本优化
		
七 脚本优化:重复代码的提取成函数:与项目接口相关的都封装到一个类中:添加手工验证脚本,增加输入值的判断逻辑 将所有与该项目接口相关的封装成类 class ProjectApi: #3个数据源接口 d ...
 - 从头開始写项目Makefile(七):统一目标输出文件夹
		
[版权声明:转载请保留出处:blog.csdn.net/gentleliu. Mail:shallnew at 163 dot com] 上一节我们把规则单独提取出来,方便了Makefile的 ...
 
随机推荐
- HDU - 1728 逃离迷宫  【BFS】
			
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1728 思路 BFS 一开始 从开始位置 往四周走 如果能走的话 这个时候 转弯次数都是0 我们的标记不 ...
 - Data Structure Array: Find the two numbers with odd occurrences in an unsorted array
			
http://www.geeksforgeeks.org/find-the-two-numbers-with-odd-occurences-in-an-unsorted-array/ #include ...
 - P4773 红鲤鱼与绿鲤鱼
			
P4773 红鲤鱼与绿鲤鱼 暑假比赛的一个水题 总情况数:\(\dfrac{(a+b)!}{a!b!}\) 就是\(a+b\)条鲤鱼中选\(a\) or \(b\)的情况 反正我们会用完鲤鱼,则红鲤鱼 ...
 - 20145229吴姗珊 《Java程序设计》两天小总结
			
20145229吴姗珊 <Java程序设计>两天小总结 教材学习内容总结 第十章 输入\输出 1.java将输入\输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象 2.从应用程序 ...
 - Centos7 配置yum源 安装epel
			
一.什么是epel如果既想获得 RHEL 的高质量.高性能.高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages ...
 - Storm- 使用Storm实现累积求和的操作
			
需求:1+2+3+... = ??? 实现方案: Spout发出数字作为input 使用Bolt来处理业务逻辑:求和 将结果输出到控制台 拓扑设计:DataSourceSpout -->SumB ...
 - linux shell编程(三) if 和 for
			
if 条件判断: 单分支的if语句if 判断条件: then statement1fi双分支的if语句if 判断条件;then statement1 statementelse statement3f ...
 - 分享知识-快乐自己:HTTP 响应码
			
状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在 ...
 - 在接口中的静态方法来获取model的实例对象
			
直接先上代码: 接口代码 abstract class BaseModel { /** * @var null */ protected static $_instances = Array(); / ...
 - AMD模块定义规范
			
AMD 即Asynchronous Module Definition,中文名是“异步模块定义”的意思.它是一个在浏览器端模块化开发的规范,服务器端的规范是CommonJS. 模块将被异步加载,模 ...