1. 程式人生 > >項目一:第七天 CRM 和bos系統實現定區關聯客戶,關聯快遞員. 通過CXF框架實現

項目一:第七天 CRM 和bos系統實現定區關聯客戶,關聯快遞員. 通過CXF框架實現

TE tag CA alert ger 快遞員 datagrid png tor

定區關聯客戶

技術分享圖片

需求:為了快遞方便客戶下訂單(發快遞),派快遞員上門取件。 所以說需要讓定區關聯客戶(知道客戶屬於哪個定區),定區跟快遞員關系:多對多。知道讓哪個快遞員上門取件。

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、 設置comboboxurl發出請求-改為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框架實現