Commit 789c2c98 authored by 季圣华's avatar 季圣华
Browse files

增加对账单的功能

parent 6a7af6ff
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -732,6 +732,55 @@ public class DepotHeadAction extends BaseAction<DepotHeadModel>
return allReturn;
}
/**
*对账单接口
*/
public void findStatementAccount(){
PageUtil pageUtil = new PageUtil();
pageUtil.setPageSize(model.getPageSize());
pageUtil.setCurPage(model.getPageNo());
Long pid =model.getProjectId();
String dids =model.getDepotIds();
String beginTime = model.getBeginTime();
String endTime = model.getEndTime();
Long organId = model.getOrganId();
try{
depotHeadService.findStatementAccount(pageUtil, beginTime, endTime, organId, pid, dids);
List dataList = pageUtil.getPageList();
JSONObject outer = new JSONObject();
outer.put("total", pageUtil.getTotalCount());
//存放数据json数组
JSONArray dataArray = new JSONArray();
if(dataList!=null){
for(Integer i=0; i<dataList.size(); i++){
JSONObject item = new JSONObject();
Object dl = dataList.get(i); //获取对象
Object[] arr = (Object[]) dl; //转为数组
item.put("number", arr[0]); //单据编号
item.put("materialName", arr[1]); //商品名称
item.put("materialModel", arr[2]); //商品型号
item.put("unitPrice", arr[3]); //单价
item.put("operNumber", arr[4]); //入库出库数量
item.put("allPrice", arr[5]); //金额
item.put("supplierName", arr[6]); //供应商
item.put("depotName", arr[7]); //仓库
item.put("operTime", arr[8]); //入库出库日期
item.put("type", arr[9]); //单据类型
dataArray.add(item);
}
}
outer.put("rows", dataArray);
//回写查询结果
toClient(outer.toString());
}
catch (JshException e) {
Log.errorFileSync(">>>>>>>>>>>>>>>>>>>查找信息异常", e);
}
catch (IOException e) {
Log.errorFileSync(">>>>>>>>>>>>>>>>>>>回写查询信息结果异常", e);
}
}
/**
* 拼接搜索条件
* @return
......
......@@ -59,13 +59,16 @@ public class DepotHeadDAO extends BaseDAO<DepotHead> implements DepotHeadIDAO {
"inner join jsh_material m on m.id=di.MaterialId " +
"inner join jsh_supplier s on s.id=dh.OrganId " +
"inner join (select id,name as dName from jsh_depot) d on d.id=di.DepotId " +
"where dh.Type='"+ type +"' and dh.OperTime >='"+ beginTime +"' and dh.OperTime <='"+ endTime +"' ");
"where dh.OperTime >='"+ beginTime +"' and dh.OperTime <='"+ endTime +"' ");
if(pid!=null){
queryString.append(" and di.DepotId=" + pid );
}
else {
queryString.append(" and di.DepotId in (" + dids + ")" );
}
if(type!=null && !type.equals("")) {
queryString.append(" and dh.Type='"+ type +"'");
}
queryString.append(" ORDER BY OperTime DESC,Number desc");
Query query;
query = this.getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(queryString + SearchConditionUtil.getCondition(pageUtil.getAdvSearch()));
......@@ -125,6 +128,38 @@ public class DepotHeadDAO extends BaseDAO<DepotHead> implements DepotHeadIDAO {
pageUtil.setPageList(query.list());
}
@SuppressWarnings("unchecked")
public void findStatementAccount(PageUtil pageUtil,String beginTime,String endTime,Long organId,Long pid,String dids) throws JshException {
StringBuffer queryString = new StringBuffer();
queryString.append("select dh.Number,m.`name`,m.Model,di.UnitPrice,di.OperNumber,di.AllPrice,s.supplier,d.dName,date_format(dh.OperTime, '%Y-%m-%d'),dh.type " +
"from jsh_depothead dh inner join jsh_depotitem di on di.HeaderId=dh.id " +
"inner join jsh_material m on m.id=di.MaterialId " +
"inner join jsh_supplier s on s.id=dh.OrganId " +
"inner join (select id,name as dName from jsh_depot) d on d.id=di.DepotId " +
"where s.type!='会员' and dh.OperTime >='"+ beginTime +"' and dh.OperTime <='"+ endTime +"' ");
if(pid!=null){
queryString.append(" and di.DepotId=" + pid );
}
else {
queryString.append(" and di.DepotId in (" + dids + ")" );
}
if(organId!=null && !organId.equals("")) {
queryString.append(" and dh.OrganId='"+ organId +"'");
}
queryString.append(" ORDER BY OperTime DESC,Number desc");
Query query;
query = this.getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(queryString + SearchConditionUtil.getCondition(pageUtil.getAdvSearch()));
pageUtil.setTotalCount(query.list().size());
// 分页查询
int pageNo = pageUtil.getCurPage();
int pageSize = pageUtil.getPageSize();
if (0 != pageNo && 0 != pageSize) {
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
}
pageUtil.setPageList(query.list());
}
@SuppressWarnings("unchecked")
public void getHeaderIdByMaterial(PageUtil pageUtil,String materialParam) throws JshException {
StringBuffer queryString = new StringBuffer();
......
......@@ -23,6 +23,8 @@ public interface DepotHeadIDAO extends BaseIDAO<DepotHead>
public void findMaterialsListByHeaderId(PageUtil pageUtil,Long headerId) throws JshException;
public void findStatementAccount(PageUtil pageUtil,String beginTime,String endTime,Long organId,Long pid,String dids) throws JshException;
public void getHeaderIdByMaterial(PageUtil pageUtil,String materialParam) throws JshException;
}
......@@ -23,5 +23,7 @@ public interface DepotHeadIService extends BaseIService<DepotHead>
public void findMaterialsListByHeaderId(PageUtil pageUtil,Long headerId)throws JshException;
public void findStatementAccount(PageUtil pageUtil,String beginTime,String endTime, Long organId, Long pid,String dids)throws JshException;
public void getHeaderIdByMaterial(PageUtil pageUtil,String materialParam)throws JshException;
}
......@@ -50,6 +50,10 @@ public class DepotHeadService extends BaseService<DepotHead> implements DepotHea
depotHeadDao.findMaterialsListByHeaderId(pageUtil, headerId);
}
public void findStatementAccount(PageUtil pageUtil,String beginTime,String endTime,Long organId,Long pid,String dids) throws JshException {
depotHeadDao.findStatementAccount(pageUtil, beginTime, endTime, organId, pid, dids);
}
public void getHeaderIdByMaterial(PageUtil pageUtil,String materialParam) throws JshException {
depotHeadDao.getHeaderIdByMaterial(pageUtil, materialParam);
}
......
......@@ -22,7 +22,7 @@
<script type="text/javascript" src="<%=path %>/js/My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript" src="<%=path %>/js/common/common.js"></script>
<script>
var kid = ${sessionScope.user.id};
var uid = ${sessionScope.user.id};
</script>
</head>
<body>
......@@ -89,7 +89,7 @@
type:"post",
url: "<%=path %>/userBusiness/getBasicData.action",
data: ({
KeyId:kid,
KeyId: uid,
Type:"UserDepot"
}),
//设置为同步
......
......@@ -22,7 +22,7 @@
<script type="text/javascript" src="<%=path %>/js/My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript" src="<%=path %>/js/common/common.js"></script>
<script>
var kid = ${sessionScope.user.id};
var uid = ${sessionScope.user.id};
</script>
</head>
<body>
......@@ -88,7 +88,7 @@
type:"post",
url: "<%=path %>/userBusiness/getBasicData.action",
data: ({
KeyId:kid,
KeyId: uid,
Type:"UserDepot"
}),
//设置为同步
......
<%@page import="com.jsh.util.Tools"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String clientIp = Tools.getLocalIp(request);
%>
<!DOCTYPE html>
<html>
<head>
<title>对账单</title>
<meta charset="utf-8">
<!-- 指定以IE8的方式来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>
<link rel="shortcut icon" href="<%=path%>/images/favicon.ico" type="image/x-icon" />
<script type="text/javascript" src="<%=path %>/js/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="<%=path %>/js/print/print.js"></script>
<link rel="stylesheet" type="text/css" href="<%=path %>/js/easyui-1.3.5/themes/default/easyui.css"/>
<link rel="stylesheet" type="text/css" href="<%=path %>/js/easyui-1.3.5/themes/icon.css"/>
<link type="text/css" rel="stylesheet" href="<%=path %>/css/common.css" />
<script type="text/javascript" src="<%=path %>/js/easyui-1.3.5/jquery.easyui.min.js"></script>
<script type="text/javascript" src="<%=path %>/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="<%=path %>/js/My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript" src="<%=path %>/js/common/common.js"></script>
<script>
var uid = ${sessionScope.user.id};
</script>
</head>
<body>
<!-- 查询 -->
<div id = "searchPanel" class="easyui-panel" style="padding:10px;" title="查询窗口" iconCls="icon-search" collapsible="true" closable="false">
<table id="searchTable">
<tr>
<td>仓库:</td>
<td>
<select name="searchProjectId" id="searchProjectId" style="width:100px;"></select>
</td>
<td>&nbsp;</td>
<td>单位名称:</td>
<td>
<input id="OrganId" name="OrganId" style="width:100px;" />
</td>
<td>&nbsp;</td>
<td>单据日期:</td>
<td>
<input type="text" name="searchBeginTime" id="searchBeginTime" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" class="txt Wdate" style="width:140px;"/>
</td>
<td>-</td>
<td>
<input type="text" name="searchEndTime" id="searchEndTime" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" class="txt Wdate" style="width:140px;"/>
</td>
<td>&nbsp;</td>
<td>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" id="searchBtn">查询</a>
&nbsp;&nbsp;
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-print" id="printBtn">打印</a>
</td>
</tr>
</table>
</div>
<!-- 数据显示table -->
<div id = "tablePanel" class="easyui-panel" style="padding:1px;top:300px;" title="对账单列表" iconCls="icon-list" collapsible="true" closable="false">
<table id="tableData" style="top:300px;border-bottom-color:#FFFFFF"></table>
</div>
<script type="text/javascript">
var path = "<%=path %>";
var depotList = null;
var depotID = null;
var depotString = ""; //仓库列表
var cusUrl = path + "/supplier/findBySelect_cus.action?UBType=UserCustomer&UBKeyId=" + uid; //客户接口
//初始化界面
$(function()
{
var thisDate = getNowFormatMonth(); //当前月份
var thisDateTime = getNowFormatDateTime(); //当前时间
$("#searchBeginTime").val(thisDate + "-01 00:00:00");
$("#searchEndTime").val(thisDateTime);
var userBusinessList=null;
var userdepot=null;
initSystemData_UB();
initSelectInfo_UB();
initSystemData_depot();
initSelectInfo_depot();
initSupplier(); //初始化供应商、客户信息
initTableData();
ininPager();
search();
print();
});
//初始化系统基础信息
function initSystemData_UB(){
$.ajax({
type:"post",
url: "<%=path %>/userBusiness/getBasicData.action",
data: ({
KeyId: uid,
Type:"UserDepot"
}),
//设置为同步
async:false,
dataType: "json",
success: function (systemInfo)
{
if(systemInfo)
{
userBusinessList = systemInfo.showModel.map.userBusinessList;
var msgTip = systemInfo.showModel.msgTip;
if(msgTip == "exceptoin")
{
$.messager.alert('提示','查找UserBusiness异常,请与管理员联系!','error');
return;
}
}
else
{
userBusinessList=null;
}
}
});
}
//初始化页面选项卡
function initSelectInfo_UB(){
if(userBusinessList !=null)
{
if(userBusinessList.length>0)
{
//用户对应的仓库列表 [1][2][3]...
userdepot =userBusinessList[0].value;
}
}
}
//初始化系统基础信息
function initSystemData_depot(){
$.ajax({
type:"post",
url: "<%=path %>/depot/getBasicData.action",
//设置为同步
async:false,
dataType: "json",
success: function (systemInfo)
{
depotList = systemInfo.showModel.map.depotList;
var msgTip = systemInfo.showModel.msgTip;
if(msgTip == "exceptoin")
{
$.messager.alert('提示','查找系统基础信息异常,请与管理员联系!','error');
return;
}
}
});
}
//初始化页面选项卡
function initSelectInfo_depot(){
var options = "";
if(depotList !=null)
{
options = "";
for(var i = 0 ;i < depotList.length;i++)
{
var depot = depotList[i];
if(userdepot!=null)
{
if(userdepot.indexOf("["+depot.id+"]")!=-1)
{
options += '<option value="' + depot.id + '">' + depot.name + '</option>';
depotString = depotString + depot.id + ",";
}
}
}
depotString = depotString.substring(0, depotString.length-1);
$("#searchProjectId").empty().append('<option value="">全部</option>').append(options);
}
}
//初始化供应商、客户
function initSupplier(){
$('#OrganId').combobox({
url: cusUrl,
valueField:'id',
textField:'supplier',
filter: function(q, row){
var opts = $(this).combobox('options');
return row[opts.textField].indexOf(q) >-1;
}
});
}
//初始化表格数据
function initTableData()
{
$('#tableData').datagrid({
height:heightInfo,
nowrap: false,
rownumbers: true,
//动画效果
animate:false,
//选中单行
singleSelect : true,
pagination: true,
//交替出现背景
striped : true,
pageSize: 10,
pageList: [10,50,100],
columns:[[
{ title: '单据编号',field: 'number',width:140},
{ title: '商品名称',field: 'materialName',width:120},
{ title: '商品型号',field: 'materialModel',width:100},
{ title: '单价',field: 'unitPrice',width:60},
{ title: '数量',field: 'operNumber',width:60,formatter:function(value,rec){
if(rec.type==="出库"){
return rec.operNumber;
}
else if(rec.type==="入库"){
return 0-rec.operNumber;
}
}},
{ title: '金额',field: 'allPrice',width:60,formatter: function(value,rec){
if(rec.type==="出库"){
return rec.allPrice;
}
else if(rec.type==="入库"){
return 0-rec.allPrice;
}
}},
{ title: '单位名称',field: 'supplierName',width:200},
{ title: '仓库',field: 'depotName',width:120},
{ title: '入库日期',field: 'operTime',width:80}
]],
onLoadError:function()
{
$.messager.alert('页面加载提示','页面加载异常,请稍后再试!','error');
return;
}
});
}
//初始化键盘enter事件
$(document).keydown(function(event)
{
//兼容 IE和firefox 事件
var e = window.event || event;
var k = e.keyCode||e.which||e.charCode;
//兼容 IE,firefox 兼容
var obj = e.srcElement ? e.srcElement : e.target;
//绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if(k == "13"&&(obj.id=="Type"||obj.id=="Name"))
{
$("#savePerson").click();
}
//搜索按钮添加快捷键
if(k == "13"&&(obj.id=="searchType"))
{
$("#searchBtn").click();
}
});
//分页信息处理
function ininPager()
{
try
{
var opts = $("#tableData").datagrid('options');
var pager = $("#tableData").datagrid('getPager');
pager.pagination({
onSelectPage:function(pageNum, pageSize)
{
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',
{
pageNumber:pageNum,
pageSize:pageSize
});
showDetails(pageNum,pageSize);
}
});
}
catch (e)
{
$.messager.alert('异常处理提示',"分页信息异常 : " + e.name + ": " + e.message,'error');
}
}
//增加
var url;
var personID = 0;
//保存编辑前的名称
var orgPerson = "";
//搜索处理
function search() {
showDetails(1,initPageSize);
var opts = $("#tableData").datagrid('options');
var pager = $("#tableData").datagrid('getPager');
opts.pageNumber = 1;
opts.pageSize = initPageSize;
pager.pagination('refresh',
{
pageNumber:1,
pageSize:initPageSize
});
}
$("#searchBtn").unbind().bind({
click:function()
{
search();
}
});
function showDetails(pageNo,pageSize)
{
$.ajax({
type: "post",
url: "<%=path %>/depotHead/findStatementAccount.action",
dataType: "json",
data: ({
pageNo:pageNo,
pageSize:pageSize,
ProjectId: $.trim($("#searchProjectId").val()),
DepotIds: depotString,
BeginTime: $("#searchBeginTime").val(),
EndTime: $("#searchEndTime").val(),
OrganId: $('#OrganId').combobox('getValue')
}),
success: function (res) {
if(res){
$("#tableData").datagrid('loadData',res);
}
},
//此处添加错误处理
error:function() {
$.messager.alert('查询提示','查询数据后台异常,请稍后再试!','error');
return;
}
});
}
//报表打印
function print() {
$("#printBtn").off("click").on("click",function(){
var path = "<%=path %>";
CreateFormPage('打印报表', $('#tableData'), path);
});
}
</script>
</body>
</html>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment