您的位置:首页 > 其它

带条件分页查询的主数据列表(施工单位为例)

2016-11-26 15:41 519 查看
1 crm_construction_info数据库设计表结构



2 svc  main/resources中自己弄个ConstructionUnitInfo.map.xml文件 映射对应的数据库设计表

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.paas.model.crm.ConstructionUnitInfo">

<resultMap id="ConstructionUnitInfo" type="com.paas.model.crm.ConstructionUnitInfo">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result column="unit_code" property="unitCode" jdbcType="VARCHAR"/>
<result column="unit_name" property="unitName" jdbcType="VARCHAR"/>
<result column="unit_short_name" property="unitShortName" jdbcType="VARCHAR"/>
<result column="unit_contact_id" property="unitContactId" jdbcType="VARCHAR"/>
<result column="unit_company_id" property="unitCompanyId" jdbcType="VARCHAR"/>
<result column="remark" property="remark" jdbcType="LONGVARCHAR"/>
<result column="unit_status" property="unitStatus" jdbcType="INTEGER"/>
<result column="process_status" property="processStatus" jdbcType="INTEGER"/>
<result column="create_id" property="createId" jdbcType="VARCHAR"/>
<result column="create_date" property="createDate" jdbcType="TIMESTAMP"/>
<result column="modify_id" property="modifyId" jdbcType="VARCHAR"/>
<result column="modify_date" property="modifyDate" jdbcType="TIMESTAMP"/>
<result column="status" property="status" jdbcType="INTEGER"/>
</resultMap>
<sql id="Column_List">
id,
unit_code,
unit_name,
unit_short_name,
unit_contact_id,
unit_company_id,
remark,
unit_status,
process_status,
create_id,
create_date,
modify_id,
modify_date,
status
</sql>
<sql id="dynamicWhere">
<where>
status=0
<choose>
<when test="@Ognl@isNotEmpty(processStatus)">
and process_status = #{processStatus}
</when>
<otherwise>
and process_status in (40,41,42)
</otherwise>
</choose>
<if test="@Ognl@isNotEmpty(unitCode)"> AND unit_code = #{unitCode}</if>
<if test="@Ognl@isNotEmpty(unitStatus)"> AND unit_status = #{unitStatus}</if>
<if test="@Ognl@isNotEmpty(unitName)"> AND unit_name like CONCAT('%',#{unitName},'%')</if>
<if test="@Ognl@isNotEmpty(unitShortName)"> AND unit_short_name like CONCAT('%',#{unitShortName},'%')</if>
<if test="queryRange==0 and @Ognl@isNotEmpty(unitCompanyId)"> AND unit_company_id = #{unitCompanyId}</if>
<if test="queryRange==1 and @Ognl@isNotEmpty(unitCompanyId)"><![CDATA[AND unit_company_id <> #{unitCompanyId}]]></if>
</where>
</sql>
<!-- 获取施工单位 -->
<select id="getAll" resultMap="ConstructionUnitInfo">
select
<include refid="Column_List"/>
from crm_construction_unit
<include refid="dynamicWhere"/>
order by create_date desc
</select>

</mapper>


3   api main  com.paas.model.crm.ConstructionUnitInfo是对应的model文件  model文件数据包含设计表里面所有的数据而且还可以多出别的字段  对应的model如下
package com.paas.model.crm;

import java.util.List;

import com.paas.common.model.BaseModel;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

/**
*
* @Title: ConstructionUnitInfo
* @Description: TODO(这里用一句话描述这个类的作用)
* @Copyright: Copyright (c) 2015-2020
* @Company:CCS
* @author libiao
* @date 2016年11月25日 下午4:09:08
*
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class ConstructionUnitInfo extends BaseModel{

private static final long serialVersionUID = 1L;

/***
* 主键id
*/
private String id;

/***
* 施工单位编码
*/
private String unitCode;

/***
* 施工单位名称
*/
private String unitName;

/***
*
* 施工单位简称
*/
private String unitShortName;

/***
* 联系人ID
*/
private String unitContactId;
/**
* 默认联系人名称
*/
private String contactName;

/**
* 默认联系人电话
*/
private String contactPhone;

/***
* 施工单位公司id
*/
private String unitCompanyId;
/**
* 公司名称
*/
private String unitCompanyName;

/**
* 录入公司:0,本公司,1,全国
*/
private String queryRange;

/***
* 备注
*/
private String remark;

/**
* 施工单位状态:0,正常,1冻结
*/
private String unitStatus;

/**
* 流程状态:20,审批中,30驳回,40审批通过
*/
private String processStatus;

/**
* 附件
*/
private List<ProjectDoc> unitDoc;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getUnitCode() {
return unitCode;
}

public void setUnitCode(String unitCode) {
this.unitCode = unitCode;
}

public String getUnitName() {
return unitName;
}

public void setUnitName(String unitName) {
this.unitName = unitName;
}

public String getUnitShortName() {
return unitShortName;
}

public void setUnitShortName(String unitShortName) {
this.unitShortName = unitShortName;
}

public String getUnitContactId() {
return unitContactId;
}

public void setUnitContactId(String unitContactId) {
this.unitContactId = unitContactId;
}

public String getUnitCompanyId() {
return unitCompanyId;
}

public void setUnitCompanyId(String unitCompanyId) {
this.unitCompanyId = unitCompanyId;
}

public String getRemark() {
return remark;
}

public void setRemark(String remark) {
this.remark = remark;
}

public String getUnitStatus() {
return unitStatus;
}

public void setUnitStatus(String unitStatus) {
this.unitStatus = unitStatus;
}

public String getProcessStatus() {
return processStatus;
}

public void setProcessStatus(String processStatus) {
this.processStatus = processStatus;
}

public List<ProjectDoc> getUnitDoc() {
return unitDoc;
}

public void setUnitDoc(List<ProjectDoc> unitDoc) {
this.unitDoc = unitDoc;
}

public String getContactName() {
return contactName;
}

public void setContactName(String contactName) {
this.contactName = contactName;
}

public String getContactPhone() {
return contactPhone;
}

public void setContactPhone(String contactPhone) {
this.contactPhone = contactPhone;
}

public String getUnitCompanyName() {
return unitCompanyName;
}

public void setUnitCompanyName(String unitCompanyName) {
this.unitCompanyName = unitCompanyName;
}

public String getQueryRange() {
return queryRange;
}

public void setQueryRange(String queryRange) {
this.queryRange = queryRange;
}

}


basemodel里面包含了下面的五个对应字段
      createId
            createDate
      modifyId              modifyDate                               status

4 对应的Dao层 svc  main    dao
ConstructionUnitInfoDao.java
@Repository
public class ConstructionUnitInfoDao extends BaseDao<ConstructionUnitInfo>{

@Override
public Class<ConstructionUnitInfo> getEntityClass() {
return ConstructionUnitInfo.class;
}

}

5 再到实现层  svc   main  impl

ConstructionUnitInfoServiceImpl.java

package com.paas.service.crm.impl;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.paas.common.db.IEntityDao;
import com.paas.common.page.PageBean;
import com.paas.common.service.GenericService;
import com.paas.common.util.StringUtil;
import com.paas.common.util.UniqueIdUtil;
import com.paas.common.web.ResultMessage;
import com.paas.dao.crm.ConstructionInfoDao;
import com.paas.dao.crm.ConstructionUnitInfoDao;
import com.paas.dao.crm.ServiceContentDao;
import com.paas.model.crm.ConstructionInfo;
import com.paas.model.crm.ConstructionUnitInfo;
import com.paas.model.crm.ServiceContent;
import com.paas.model.crm.vo.ConstructionInfoVO;
import com.paas.model.ct.UniqueFlowNumber;
import com.paas.model.sys.User;
import com.paas.service.crm.IConstructionInfoService;
import com.paas.service.crm.IConstructionUnitInfoService;
import com.paas.service.ct.IUniqueFlowNumberService;

/***
*
* @Title: ConstructionInfoServiceImpl
* @Description: TODO(施工单位信息业务实现类)
* @Copyright: Copyright (c) 2015-2020
* @Company:CCS
* @author sunwenbo
* @date 2015年10月30日 下午9:01:52
*
*/
@Service("constructionUnitInfoService")
public class ConstructionUnitInfoServiceImpl extends GenericService<ConstructionUnitInfo,String>  implements IConstructionUnitInfoService {

/***
* 施工单位DAO
*/
@Resource
private ConstructionUnitInfoDao constructionUnitInfoDao;

@Resource
private IUniqueFlowNumberService uniqueFlowNumberService;

@Override
protected IEntityDao<ConstructionUnitInfo,String> getEntityDao(){
return constructionUnitInfoDao;
}
/***
* (非 Javadoc)
* <p>Title: list</p>
* <p>Description:获取施工小队分页数据 </p>
* @param pageBean
* @return
* @see com.paas.service.crm.IConstructionInfoService#list(com.paas.common.page.PageBean)
*
*
*/
e70e

@Override
public PageBean<ConstructionUnitInfo> getAllPage(
PageBean<ConstructionUnitInfo> pageBean,User user) {
try {
Map<String,Object> map =  (Map<String, Object>) pageBean.getData()
.get(0);
List<ConstructionUnitInfo> data = constructionUnitInfoDao.getBySqlKey("getAll", map,pageBean);
pageBean.setData(data);
return pageBean;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException("分页错误");
}

}

}


6 对应的接口 api  main  service

IConstructionUnitInfoService.java

 

package com.paas.service.crm;

import com.paas.common.page.PageBean;
import com.paas.common.service.BaseService;
import com.paas.common.web.ResultMessage;
import com.paas.model.crm.ConstructionInfo;
import com.paas.model.crm.ConstructionInfo;
import com.paas.model.crm.ConstructionUnitInfo;
import com.paas.model.crm.vo.ConstructionInfoVO;
import com.paas.model.sys.User;

/***
*
* @Title: IConstructionInfoService
* @Description: TODO(施工小队信息业务接口类)
* @Copyright: Copyright (c) 2015-2020
* @Company:CCS
* @author sunwenbo
* @date 2015年10月30日 下午8:39:57
*
*/
public interface IConstructionUnitInfoService extends BaseService<ConstructionUnitInfo,String>{
/***
*
* @Title: list
* @Description: TODO(获取分页数据)
* @param @param pageBean
* @param @return    设定参数
* @return PageBean<ConstructionInfo>    返回类型
* @throws
*/
public PageBean<ConstructionUnitInfo> getAllPage(PageBean<ConstructionUnitInfo> pageBean,User user);

}


 7  web中的 src     main   java   controller

ConstructionUnitInfoController.java

package com.paas.pms.crm.controller;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.paas.common.annotion.Action;
import com.paas.common.page.PageBean;
import com.paas.common.util.BeanUtils;
import com.paas.common.web.ResultMessage;
import com.paas.common.web.controller.BaseController;
import com.paas.common.web.util.ContextUtil;
import com.paas.model.crm.ConstructionInfo;
import com.paas.model.crm.ConstructionUnit;
import com.paas.model.crm.ConstructionUnitInfo;
import com.paas.model.crm.vo.ConstructionInfoVO;
import com.paas.model.sys.User;
import com.paas.service.crm.IConstructionInfoService;
import com.paas.service.crm.IConstructionUnitInfoService;

/***
*
* @Title: ConstructionInfoController
* @Description: TODO(施工小队前台)
* @Copyright: Copyright (c) 2015-2020
* @Company:CCS
* @author sunwenbo
* @date 2015年11月3日 上午10:46:04
*
*/
@Controller
@RequestMapping("paas/crm/constructionUnitInfo")
public class ConstructionUnitInfoController extends BaseController{

/***
* 施工小队
*/
@Autowired
private IConstructionUnitInfoService constructionunitInfoService;

@RequestMapping("list")
@ResponseBody
@Action(description = "施工单位分页列表")
public PageBean<ConstructionUnitInfo> list(HttpServletRequest request,@RequestBody PageBean<ConstructionUnitInfo> pageBean) throws Exception{
try {
User user = new User();
Map<String,Object> map = (Map<String, Object>) pageBean.getData().get(0);
if(BeanUtils.isNotEmpty(map.get("queryRange"))){
user = (User) ContextUtil.getCurrentUser();
}
pageBean=(PageBean) constructionunitInfoService.getAllPage(pageBean,user);
return pageBean;
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}

}


8  前后端交互的    main  webapp  对应模块  里面的service

constructionUnitInfoService.js

(function(){

var constructionUnitApp = angular.module("constructionUnitApp");

constructionUnitApp.factory("constructionUnitInfoService",["$http",function($http){

/**
* 施工单位主列表查询
*/
function getUnitPageBean(queryObj,callBack,errorCallback){
$http.post("/crm/paas/crm/constructionUnitInfo/list.do",{
pageSize:queryObj.pageSize,
currentPage: queryObj.currentPage,
data:queryObj.data
}).success(function (result) {
if (callBack) {
callBack(result);
}
}).error(errorCallback);
};

return {

getUnitPageBean:function(queryObj,callBack,errorCallback){
getUnitPageBean(queryObj,callBack,errorCallback);
},

};

}]);

})();


9  main  webapp  对应模块  里面的controller

constructionUnitInfoListCtrl.js

(function(){

var constructionUnitApp = angular.module("constructionUnitApp");

constructionUnitApp.controller("constructionUnitInfoListCtrl",["$scope","$location","$filter","constructionUnitInfoService",function($scope,$location,$filter,constructionUnitInfoService){

var view = {
company:"",
totalPage: 0,
totalCount: 0,
pageSize:5,
currentPage: 1,
searchData :[{unitName:"" ,unitCode:"",unitShortName:"",unitStatus:"" ,queryRange :""}],
showTaskChooseUserDialog:false,
switchPage: function (currentPage, pageSize) {
$scope.showMask = true;
constructionUnitInfoService.getUnitPageBean({
pageSize: pageSize,
currentPage: currentPage,
data : view.searchData
}, function (result) {
view.items = result.data;
view.items.forEach(function(value,index){
value.number = index+1;
value.createDate = $filter('date')(value.createDate,'yyyy-MM-dd');
});
view.currentPage = result.currentPage;
view.totalPage = result.totalPage;
view.totalCount = result.totalCount;
$scope.showMask = false;
});
}
};

$scope.view = view;

/**
* 清空查询条件
*/
$scope.clear = function(){
$scope.view.searchData[0].unitName = "";
$scope.view.searchData[0].unitCode = "";
$scope.view.searchData[0].unitShortName = "";
$scope.view.searchData[0].unitStatus = "";
$scope.view.searchData[0].queryRange = "";
};

/**
* 添加按钮跳转
*/
$scope.newOrUpdate = function(){
location.href="constructionUnitAdd.html";
};

/**
* 激活或冻结施工单位
*/
$scope.activeOrFreeze = function(item){
$scope.item = item;
$scope.prompt = "";
if(item.unitStatus=='0'){
$scope.prompt = "冻结";
$scope.bpmCode = "CRM040002";
}else if(item.unitStatus=='1'){
$scope.prompt = "激活";
$scope.bpmCode = "CRM040003";
}
pms.confirm("是否要"+$scope.prompt+"该施工单位?",function(result){
if(result=='yes'){
$scope.$apply(function(){
$scope.showMask = true;
$scope.view.showTaskChooseUserDialog = true;
$scope.showMask = false;
});
}else{
return false;
}
});

};

/**
* 实际提交方法
*/
$scope.submitSave = function(){
$scope.showMask = true;
constructionUnitService.activeOrFreeze($scope.item,function(result){
$scope.showMask = false;
if(result.result==1){
pms.alert(result.message,function(){
view.switchPage(view.currentPage,view.pageSize);
});
}else{
pms.warn("施工单位"+$scope.prompt+"流程创建失败!"+result.message);
}
});
}

/**
* 流程选择人员弹出框回调函数
* @param returnNodes, returnUsers
*/
$scope.selectProcessUser = function (returnNodes, returnUsers) {
if(returnNodes.length > 0 && returnUsers.length > 0){
$scope.item.lastDestTaskIds = returnNodes;//节点ID数组
$scope.item.lastDestTaskUids = returnUsers;//人员信息数组
$scope.submitSave(); // 此方法需要修改为自己添加的第二个提交后台处理的方法
}else if(returnNodes.length > 0 && returnUsers.length == 0){
view.showMask = false;
} else{
$scope.submitSave(); // 此方法需要修改为自己添加的第二个提交后台处理的方法
view.showMask = false;
}
};

$scope.init = function(){

//获取当前登录用户公司
constructionUnitService.getOrgInfo(function(result){
if(result){
$scope.view.company = result.companyId;
}
},function(errorData){
pms.warn(errorData.message);
});
$scope.view.switchPage(1,5);
};

$scope.init();

/**
* 列表跳转详情
*/
$scope.listDetail=function(id){
window.open("constructionUnitDetail.html#?id="+id,"","top=0,left=0,height="+(screen.availHeight-65)+",width="+(screen.availWidth-15)+",fullscreen,status=no,toolbar=no,menubar=no,location=no,resizable=1,scrollbars=1",true);
}

}]);

})();


10  展示页面

constructionUnitInfoList.html

<html ng-app="constructionUnitApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>施工单位管理</title>
<!--bootstrap CSS-->
<link rel="stylesheet" type="text/css" href="../dist/css/bootstrap.css">
<!--fonts CSS-->
<link rel="stylesheet" type="text/css" href="../dist/css/font-awesome.css">
<link rel="stylesheet" type="text/css" href="../css/layout.css">
<link rel="stylesheet" type="text/css" href="../css/style.css">

<script src="../bower_components/jquery/dist/jquery.min.js"></script>
<script src="../bower_components/angular/angular.min.js"></script>
<script src="../bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="../commonjs/basePath.jsp"></script>
<script src="../commonjs/base.min.js"></script>
<script src="../commonjs/dialog.js"></script>
<!--施工单位管理JS-->
<script src="script/controllers/constructionUnitAddCtrl.js"></script>
<script src="script/controllers/constructionUnitInfoListCtrl.js"></script>
<script src="script/services/constructionUnitInfoService.js"></script>
</head>
<body ng-controller="constructionUnitInfoListCtrl">
<div class="block10"></div>
<div class="zt-top">
<div class="zt-toolbar">
<div class="toolbar">
<button class="btn btn-default" ng-click="newOrUpdate()"><i class="fa fa-plus"></i> 添 加</button>
<button class="btn btn-default" ng-click="clear()"><i class="fa fa-trash-o"></i> 清 空</button>
<button class="btn btn-default" ng-click="view.switchPage(1,5)"><i class="fa fa-search"></i> 查 询</button>
</div>
</div>
</div>
<div class="zt-search" slide-toggles>
<div class="ser_tit">
<div class="title">查询条件</div>
<div class="drop"><a>展开</a></div>
</div>
<div class="ser_bolck" id="contactSearch">
<form id="searchForm" method="post" action="#">
<ul class="ser_ul">
<li>
<span class="ser_tit">施工单位名称:</span>
<input  class="inputText" ng-model="view.searchData[0].unitName" type="text">
</li>
<li>
<span class="ser_tit">施工单位编码:</span>
<input  class="inputText" ng-model="view.searchData[0].unitCode" type="text">
</li>
<li>
<span class="ser_tit">施工单位简称:</span>
<input  class="inputText" ng-model="view.searchData[0].unitShortName" type="text">
</li>
<li>
<span class="ser_tit">施工单位状态:</span>
<select class="form-control-select" ng-model="view.searchData[0].unitStatus">
<option value="" selected="selected">全部</option>
<option value="0">正常</option>
<option value="1">冻结</option>
</select>
</li>
<li>
<span class="ser_tit">录入公司:</span>
<select class="form-control-select" ng-model="view.searchData[0].queryRange">
<option value="" selected="selected">全部</option>
<option value="0">本公司</option>
<option value="1">全国</option>
</select>
</li>
</ul>

</form>
</div>
</div>

<div class="zt-body">
<div class="table-scroll">
<table class="table table-bordered table-striped table-hover" id="constructionUnitList">
<thead class="center txt-black">
<tr>
<th>序号</th>
<th>施工单位名称</th>
<th>施工单位编码</th>
<th>施工单位简称</th>
<th>录入公司</th>
<th>录入时间</th>
<th>施工单位状态</th>
<th>审批状态</th>
<th>联系人</th>
<th>联系电话</th>
<th>操作</th>
</tr>
</thead>

<tbody>
<tr ng-repeat="item in view.items" style="text-align:center">
<td>
{{item.number}}
</td>
<td>
<a ng-click="listDetail(item.id)">{{item.unitName}}</a>
</td>
<td>
{{item.unitCode}}
</td>
<td>
{{item.unitShortName}}
</td>
<td>
{{item.unitCompanyName}}
</td>
<td>
{{item.createDate}}
</td>
<td>
<span ng-if="item.unitStatus==0">正常</span>
<span ng-if="item.unitStatus==1">冻结</span>
</td>
<td>
<span ng-if="item.processStatus==20">审批中</span>
<span ng-if="item.processStatus==30">驳回</span>
<span ng-if="item.processStatus==40">审批通过</span>
<span ng-if="item.processStatus==41">冻结审批中</span>
<span ng-if="item.processStatus==42">激活审批中</span>
</td>
<td>
{{item.contactName}}
</td>
<td>
{{item.contactPhone}}
</td>
<td>
<span ng-if="item.unitCompanyId==view.company && item.unitStatus==0 && item.processStatus==40" ng-click="activeOrFreeze(item)"><a> 冻 结</a></span>
<span ng-if="item.unitCompanyId==view.company && item.unitStatus==1 && item.processStatus==40" ng-click="activeOrFreeze(item)"><a> 激 活</a></span>
</td>
</tr>
</tbody>

<tfoot>
<tr>
<td colspan="11">
<div  pagination
total-page="view.totalPage"
total-count="view.totalCount"
page-size="view.pageSize"
current-page="view.currentPage"
current-page-size="view.items.length"
on-select-page="view.switchPage(currentPage, pageSize)"></div>
</td>
</tr>
</tfoot>

</table>
</div>
</div>

<div mask visible="showMask" ref-id="#constructionUnitList"></div>
<div task-choose-user-dialog
show-dialog="view.showTaskChooseUserDialog"
process-type="bpmCode"
task-id="''"
is-start="'1'"
dialog-id="unitList"
modal-title="选择流程人员"
confirm-button="确定"
on-selected-confirm="selectProcessUser(returnNodes, returnUsers)"></div>
</body>
</html>


11 还有就是在 svc  main  resources  

soa-provider.xml中添加

 <!-- 施工单位 -->

    <dubbo:service version="libiao" interface="com.paas.service.crm.IConstructionUnitInfoService" ref="constructionUnitInfoService"  protocol="dubbo" />

web   src main  resources  

  <!-- 施工单位 -->
<dubbo:reference version="libiao" interface="com.paas.service.crm.IConstructionUnitInfoService" id="constructionUnitInfoService"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐