Prechádzať zdrojové kódy

考核计划用水量功能完善

liuhj 4 rokov pred
rodič
commit
5ec0a24760
32 zmenil súbory, kde vykonal 6833 pridanie a 13 odobranie
  1. 2 2
      WebContent/WEB-INF/view/base/punishment-section-edit.jsp
  2. 2 0
      WebContent/WEB-INF/view/base/punishment-section-list.jsp
  3. 157 0
      WebContent/WEB-INF/view/bus/month-assessment-create.jsp
  4. 180 0
      WebContent/WEB-INF/view/bus/month-assessment-edit.jsp
  5. 658 0
      WebContent/WEB-INF/view/bus/month-assessment-list.jsp
  6. 66 0
      WebContent/WEB-INF/view/bus/month-assessment-view.jsp
  7. 159 0
      WebContent/WEB-INF/view/bus/month-assessment-write-off.jsp
  8. 157 0
      WebContent/WEB-INF/view/bus/yearhf-assessment-create.jsp
  9. 180 0
      WebContent/WEB-INF/view/bus/yearhf-assessment-edit.jsp
  10. 649 0
      WebContent/WEB-INF/view/bus/yearhf-assessment-list.jsp
  11. 66 0
      WebContent/WEB-INF/view/bus/yearhf-assessment-view.jsp
  12. 159 0
      WebContent/WEB-INF/view/bus/yearhf-assessment-write-off.jsp
  13. 2 0
      src/config/spring-dao.xml
  14. 2 0
      src/config/spring-service.xml
  15. 7 0
      src/java/com/bus/dao/IBusMonthAssessmentDao.java
  16. 7 0
      src/java/com/bus/dao/IBusYearhfAssessmentDao.java
  17. 15 0
      src/java/com/bus/dao/impl/BusMonthAssessmentDaoImpl.java
  18. 16 0
      src/java/com/bus/dao/impl/BusYearhfAssessmentDaoImpl.java
  19. 69 0
      src/java/com/bus/model/BusMonthAssessment.hbm.xml
  20. 230 0
      src/java/com/bus/model/BusMonthAssessment.java
  21. 69 0
      src/java/com/bus/model/BusYearhfAssessment.hbm.xml
  22. 232 0
      src/java/com/bus/model/BusYearhfAssessment.java
  23. 348 0
      src/java/com/bus/model/temp/BusMonthAssessmentTemp.java
  24. 348 0
      src/java/com/bus/model/temp/BusYearhfAssessmentTemp.java
  25. 128 0
      src/java/com/bus/service/IBusMonthAssessmentService.java
  26. 95 0
      src/java/com/bus/service/IBusYearhfAssessmentService.java
  27. 936 0
      src/java/com/bus/service/impl/BusMonthAssessmentServiceImpl.java
  28. 717 0
      src/java/com/bus/service/impl/BusYearhfAssessmentServiceImpl.java
  29. 19 6
      src/java/com/bus/web/BusInitController.java
  30. 657 0
      src/java/com/bus/web/BusMonthAssessmentController.java
  31. 26 5
      src/java/com/bus/web/BusOrgController.java
  32. 475 0
      src/java/com/bus/web/BusYearhfAssessmentController.java

+ 2 - 2
WebContent/WEB-INF/view/base/punishment-section-edit.jsp

@@ -169,8 +169,8 @@ $(function($){
 				<tr>
 					<td width="150"><span class="star">*</span>考核区间类别:</td>
 					<td><select name="sectionType"
-						data='{"list":[{"value":"quarter","key":"季度考核"}]}'
-						selectedValue='${bps.sectionType!"quarter"}' datatype="*"></select></td>
+						data='{"list":[{"value":"quarter","key":"季度考核"},{"value":"month","key":"月考核"},{"value":"yearhf","key":"半年考核"}]}'
+						selectedValue='${bps.sectionType!""}'></select></td>
 				</tr>
 				<tr>
 					<td>状态:</td>

+ 2 - 0
WebContent/WEB-INF/view/base/punishment-section-list.jsp

@@ -59,6 +59,8 @@ margin:5px 0px 5px 20px;
 	                			 return "季度考核";
 	                		  if("month"==value)
 	                			  return "月份考核";
+                            if("yearhf"==value)
+                                return "半年考核";
 	                     }		
 	                },
 	                { display: '状态', name: 'status',     align: 'center', width: "8%",

+ 157 - 0
WebContent/WEB-INF/view/bus/month-assessment-create.jsp

@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>新增单位月考核用水</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+
+    <!-- 表单验证start -->
+    <link rel="stylesheet"
+          href="${ctx}/qui/libs/js/form/validform/css/style.css" type="text/css"
+          media="all" />
+    <script src="${ctx}/qui/libs/js/form/validform/validform.js"
+            type="text/javascript"></script>
+    <!-- 表单验证end -->
+
+    <!--表单异步提交start-->
+    <script src="${ctx}/qui/libs/js/form/form.js" type="text/javascript"></script>
+    <!--表单异步提交end-->
+
+    <!-- 日期选择框start -->
+    <script type="text/javascript"
+            src="${ctx}/qui/libs/js/form/datePicker/WdatePicker.js"></script>
+    <!-- 日期选择框end -->
+
+</head>
+<body>
+<div class="box1">
+    <form id="myFormId" method="POST"
+          action="${ctx}/monthAssessment/createData.do" target="back">
+        <input type="hidden" name="orgId" id="orgId" value="" />
+        <table class="tableStyle" formMode="line">
+            <tr>
+                <td><span class="star">*</span>年度计划供水表:</td>
+                <td><input type="text" id="orgName" name="orgName" value=""
+                           onclick="showSelect();" readonly="readonly" datatype="*" /></td>
+                <td><span class="star"></span>年度:</td>
+                <td><input type="text" id="year" name="year"
+                           value="${year!''}" datatype="*" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>单位编号:</td>
+                <td><input type="text" id="orgNumber" name="orgNumber"
+                           datatype="*" /></td>
+                <td><span class="star"></span>用户类型:</td>
+                <td><input type="text" id="userType" name="userType" value="" />
+                </td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>是否计划户:</td>
+                <td><input type="text" id="isPlanUser" name="isPlanUser"
+                           datatype="*" /></td>
+                <td colspan="2"></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>客户号:</td>
+                <td><input type="text" id="customerNumber"
+                           name="customerNumber" value="" /></td>
+                <td><span class="star"></span>水表编号:</td>
+                <td><input type="text" id="meterNumber" name="meterNumber"
+                           value="" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>考核类型:</td>
+                <td><input type="text" id="" name="" value="月份考核"
+                           readonly="readonly" /></td>
+                <td><span class="star"></span>考核月份:</td>
+                <td><input type="text" id="assessmentMonth"
+                           name="assessmentMonth" value="" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>用水类型:</td>
+                <td><input type="text" id="waterType" name="waterType"
+                           value="" readonly="readonly" /></td>
+                <!-- 				<td><span class="star"></span>用水单价:</td> -->
+                <!-- 				<td> -->
+                <!-- 					<input type="text" id="waterPrice" name="waterPrice" value=""/> -->
+                <!-- 				</td> -->
+                <!-- 				<td colspan="2"> -->
+                <!-- 				</td> -->
+                <td><span class="star"></span>计划用水指标:</td>
+                <td><input type="text" id="waterPlanningIndex"
+                           name="waterPlanningIndex" value="" /></td>
+            </tr>
+            <!-- 			<tr> -->
+
+            <!-- 				<td colspan="2"></td> -->
+            <!-- 				<td><span class="star"></span>实收水量:</td> -->
+            <!-- 				<td> -->
+            <!-- 					<input type="text" id="actualClosingWater" name="actualClosingWater" value="" readonly="readonly"/> -->
+            <!-- 				</td> -->
+            <!-- 			</tr> -->
+            <!-- 			<tr> -->
+
+            <!-- 				<td><span class="star"></span>实际用水量:</td> -->
+            <!-- 				<td> -->
+            <!-- 					<input type="text" id="actualUseWater" name="actualUseWater" value="" readonly="readonly"/> -->
+            <!-- 				</td> -->
+            <!-- 			</tr> -->
+            <tr>
+                <td colspan="4"><input type="submit" value="保存" /> <input
+                        type="button" value="取消" onclick="top.Dialog.close()" /></td>
+            </tr>
+        </table>
+    </form>
+</div>
+<!-- 异步提交start -->
+<script type="text/javascript">
+    function initComplete(){
+
+        //表单提交
+        $("#myFormId").Validform({
+            tiptype:3,//表示在右边显示
+            ajaxPost:true,
+            showAllError:true,
+            callback:function(responseText){
+                $.Hidemsg();
+                if(responseText.status=="y"){
+                    top.Dialog.alert(responseText.info,function(){
+                        closeWin();
+                    });
+                }else{
+                    top.Dialog.alert(responseText.info,function(){
+                        return false;
+                    });
+                }
+
+            }
+        });
+    }
+
+    function addOrgIdParam(){
+        var orgNumber = $('#orgNumber').val();
+        $('#customerNumber').attr("ajaxurl","${ctx}/customerMeter/validCustomerNumber.do?orgNumber="+orgNumber);
+    }
+
+    //重置
+    function closeWin(){
+        //刷新数据
+        top.frmright.resetSearch();
+        //关闭窗口
+        top.Dialog.close();
+    }
+
+    function showSelect(){
+        top.Dialog.open({URL:"${ctx}/monthAssessment/annualPlanSelectedPage.do?year=${year!''}",Width:800,Height:400,Title:"单位选择页面"});
+    }
+</script>
+<!-- 异步提交end -->
+</body>
+</html>

+ 180 - 0
WebContent/WEB-INF/view/bus/month-assessment-edit.jsp

@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>修改单位月考核用水</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+
+    <!-- 表单验证start -->
+    <link rel="stylesheet"
+          href="${ctx}/qui/libs/js/form/validform/css/style.css" type="text/css"
+          media="all" />
+    <script src="${ctx}/qui/libs/js/form/validform/validform.js"
+            type="text/javascript"></script>
+    <!-- 表单验证end -->
+
+    <!--表单异步提交start-->
+    <script src="${ctx}/qui/libs/js/form/form.js" type="text/javascript"></script>
+    <!--表单异步提交end-->
+
+    <!-- 日期选择框start -->
+    <script type="text/javascript"
+            src="${ctx}/qui/libs/js/form/datePicker/WdatePicker.js"></script>
+    <!-- 日期选择框end -->
+
+</head>
+<body>
+<div class="box1">
+    <form id="myFormId" method="POST"
+          action="${ctx}/monthAssessment/updateData.do" target="back">
+        <input type="hidden" name="orgId" id="orgId" value="${org.orgId!''}" />
+        <input type="hidden" name="assessmentId" id="assessmentId"
+               value="${assessmentId!''}" />
+        <table class="tableStyle" formMode="line">
+            <tr>
+                <td><span class="star">*</span>年度计划供水表:</td>
+                <td><input type="text" id="orgName" name="orgName"
+                           value="${org.orgName!''}" onclick="showSelect();"
+                           readonly="readonly" datatype="*" /></td>
+                <td><span class="star"></span>年度:</td>
+                <td><input type="text" id="year" name="year"
+                           value="${org.year!''}" datatype="*" readonly="readonly" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>单位编号:</td>
+                <td><input type="text" id="orgNumber" name="orgNumber"
+                           value="${org.orgNumber!''}" datatype="*" readonly="readonly" /></td>
+                <td><span class="star"></span>用户类型:</td>
+                <td><input type="text" id="userType" name="userType"
+                           value="${org.userType!''}" readonly="readonly" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>是否计划户:</td>
+                <td><input type="text" id="isPlanUser" name="isPlanUser"
+                           value="${org.showIsPlanUser!''}" datatype="*" readonly="readonly" />
+                </td>
+                <td colspan="2"></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>客户号:</td>
+                <td><input type="text" id="customerNumber"
+                           name="customerNumber" value="${org.busOrgCustomerNumber!''}"
+                           readonly="readonly" /></td>
+                <td><span class="star"></span>水表编号:</td>
+                <td><input type="text" id="meterNumber" name="meterNumber"
+                           value="${org.busOrgMeterNumber!''}" readonly="readonly" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>考核类型:</td>
+                <td><input type="text" id="" name="" value="月考核"
+                           readonly="readonly" /></td>
+                <td><span class="star"></span>考核月份:</td>
+                <td><input type="text" id="assessmentMonth"
+                           name="assessmentMonth" value="${assessmentMonth!''}" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>用水单价:</td>
+                <td><input type="text" id="waterPrice" name="waterPrice"
+                           value="${waterPrice!''}" /></td>
+                <!-- 				<td colspan="2"> -->
+                <!-- 				</td> -->
+                <td><span class="star"></span>计划用水指标:</td>
+                <td><input type="text" id="waterPlanningIndex"
+                           name="waterPlanningIndex" value="${waterPlanningIndex!''}" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>实际用水量:</td>
+                <td><input type="text" id="actualUseWater"
+                           name="actualUseWater" value="${usewater!''}"  />
+                </td>
+                <td><span class="star"></span>实收水量:</td>
+                <td><input type="text" id="actualClosingWater"
+                           name="actualClosingWater" value="${overWater!''}"
+                /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>超用百分比(%):</td>
+                <td><input type="text" id="overWaterPercent"
+                           name="overWaterPercent" value="${overWaterPercent!''}"
+                /></td>
+                <td><span class="star"></span>非税缴费状态:</td>
+                <td><input type="radio" id="taxPay-0" name="taxPay" value="0"
+                           checked="checked" /><label for="taxPay-0" class="hand">未缴费</label>
+                    <input type="radio" id="taxPay-1" name="taxPay" value="1"<#if
+                    taxpay??&&taxpay=='1'> checked="checked" </#if> /><label
+                    for="taxPay-1" class="hand">已缴费</label></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>是否销帐:</td>
+                <td>
+                    <!-- 					<input type="text" id="isWriteOff" name="isWriteOff"/> -->
+                    <select name="isWriteOff"
+                            selectedValue="${isWriteOff!''}"
+                            data='{"list":[{"value":"yes","key":"是"},{"value":"no","key":"否"}]}'></select>
+                </td>
+                <td><span class="star"></span>销帐日期:</td>
+                <td>
+                    <!-- 					<input type="text" id="writeOffDate" name="writeOffDate"/> -->
+                    <input type="text" id="date" name="date" class="date"
+                           value="${writeOffDate!''}" dateFmt="yyyy-MM-dd" />
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4"><input type="submit" value="保存" /> <input
+                        type="button" value="取消" onclick="top.Dialog.close()" /></td>
+            </tr>
+        </table>
+    </form>
+</div>
+<!-- 异步提交start -->
+<script type="text/javascript">
+    function initComplete(){
+
+        //表单提交
+        $("#myFormId").Validform({
+            tiptype:3,//表示在右边显示
+            ajaxPost:true,
+            showAllError:true,
+            callback:function(responseText){
+                $.Hidemsg();
+                if(responseText.status=="y"){
+                    top.Dialog.alert(responseText.info,function(){
+                        closeWin();
+                    });
+                }else{
+                    top.Dialog.alert(responseText.info,function(){
+                        return false;
+                    });
+                }
+
+            }
+        });
+    }
+
+    function addOrgIdParam(){
+        var orgNumber = $('#orgNumber').val();
+        $('#customerNumber').attr("ajaxurl","${ctx}/customerMeter/validCustomerNumber.do?orgNumber="+orgNumber);
+    }
+
+    //重置
+    function closeWin(){
+        //刷新数据
+        top.frmright.resetSearch();
+        //关闭窗口
+        top.Dialog.close();
+    }
+
+    function showSelect(){
+        top.Dialog.open({URL:"${ctx}/monthAssessment/annualPlanSelectedPage.do?year="+$('#year').val(),Width:800,Height:400,Title:"单位选择页面"});
+    }
+</script>
+<!-- 异步提交end -->
+</body>
+</html>

+ 658 - 0
WebContent/WEB-INF/view/bus/month-assessment-list.jsp

@@ -0,0 +1,658 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>单位月考核用水表</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+
+    <!-- 日期选择框start -->
+    <script type="text/javascript"
+            src="${ctx}/qui/libs/js/form/datePicker/WdatePicker.js"></script>
+    <!-- 日期选择框end -->
+    <!--数据表格start-->
+    <script src="${ctx}/qui/libs/js/table/quiGrid.js" type="text/javascript"></script>
+    <!--数据表格end-->
+
+    <!--箭头分页start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/nav/pageArrow.js"></script>
+    <!--箭头分页end-->
+
+    <!--表单异步提交start-->
+    <script src="${ctx}/qui/libs/js/form/form.js" type="text/javascript"></script>
+    <!--表单异步提交end-->
+
+
+    <script type="text/javascript">
+        var g_pageNo = 1;
+        var g_pageSize = 10;
+        var total_rows=0;
+        //刷新记忆
+        var checkedArray = [];
+
+        //数据表格使用
+        var g;
+        var gridData;
+        function initComplete(){
+            g = $("#maingrid").quiGrid({
+                columns: [
+                    { display: '单位编号', name: '2',     align: 'center', width: "6%"},
+                    { display: '单位名称', name: '3',     align: 'center', width: "10%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '单位地址', name: '4',     align: 'center', width: "13%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '水表号', name: '25',     align: 'center', width: "13%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '邮寄地址', name: '24',     align: 'center', width: "13%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '邮编', name: '23',     align: 'center', width: "6%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '用户类型', name: '6',     align: 'center', width: "6%",
+                        render:function(rowdata, rowindex, value, column){
+                            if(value == "1"){
+                                return "自来水户";
+                            }else if(value == "2"){
+                                return "取水户";
+                            }else{
+                                return "";
+                            }
+                        }
+                    },
+                    { display: '月份', name: '8',     align: 'center', width: "5%"},
+                    { display: '用水计划指标', name: '9',     align: 'center', width: "5%"},
+                    { display: '用水计划旧指标', name: '32',     align: 'center', width: "5%"},
+                    { display: '实际用水量', name: '14',     align: 'center', width: "5%"},
+                    { display: '实际收水量', name: '15',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return value.toFixed(0);
+                        }
+                    },
+                    { display: '超用率(%)', name: '16',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return value+'%';
+                        }
+                    },
+                    { display: '应收金额', name: '18',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+                    { display: '实收金额', name: '17',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+                    { display: '是否销账', name: '10',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            if(value=='yes'){
+                                return "是";
+                            }
+                            if(value=='no'){
+                                return "否";
+                            }
+                        }
+                    },
+                    { display: '销帐日期', name: '11',     align: 'center', width: "5%"},
+                    { display: '付款方式', name: '12',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            if(value=='1'){
+                                return "现金";
+                            }
+                            if(value=='2'){
+                                return "转账";
+                            }
+                        }
+                    },
+                    { display: '用水单价', name: '13',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(2);
+                        }
+                    },
+                    { display: '超10-30%的水量', name: '27',     align: 'center', width: "5%"		            },
+
+                    { display: '超30%以上的水量', name: '28',     align: 'center', width: "5%"		            },
+                    { display: '超10-30%的金额', name: '30',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+
+                    { display: '超30%以上的金额', name: '29',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+
+                    { display: '总金额', name: '31',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+                    { display: '操作', isAllowHide: false, align: 'center', width:"15%",
+                        render: function (rowdata, rowindex, value, column){
+                            return '<div class="padding_top4 padding_left20">'
+                                <@pop_perm url="/monthAssessment/update.do">
+                                + '<a href="#"  onclick="onEdit('+ rowdata[0]+')"><span class="icon_edit">修改</span></a>'
+                                </@pop_perm>
+                                <@pop_perm url="/monthAssessment/delete.do">
+                                + '<a href="#"  onclick="onDelete('+ rowdata[0]+')"><span class="icon_delete">删除</span></a>'
+                                </@pop_perm>
+                                + '</div>';
+                        }
+                    }],
+                toolbar:{
+                    items:[
+                    <@pop_perm url="/monthAssessment/create.do">
+                {text:'新增',click:onCreate,iconClass:'icon_add'},
+        </@pop_perm>
+
+            <@pop_perm url="/monthAssessment/update.do">
+                {line:true},
+                {text:'修改',click:onEdit1, iconClass:'icon_edit'},
+        </@pop_perm>
+
+            <@pop_perm url="/monthAssessment/delete.do">
+                {line:true},
+                {text:'批量删除',click:batchDelete, iconClass:'icon_delete'},
+        </@pop_perm>
+            <@pop_perm url="/monthAssessment/print.do">
+                {line:true},
+                {text:'打印',click:print, iconClass:'icon_print'},
+        </@pop_perm>
+            <@pop_perm url="/monthAssessment/exportExcel.do">
+                {line:true},
+                {text:'导出',click:exportExcel, iconClass:'icon_export'},
+        </@pop_perm>
+
+            <@pop_perm url="/monthAssessment/wx.do">
+                {line:true},
+                {text:'wx',click:wx, iconClass:'icon_export'},
+        </@pop_perm>
+            {line:true}
+        ]
+        },
+            data:[],  sortName: 'showOrgName',rownumbers:true,checkbox:true,usePager: false,height: '100%', width:"100%",heightDiff:-40,pageSize:g_pageSize,
+                onChangeSort : function(){
+                getData(g.options.sortName,g.options.sortOrder,g_pageNo,g_pageSize);
+                return false;
+            },isChecked:checkedHandler,onCheckRow: checkRowHandler, onCheckAllRow: checkAllRowHandler
+        });
+
+            //点击分页触发
+        }
+
+        $(function(){
+            getData(g_pageNo,g_pageSize);
+        })
+
+        //打印年度计划供水表预览
+        // 	    function print(){
+        // 	    	window.open("${ctx}/monthAssessment/print.do?exportType=list&pageNo=1&pageSize="+total_rows);
+        // 	    }
+
+        //打印
+        function print(){
+            var rows = g.getSelectedRows();
+            var rowsLength = rows.length;
+            var ids = getCheckedIdHandler();
+            if(rowsLength == 0 && ids=='') {
+                printByPage();
+                return;
+            }
+
+//	 		alert(ids);
+//	 		var orgIds=getCheckedOrgIdHandler();
+//	 		var months=getCheckedMonthHandler();
+//	 		var years=getCheckedYearHandler();
+            //window.location.href="${ctx}/customerMeter/exportExcel.do?&ids="+ids+"&flag=selected&pageNo=1&pageSize="+total_rows;
+            window.open("${ctx}/monthAssessment/print.do?exportType=list&ids="+ids+"&flag=selected&pageNo=1&pageSize="+total_rows);
+            return;
+        }
+        // 	    function print(){
+        //	    	window.open("${ctx}/monthAssessment/print.do?exportType=list&pageNo=1&pageSize="+total_rows);
+        //	    }
+
+        //打印
+        function wx(){
+            window.open("${ctx}/monthAssessment/wx.do");
+            return;
+        }
+        function printByPage(){
+            var orgNumber=$("#orgNumber").val();
+            var orgName=$("#orgName").val();
+            var address=$("#address").val();
+            var year=$("#year").val();
+            var busOrgCustomerNumber=$("#busOrgCustomerNumber").val();
+            var busOrgMeterNumber=$("#busOrgMeterNumber").val();
+            var month=$('#month').val();
+
+            var overWaterBegin=$('#overWaterBegin').val();
+            var overWaterEnd=$('#overWaterEnd').val();
+            var amountReceivableBegin=$('#amountReceivableBegin').val();
+            var amountReceivableEnd=$('#amountReceivableEnd').val();
+            var isPlanUser=$("#isPlanUser").val();
+            var userType=$("#userType").val();
+
+            var url="${ctx}/monthAssessment/print.do?";
+            url +="orgNumber="+orgNumber;
+            url +="&orgName="+orgName;
+            url +="&address="+address;
+            url +="&year="+year;
+            url +="&busOrgCustomerNumber="+busOrgCustomerNumber;
+            url +="&busOrgMeterNumber="+busOrgMeterNumber;
+            url +="&month="+month;
+
+            url +="&overWaterBegin="+overWaterBegin;
+            url +="&overWaterEnd="+overWaterEnd;
+            url +="&amountReceivableBegin="+amountReceivableBegin;
+            url +="&amountReceivableEnd="+amountReceivableEnd;
+            url +="&isPlanUser="+isPlanUser;
+            url +="&userType="+userType;
+
+            url +="&flag=query";
+            url +="&exportType=list";
+            url +="&pageNo=1";
+            url +="&pageSize="+total_rows;
+            url = encodeURI(encodeURI(url));
+            window.open(url);
+        }
+
+        /**初始时通过向后台传递排序id、排序顺序、初始页码、每页条数**/
+        function getData(pageNo,pageSize){
+            jQuery.post("${ctx}/monthAssessment/listPage.do",
+                getFormParams(pageNo,pageSize),
+                function(result){
+                    gridData = result;
+                    //刷新表格
+                    g.loadData(gridData);
+                    total_rows=gridData["pager.totalRows"];
+                    //设置左边内容页
+                    var content ="共有" + gridData["pager.totalRows"] + "条记录";
+                    $("#letfContent").html("");
+                    $("#letfContent").html(content);
+                    //取得分页组件
+                    var pager=$("#pager");
+                    //设置总页页数
+                    pager.attr("total",gridData["pager.totalRows"]);
+                    pager.render();
+                    //绑定翻页事件
+                    pager.unbind("pageChange");
+                    pager.bind("pageChange",function(e,index){
+                        g_pageNo = index + 1;
+                        getData(g_pageNo,g_pageSize);
+                    });
+                    //绑定选择每页显示记录数事件
+                    pager.bind("sizeChange",function(e,num){
+                        g_pageSize = num;
+                        getData(g_pageNo,g_pageSize);
+                    });
+                },"json");
+        }
+
+        function getData2(sort,direction,pageNo,pageSize){
+            $.post("${ctx}/monthAssessment/listPage.do",
+                {
+                    "pageNo":pageNo,
+                    "pageSize":pageSize
+                },
+                function(result){
+                    gridData = result;
+                    //刷新表格
+                    g.loadData(gridData);
+                },"json");
+        }
+
+        //查询
+        function searchHandler(){
+            //清空数组
+            clearArray();
+            //重新加载数据,设置当前页面为1
+            getData(1,g_pageSize);
+        }
+
+        /**获得查询表单的提交查询的值**/
+        function getFormParams(pageNo,pageSize){
+            $("#pageNo").val(pageNo);
+            $("#pageSize").val(pageSize);
+            return $("#searchForm").formToArray();
+        }
+
+        /**重置于查询表单,然后重新加载表格数据**/
+        function resetSearch(){
+            //清空数组
+            clearArray();
+            $("#searchForm")[0].reset();
+            //重新加载数据,设置当前页面为1
+            getData(1,g_pageSize);
+        }
+
+        //单条记录删除
+        function onDelete(rowid){
+            top.Dialog.confirm("确定要删除该记录吗?",function(){
+                //删除记录
+                jQuery.post("${ctx}/monthAssessment/delete.do",
+                    {"ids":rowid},
+                    function(responseText){
+                        if(responseText.status=="y"){
+                            top.Dialog.alert(responseText.info);
+                            resetSearch();
+                        }else{
+                            top.Dialog.alert(responseText.info);
+                        }
+
+                    },
+                    "json");
+            });
+        }
+
+        //批量删除
+        function batchDelete() {
+            var rows = g.getSelectedRows();
+            var rowsLength = rows.length;
+            if(rowsLength == 0) {
+                top.Dialog.alert("请选中要删除的记录!");
+                return;
+            }
+            top.Dialog.confirm("确定要删除吗?",function(){
+                jQuery.post("${ctx}/monthAssessment/delete.do",
+                    //获取所有选中行
+                    getSelectId(g),
+                    function(responseText){
+                        if(responseText.status=="y"){
+                            top.Dialog.alert(responseText.info);
+                            resetSearch();
+                        }else{
+                            top.Dialog.alert(responseText.info);
+                            return false;
+                        }
+                    },
+                    "json");
+            });
+
+            //获取所有选中行获取选中行的id 格式为 ids=1&ids=2
+            function getSelectId(grid) {
+                var selectedRows = grid.getSelectedRows();
+                var selectedRowsLength = selectedRows.length;
+                var ids = "";
+                for(var i = 0;i<selectedRowsLength;i++) {
+                    ids += selectedRows[i][0] + ",";
+                }
+                return {"ids":ids};
+            }
+        }
+
+        //新增
+        function onCreate(){
+            top.Dialog.open({
+                ID:'a1',
+                URL:"${ctx}/monthAssessment/create.do?year="+$('#year').val(),
+                Title:"新增月考核",
+                Width:700,
+                Height:350
+            });
+        }
+
+
+        //修改单位基本信息
+        function onEdit1() {
+            var rows = g.getSelectedRows();
+            var rowsLength = rows.length;
+            if(rowsLength == 0) {
+                top.Dialog.alert("请选中要编辑的记录!");
+                return;
+            }
+            if(rowsLength > 1) {
+                top.Dialog.alert("请只选中一条要编辑的记录!");
+                return;
+            }
+
+            var selectedRows = g.getSelectedRows();
+
+            top.Dialog.open({
+                URL : "${ctx}/monthAssessment/update.do?entity_id="+selectedRows[0][0],
+                Title : "编辑单位月考核用水",
+                Width : 800,
+                Height : 500
+            });
+
+
+        }
+        //修改
+        function onEdit(rowId){
+// 		alert(rowId);
+            top.Dialog.open({
+                ID:'a1',
+                URL:"${ctx}/monthAssessment/update.do?entity_id="+rowId,
+                Title:"修改水表",
+                Width:700,
+                Height:350
+            });
+        }
+
+        //导出单位月份考核用水
+        function exportExcel() {
+            var rows = g.getSelectedRows();
+            var rowsLength = rows.length;
+            var ids = getCheckedIdHandler();
+            if(rowsLength == 0 && ids=='') {
+                exportExcelByPage();
+                return;
+            }
+
+// 		alert(ids);
+            window.location.href="${ctx}/monthAssessment/exportExcel.do?&ids="+ids+"&flag=selected&exportType=list&pageNo=1&pageSize="+total_rows;
+            return;
+
+        }
+
+
+        //导出处理
+        function exportExcelByPage(){
+            var orgNumber=$("#orgNumber").val();
+            var orgName=$("#orgName").val();
+            var address=$("#address").val();
+            var year=$("#year").val();
+            var busOrgCustomerNumber=$("#busOrgCustomerNumber").val();
+            var busOrgMeterNumber=$("#busOrgMeterNumber").val();
+            var month=$('#month').val();
+
+            var overWaterBegin=$('#overWaterBegin').val();
+            var overWaterEnd=$('#overWaterEnd').val();
+            var amountReceivableBegin=$('#amountReceivableBegin').val();
+            var amountReceivableEnd=$('#amountReceivableEnd').val();
+            var isPlanUser=$("#isPlanUser").val();
+            var userType=$("#userType").val();
+
+            var url="${ctx}/monthAssessment/exportExcel.do?";
+            url +="orgNumber="+orgNumber;
+            url +="&orgName="+orgName;
+            url +="&address="+address;
+            url +="&year="+year;
+            url +="&busOrgCustomerNumber="+busOrgCustomerNumber;
+            url +="&busOrgMeterNumber="+busOrgMeterNumber;
+            url +="&month="+month;
+
+            url +="&overWaterBegin="+overWaterBegin;
+            url +="&overWaterEnd="+overWaterEnd;
+            url +="&amountReceivableBegin="+amountReceivableBegin;
+            url +="&amountReceivableEnd="+amountReceivableEnd;
+            url +="&isPlanUser="+isPlanUser;
+            url +="&userType="+userType;
+
+            url +="&flag=query";
+            url +="&exportType=list";
+            url +="&pageNo=1";
+            url +="&pageSize="+total_rows;
+            url = encodeURI(encodeURI(url));
+            window.location =url;
+            return false;
+        }
+
+        var checkedArray = [];
+        function findCheckedArray(id){
+            for(var i =0;i<checkedArray.length;i++){
+                if(checkedArray[i] == id) return i;
+            }
+            return -1;
+        }
+
+        function addCheckedArray(id){
+            if(findCheckedArray(id) == -1){
+                checkedArray.push(id);
+            }
+        }
+
+        function getCheckedIdHandler(){
+            return checkedArray.join(',');
+        }
+
+        function removeCheckedArray(id){
+            var i = findCheckedArray(id);
+            if(i==-1) return;
+            checkedArray.splice(i,1);
+        }
+
+        function checkedHandler(rowdata){
+            if (findCheckedArray(rowdata[0]) == -1)
+                return false;
+            return true;
+
+        }
+
+        function checkRowHandler(checked, data){
+            if (checked) addCheckedArray(data[0]);
+            else removeCheckedArray(data[0]);
+        }
+
+        function checkAllRowHandler(checked){
+            for (var rowid in this.records){
+                if(checked)
+                    addCheckedArray(this.records[rowid][0]);
+                else
+                    removeCheckedArray(this.records[rowid][0]);
+            }
+        }
+
+        //清空数组
+        function clearArray(){
+            checkedArray.length=0;
+        }
+    </script>
+
+</head>
+<body>
+<div class="box2" panelTitle="单位月考核用水信息列表">
+    <form action="" id="searchForm" method="post">
+        <input type="hidden" id="Q_importStatus_S_LK"
+               name="Q_importStatus_S_LK" value="normal" /> <input type="hidden"
+                                                                   id="pageNo" name="pageNo" value="1" /> <input type="hidden"
+                                                                                                                 id="pageSize" name="pageSize" value="10" />
+        <table>
+            <tr>
+                <td>单位编号:</td>
+                <td><input type="text" id="orgNumber" name="orgNumber" /></td>
+                <td>单位名称:</td>
+                <td><input type="text" id="orgName" name="orgName" /></td>
+                <td>单位地址:</td>
+                <td><input type="text" id="address" name="address" /></td>
+                <td>年度:</td>
+                <td><input class="date" dateFmt="yyyy" type="text" id="year"
+                           name="year" value="${year!''}" /></td>
+            </tr>
+            <tr>
+                <td>超用水量(≥)::</td>
+                <td><input type="text" id="overWaterBegin"
+                           name="overWaterBegin" /></td>
+                <td>并且(≤):</td>
+                <td><input type="text" id="overWaterEnd" name="overWaterEnd" /></td>
+                <td>应收金额(≥)::</td>
+                <td><input type="text" id="amountReceivableBegin"
+                           name="amountReceivableBegin" /></td>
+                <td>并且(≤):</td>
+                <td><input type="text" id="amountReceivableEnd"
+                           name="amountReceivableEnd" /></td>
+            </tr>
+            <tr>
+                <td>客户号:</td>
+                <td><input type="text" id="customerNumber"
+                           name="customerNumber" /></td>
+                <td>水表编号:</td>
+                <td><input type="text" id="meterNumber" name="meterNumber" /></td>
+                <td>月份:</td>
+                <td><select prompt="请选择" id="month" name="month"
+                            data='{"list":[{"value":"1","key":"一月"},{"value":"2","key":"二月"},{"value":"3","key":"三月"},{"value":"4","key":"四月"},{"value":"5","key":"五月"}
+                            ,{"value":"6","key":"六月"},{"value":"7","key":"七月"},{"value":"8","key":"八月"},{"value":"9","key":"九月"},{"value":"10","key":"十月"},{"value":"11","key":"十一月"},{"value":"12","key":"十二月"}]}'></select></td>
+                <td>是否计划户:</td>
+                <td><select prompt="请选择" id="isPlanUser"
+                            data='{"list":[{"value":"yes","key":"计划户"},{"value":"no","key":"非计划户"}]}'
+                            name="isPlanUser"></select></td>
+            </tr>
+            <tr>
+                <td>用户类型:</td>
+                <td><select prompt="请选择" id="userType" data='${userType}'
+                            name="userType"></select></td>
+                <td>用水单价:</td>
+                <td><select id="waterPrice" name="waterPrice">
+                    <option value="">请选择</option>
+                    <option value="0.00">0.00</option>
+                    <option value="0.10">0.10</option>
+                    <option value="1.14">1.14</option>
+                    <option value="1.21">1.21</option>
+                    <option value="1.45">1.45</option>
+                    <option value="1.49">1.49</option>
+                    <option value="2.20">2.20</option>
+                    <option value="4.97">4.97</option>
+                </select></td>
+                <td style="padding-left: 15px;"><button type="reset"
+                                                        onclick="resetSearch()">
+                    <span class="icon_find">重置</span>
+                </button></td>
+                </td>
+                <td style="padding-left: 15px;"><button type="button"
+                                                        onclick="searchHandler()">
+                    <span class="icon_find">查询</span>
+                </button></td>
+                </td>
+            </tr>
+        </table>
+    </form>
+</div>
+<div id="scrollContent">
+    <div class="padding_right5">
+        <div id="maingrid"></div>
+    </div>
+</div>
+<!-- <div id="pageContent" style="height:35px;"></div> -->
+<!-- 分页组件 -->
+<div style="height: 35px;">
+    <div id="letfContent" class="float_left padding5"></div>
+    <div class="float_right padding5">
+        <div id="pager" total="0" class="pageArrow" showSelect="true"
+             inputPosition="right"></div>
+    </div>
+    <div class="clear"></div>
+</div>
+
+</body>
+</html>

+ 66 - 0
WebContent/WEB-INF/view/bus/month-assessment-view.jsp

@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>单位水表对应表打印预览</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+    <style media=print type="text/css">
+        .noprint {
+            visibility: hidden
+        }
+    </style>
+</head>
+<body>
+<div class="noprint"
+     style="padding-top: 10px; padding-right: 200px; text-align: right;">
+    <input type="button" value="打印" onclick="window.print();">
+</div>
+<table class="tableStyle" mode="list"
+       style="width: 1200px; font-size: 16px;" align="center">
+    <tr>
+        <td>单位编号</td>
+        <td>单位名称</td>
+        <td>单位地址</td>
+        <td>用户类型</td>
+        <td>月份</td>
+        <td>用水计划指标</td>
+        <td>实际用水量</td>
+        <td>实际收水量</td>
+        <td>超用率</td>
+        <td>应收金额</td>
+        <td>实收金额</td>
+        <td>是否销帐</td>
+        <td>销帐日期</td>
+        <td>付款方式</td>
+        <td>用水单价</td>
+    </tr>
+    <#list list as p>
+    <tr>
+        <td>${p.orgNumber!''}</td>
+        <td>${p.orgName!''}</td>
+        <td>${p.address!'' }</td>
+        <td>${p.userType!'' }</td>
+        <td>${p.assessmentMonth!'' }</td>
+        <td>${p.waterPlanningIndex!'' }</td>
+        <td>${p.actualUseWater!'0' }</td>
+        <td>${p.actualClosingWater!'0' }</td>
+        <td>${p.overWaterPercent!'0' }%</td>
+        <td>${p.amountReceivable!'0' }</td>
+        <td>${p.paidInAmount!'0' }</td>
+        <td>${p.isWriteOff!'' }</td>
+        <td>${p.writeOffDate!'' }</td>
+        <td>${p.modeOfPayment!'' }</td>
+        <td>${p.waterPrice!'0' }</td>
+    </tr>
+</#list>
+</table>
+
+</body>
+</html>

+ 159 - 0
WebContent/WEB-INF/view/bus/month-assessment-write-off.jsp

@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>添加角色信息</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+
+    <!-- 表单验证start -->
+    <link rel="stylesheet"
+          href="${ctx}/qui/libs/js/form/validform/css/style.css" type="text/css"
+          media="all" />
+    <script src="${ctx}/qui/libs/js/form/validform/validform.js"
+            type="text/javascript"></script>
+    <!-- 表单验证end -->
+
+    <!--表单异步提交start-->
+    <script src="${ctx}/qui/libs/js/form/form.js" type="text/javascript"></script>
+    <!--表单异步提交end-->
+
+    <!-- 日期选择框start -->
+    <script type="text/javascript"
+            src="${ctx}/qui/libs/js/form/datePicker/WdatePicker.js"></script>
+    <!-- 日期选择框end -->
+
+</head>
+<body>
+<div style="text-align: center;">
+    <h2>计划户第${assessmentMonth!''}月份销帐</h2>
+</div>
+<div class="box1">
+
+    <form id="myFormId" method="POST"
+          action="${ctx}/monthAssessment/updateData.do" target="back">
+        <input type="hidden" name="orgId" id="orgId" value="${org.orgId!''}" />
+        <input type="hidden" name="assessmentId" id="assessmentId"
+               value="${assessmentId!''}" />
+        <table class="tableStyle" formMode="line">
+            <tr>
+                <td><span class="star"></span>单位编号:</td>
+                <td><input type="text" id="orgNumber" name="orgNumber"
+                           value="${org.orgNumber!''}" readonly="readonly" /></td>
+                <td><span class="star"></span>单位名称:</td>
+                <td><input type="text" id="orgName" name="orgName"
+                           value="${org.orgName!''}" readonly="readonly" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>${assessmentMonth!''}月应收金额:</td>
+                <td><input type="text" id="amountReceivable"
+                           name="amountReceivable" value="${amountReceivable!''}"
+                           readonly="readonly" /></td>
+                <td><span class="star"></span>${assessmentMonth!''月付款方式:</td>
+                <td><select selectedValue="${modeOfPayment!''}"
+                            id="modeOfPayment" name="modeOfPayment"
+                            data='{"list":[{"value":"1","key":"现金"},{"value":"2","key":"转账"}]}'></select>
+                </td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>开户银行:</td>
+                <td><input type="text" id="bank" name="bank" value=""
+                           disabled="true" /></td>
+                <td><span class="star"></span>银行帐号:</td>
+                <td><input type="text" id="bankAccount" name="bankAccount"
+                           disabled="true" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>是否销帐:</td>
+                <td><select selectedValue="${isWriteOff!''}" name="isWriteOff"
+                            data='{"list":[{"value":"yes","key":"是"},{"value":"no","key":"否"}]}'></select>
+                </td>
+                <td><span class="star"></span>销帐日期:</td>
+                <td><input type="text" id="date" name="date" class="date"
+                           value="${writeOffDate!''}" dateFmt="yyyy-MM-dd" datatype="*" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>${assessmentMonth!''}月实收金额:</td>
+                <td><input type="text" id="paidInAmount" name="paidInAmount"
+                           value="${paidInAmount!''}" /></td>
+                <td><span class="star"></span>发票编号:</td>
+                <td><input type="text" id="invoiceNo" name="invoiceNo"
+                           value="${invoiceNo!''}" /></td>
+                <!-- 				<td colspan="2"></td> -->
+            </tr>
+            <tr>
+                <td>备注</td>
+                <td colspan="3"><textarea rows="" cols="" id="remark"
+                                          name="remark" style="width: 300px;">${remark!''}</textarea></td>
+            </tr>
+            <tr>
+                <td colspan="4"><input type="submit" value="保存" /> <input
+                        type="button" value="取消" onclick="top.Dialog.close()" /></td>
+            </tr>
+        </table>
+    </form>
+</div>
+<!-- 异步提交start -->
+<script type="text/javascript">
+    function initComplete(){
+        //绑定change事件
+        $("#modeOfPayment").bind("change",function(){
+            if($(this).attr("relValue")==1){
+                $("#bank").attr("disabled",true);
+                $("#bankAccount").attr("disabled",true);
+                $("#bank").attr("value","");
+                $("#bankAccount").attr("value","");
+            }
+            if($(this).attr("relValue")==2){
+                $("#bank").attr("disabled",false);
+                $("#bankAccount").attr("disabled",false);
+            }
+        });
+
+        //表单提交
+        $("#myFormId").Validform({
+            tiptype:3,//表示在右边显示
+            ajaxPost:true,
+            showAllError:true,
+            callback:function(responseText){
+                $.Hidemsg();
+                if(responseText.status=="y"){
+                    top.Dialog.alert(responseText.info,function(){
+                        closeWin();
+                    });
+                }else{
+                    top.Dialog.alert(responseText.info,function(){
+                        return false;
+                    });
+                }
+
+            }
+        });
+    }
+
+    function addOrgIdParam(){
+        var orgNumber = $('#orgNumber').val();
+        $('#customerNumber').attr("ajaxurl","${ctx}/customerMeter/validCustomerNumber.do?orgNumber="+orgNumber);
+    }
+
+    //重置
+    function closeWin(){
+        //刷新数据
+        top.frmright.resetSearch();
+        //关闭窗口
+        top.Dialog.close();
+    }
+
+    function showSelect(){
+        top.Dialog.open({URL:"${ctx}/monthAssessment/annualPlanSelectedPage.do?year="+$('#year').val(),Width:800,Height:400,Title:"单位选择页面"});
+    }
+</script>
+<!-- 异步提交end -->
+</body>
+</html>

+ 157 - 0
WebContent/WEB-INF/view/bus/yearhf-assessment-create.jsp

@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>新增单位半年考核用水</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+
+    <!-- 表单验证start -->
+    <link rel="stylesheet"
+          href="${ctx}/qui/libs/js/form/validform/css/style.css" type="text/css"
+          media="all" />
+    <script src="${ctx}/qui/libs/js/form/validform/validform.js"
+            type="text/javascript"></script>
+    <!-- 表单验证end -->
+
+    <!--表单异步提交start-->
+    <script src="${ctx}/qui/libs/js/form/form.js" type="text/javascript"></script>
+    <!--表单异步提交end-->
+
+    <!-- 日期选择框start -->
+    <script type="text/javascript"
+            src="${ctx}/qui/libs/js/form/datePicker/WdatePicker.js"></script>
+    <!-- 日期选择框end -->
+
+</head>
+<body>
+<div class="box1">
+    <form id="myFormId" method="POST"
+          action="${ctx}/yearhfAssessment/createData.do" target="back">
+        <input type="hidden" name="orgId" id="orgId" value="" />
+        <table class="tableStyle" formMode="line">
+            <tr>
+                <td><span class="star">*</span>年度计划供水表:</td>
+                <td><input type="text" id="orgName" name="orgName" value=""
+                           onclick="showSelect();" readonly="readonly" datatype="*" /></td>
+                <td><span class="star"></span>年度:</td>
+                <td><input type="text" id="year" name="year"
+                           value="${year!''}" datatype="*" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>单位编号:</td>
+                <td><input type="text" id="orgNumber" name="orgNumber"
+                           datatype="*" /></td>
+                <td><span class="star"></span>用户类型:</td>
+                <td><input type="text" id="userType" name="userType" value="" />
+                </td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>是否计划户:</td>
+                <td><input type="text" id="isPlanUser" name="isPlanUser"
+                           datatype="*" /></td>
+                <td colspan="2"></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>客户号:</td>
+                <td><input type="text" id="customerNumber"
+                           name="customerNumber" value="" /></td>
+                <td><span class="star"></span>水表编号:</td>
+                <td><input type="text" id="meterNumber" name="meterNumber"
+                           value="" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>考核类型:</td>
+                <td><input type="text" id="" name="" value="半年考核"
+                           readonly="readonly" /></td>
+                <td><span class="star"></span>考核半年度:</td>
+                <td><input type="text" id="assessmentYearhf"
+                           name="assessmentYearhf" value="" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>用水类型:</td>
+                <td><input type="text" id="waterType" name="waterType"
+                           value="" readonly="readonly" /></td>
+                <!-- 				<td><span class="star"></span>用水单价:</td> -->
+                <!-- 				<td> -->
+                <!-- 					<input type="text" id="waterPrice" name="waterPrice" value=""/> -->
+                <!-- 				</td> -->
+                <!-- 				<td colspan="2"> -->
+                <!-- 				</td> -->
+                <td><span class="star"></span>计划用水指标:</td>
+                <td><input type="text" id="waterPlanningIndex"
+                           name="waterPlanningIndex" value="" /></td>
+            </tr>
+            <!-- 			<tr> -->
+
+            <!-- 				<td colspan="2"></td> -->
+            <!-- 				<td><span class="star"></span>实收水量:</td> -->
+            <!-- 				<td> -->
+            <!-- 					<input type="text" id="actualClosingWater" name="actualClosingWater" value="" readonly="readonly"/> -->
+            <!-- 				</td> -->
+            <!-- 			</tr> -->
+            <!-- 			<tr> -->
+
+            <!-- 				<td><span class="star"></span>实际用水量:</td> -->
+            <!-- 				<td> -->
+            <!-- 					<input type="text" id="actualUseWater" name="actualUseWater" value="" readonly="readonly"/> -->
+            <!-- 				</td> -->
+            <!-- 			</tr> -->
+            <tr>
+                <td colspan="4"><input type="submit" value="保存" /> <input
+                        type="button" value="取消" onclick="top.Dialog.close()" /></td>
+            </tr>
+        </table>
+    </form>
+</div>
+<!-- 异步提交start -->
+<script type="text/javascript">
+    function initComplete(){
+
+        //表单提交
+        $("#myFormId").Validform({
+            tiptype:3,//表示在右边显示
+            ajaxPost:true,
+            showAllError:true,
+            callback:function(responseText){
+                $.Hidemsg();
+                if(responseText.status=="y"){
+                    top.Dialog.alert(responseText.info,function(){
+                        closeWin();
+                    });
+                }else{
+                    top.Dialog.alert(responseText.info,function(){
+                        return false;
+                    });
+                }
+
+            }
+        });
+    }
+
+    function addOrgIdParam(){
+        var orgNumber = $('#orgNumber').val();
+        $('#customerNumber').attr("ajaxurl","${ctx}/customerMeter/validCustomerNumber.do?orgNumber="+orgNumber);
+    }
+
+    //重置
+    function closeWin(){
+        //刷新数据
+        top.frmright.resetSearch();
+        //关闭窗口
+        top.Dialog.close();
+    }
+
+    function showSelect(){
+        top.Dialog.open({URL:"${ctx}/yearhfAssessment/annualPlanSelectedPage.do?year=${year!''}",Width:800,Height:400,Title:"单位选择页面"});
+    }
+</script>
+<!-- 异步提交end -->
+</body>
+</html>

+ 180 - 0
WebContent/WEB-INF/view/bus/yearhf-assessment-edit.jsp

@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>修改单位半年考核用水</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+
+    <!-- 表单验证start -->
+    <link rel="stylesheet"
+          href="${ctx}/qui/libs/js/form/validform/css/style.css" type="text/css"
+          media="all" />
+    <script src="${ctx}/qui/libs/js/form/validform/validform.js"
+            type="text/javascript"></script>
+    <!-- 表单验证end -->
+
+    <!--表单异步提交start-->
+    <script src="${ctx}/qui/libs/js/form/form.js" type="text/javascript"></script>
+    <!--表单异步提交end-->
+
+    <!-- 日期选择框start -->
+    <script type="text/javascript"
+            src="${ctx}/qui/libs/js/form/datePicker/WdatePicker.js"></script>
+    <!-- 日期选择框end -->
+
+</head>
+<body>
+<div class="box1">
+    <form id="myFormId" method="POST"
+          action="${ctx}/yearhfAssessment/updateData.do" target="back">
+        <input type="hidden" name="orgId" id="orgId" value="${org.orgId!''}" />
+        <input type="hidden" name="assessmentId" id="assessmentId"
+               value="${assessmentId!''}" />
+        <table class="tableStyle" formMode="line">
+            <tr>
+                <td><span class="star">*</span>年度计划供水表:</td>
+                <td><input type="text" id="orgName" name="orgName"
+                           value="${org.orgName!''}" onclick="showSelect();"
+                           readonly="readonly" datatype="*" /></td>
+                <td><span class="star"></span>年度:</td>
+                <td><input type="text" id="year" name="year"
+                           value="${org.year!''}" datatype="*" readonly="readonly" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>单位编号:</td>
+                <td><input type="text" id="orgNumber" name="orgNumber"
+                           value="${org.orgNumber!''}" datatype="*" readonly="readonly" /></td>
+                <td><span class="star"></span>用户类型:</td>
+                <td><input type="text" id="userType" name="userType"
+                           value="${org.userType!''}" readonly="readonly" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>是否计划户:</td>
+                <td><input type="text" id="isPlanUser" name="isPlanUser"
+                           value="${org.showIsPlanUser!''}" datatype="*" readonly="readonly" />
+                </td>
+                <td colspan="2"></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>客户号:</td>
+                <td><input type="text" id="customerNumber"
+                           name="customerNumber" value="${org.busOrgCustomerNumber!''}"
+                           readonly="readonly" /></td>
+                <td><span class="star"></span>水表编号:</td>
+                <td><input type="text" id="meterNumber" name="meterNumber"
+                           value="${org.busOrgMeterNumber!''}" readonly="readonly" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>考核类型:</td>
+                <td><input type="text" id="" name="" value="半年考核"
+                           readonly="readonly" /></td>
+                <td><span class="star"></span>考核半年度:</td>
+                <td><input type="text" id="assessmentYearhf"
+                           name="assessmentYearhf" value="${assessmentYearhf!''}" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>用水单价:</td>
+                <td><input type="text" id="waterPrice" name="waterPrice"
+                           value="${waterPrice!''}" /></td>
+                <!-- 				<td colspan="2"> -->
+                <!-- 				</td> -->
+                <td><span class="star"></span>计划用水指标:</td>
+                <td><input type="text" id="waterPlanningIndex"
+                           name="waterPlanningIndex" value="${waterPlanningIndex!''}" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>实际用水量:</td>
+                <td><input type="text" id="actualUseWater"
+                           name="actualUseWater" value="${usewater!''}"  />
+                </td>
+                <td><span class="star"></span>实收水量:</td>
+                <td><input type="text" id="actualClosingWater"
+                           name="actualClosingWater" value="${overWater!''}"
+                /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>超用百分比(%):</td>
+                <td><input type="text" id="overWaterPercent"
+                           name="overWaterPercent" value="${overWaterPercent!''}"
+                /></td>
+                <td><span class="star"></span>非税缴费状态:</td>
+                <td><input type="radio" id="taxPay-0" name="taxPay" value="0"
+                           checked="checked" /><label for="taxPay-0" class="hand">未缴费</label>
+                    <input type="radio" id="taxPay-1" name="taxPay" value="1"<#if
+                    taxpay??&&taxpay=='1'> checked="checked" </#if> /><label
+                    for="taxPay-1" class="hand">已缴费</label></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>是否销帐:</td>
+                <td>
+                    <!-- 					<input type="text" id="isWriteOff" name="isWriteOff"/> -->
+                    <select name="isWriteOff"
+                            selectedValue="${isWriteOff!''}"
+                            data='{"list":[{"value":"yes","key":"是"},{"value":"no","key":"否"}]}'></select>
+                </td>
+                <td><span class="star"></span>销帐日期:</td>
+                <td>
+                    <!-- 					<input type="text" id="writeOffDate" name="writeOffDate"/> -->
+                    <input type="text" id="date" name="date" class="date"
+                           value="${writeOffDate!''}" dateFmt="yyyy-MM-dd" />
+                </td>
+            </tr>
+            <tr>
+                <td colspan="4"><input type="submit" value="保存" /> <input
+                        type="button" value="取消" onclick="top.Dialog.close()" /></td>
+            </tr>
+        </table>
+    </form>
+</div>
+<!-- 异步提交start -->
+<script type="text/javascript">
+    function initComplete(){
+
+        //表单提交
+        $("#myFormId").Validform({
+            tiptype:3,//表示在右边显示
+            ajaxPost:true,
+            showAllError:true,
+            callback:function(responseText){
+                $.Hidemsg();
+                if(responseText.status=="y"){
+                    top.Dialog.alert(responseText.info,function(){
+                        closeWin();
+                    });
+                }else{
+                    top.Dialog.alert(responseText.info,function(){
+                        return false;
+                    });
+                }
+
+            }
+        });
+    }
+
+    function addOrgIdParam(){
+        var orgNumber = $('#orgNumber').val();
+        $('#customerNumber').attr("ajaxurl","${ctx}/customerMeter/validCustomerNumber.do?orgNumber="+orgNumber);
+    }
+
+    //重置
+    function closeWin(){
+        //刷新数据
+        top.frmright.resetSearch();
+        //关闭窗口
+        top.Dialog.close();
+    }
+
+    function showSelect(){
+        top.Dialog.open({URL:"${ctx}/yearhfAssessment/annualPlanSelectedPage.do?year="+$('#year').val(),Width:800,Height:400,Title:"单位选择页面"});
+    }
+</script>
+<!-- 异步提交end -->
+</body>
+</html>

+ 649 - 0
WebContent/WEB-INF/view/bus/yearhf-assessment-list.jsp

@@ -0,0 +1,649 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>单位半年考核用水表</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+
+    <!-- 日期选择框start -->
+    <script type="text/javascript"
+            src="${ctx}/qui/libs/js/form/datePicker/WdatePicker.js"></script>
+    <!-- 日期选择框end -->
+    <!--数据表格start-->
+    <script src="${ctx}/qui/libs/js/table/quiGrid.js" type="text/javascript"></script>
+    <!--数据表格end-->
+
+    <!--箭头分页start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/nav/pageArrow.js"></script>
+    <!--箭头分页end-->
+
+    <!--表单异步提交start-->
+    <script src="${ctx}/qui/libs/js/form/form.js" type="text/javascript"></script>
+    <!--表单异步提交end-->
+
+
+    <script type="text/javascript">
+        var g_pageNo = 1;
+        var g_pageSize = 10;
+        var total_rows=0;
+        //刷新记忆
+        var checkedArray = [];
+
+        //数据表格使用
+        var g;
+        var gridData;
+        function initComplete(){
+            g = $("#maingrid").quiGrid({
+                columns: [
+                    { display: '单位编号', name: '2',     align: 'center', width: "6%"},
+                    { display: '单位名称', name: '3',     align: 'center', width: "10%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '单位地址', name: '4',     align: 'center', width: "13%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '水表号', name: '25',     align: 'center', width: "13%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '邮寄地址', name: '24',     align: 'center', width: "13%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '邮编', name: '23',     align: 'center', width: "6%",
+                        render:function(rowdata, rowindex, value, column){
+                            return "<font class='textSlice' style='width:100%;cursor: pointer;' title='"+value+"'>"+value+"</font>";
+                        }
+                    },
+                    { display: '用户类型', name: '6',     align: 'center', width: "6%",
+                        render:function(rowdata, rowindex, value, column){
+                            if(value == "1"){
+                                return "自来水户";
+                            }else if(value == "2"){
+                                return "取水户";
+                            }else{
+                                return "";
+                            }
+                        }
+                    },
+                    { display: '半年度', name: '8',     align: 'center', width: "5%"},
+                    { display: '用水计划指标', name: '9',     align: 'center', width: "5%"},
+                    { display: '用水计划旧指标', name: '32',     align: 'center', width: "5%"},
+                    { display: '实际用水量', name: '14',     align: 'center', width: "5%"},
+                    { display: '实际收水量', name: '15',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return value.toFixed(0);
+                        }
+                    },
+                    { display: '超用率(%)', name: '16',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return value+'%';
+                        }
+                    },
+                    { display: '应收金额', name: '18',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+                    { display: '实收金额', name: '17',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+                    { display: '是否销账', name: '10',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            if(value=='yes'){
+                                return "是";
+                            }
+                            if(value=='no'){
+                                return "否";
+                            }
+                        }
+                    },
+                    { display: '销帐日期', name: '11',     align: 'center', width: "5%"},
+                    { display: '付款方式', name: '12',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            if(value=='1'){
+                                return "现金";
+                            }
+                            if(value=='2'){
+                                return "转账";
+                            }
+                        }
+                    },
+                    { display: '用水单价', name: '13',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(2);
+                        }
+                    },
+                    { display: '超10-30%的水量', name: '27',     align: 'center', width: "5%"		            },
+
+                    { display: '超30%以上的水量', name: '28',     align: 'center', width: "5%"		            },
+                    { display: '超10-30%的金额', name: '30',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+
+                    { display: '超30%以上的金额', name: '29',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+
+                    { display: '总金额', name: '31',     align: 'center', width: "5%",
+                        render: function (rowdata, rowindex, value, column){
+                            return Number(value).toFixed(1);
+                        }
+                    },
+                    { display: '操作', isAllowHide: false, align: 'center', width:"15%",
+                        render: function (rowdata, rowindex, value, column){
+                            return '<div class="padding_top4 padding_left20">'
+                                <@pop_perm url="/yearhfAssessment/update.do">
+                                + '<a href="#"  onclick="onEdit('+ rowdata[0]+')"><span class="icon_edit">修改</span></a>'
+                                </@pop_perm>
+                                <@pop_perm url="/yearhfAssessment/delete.do">
+                                + '<a href="#"  onclick="onDelete('+ rowdata[0]+')"><span class="icon_delete">删除</span></a>'
+                                </@pop_perm>
+                                + '</div>';
+                        }
+                    }],
+                toolbar:{
+                    items:[
+                    <@pop_perm url="/yearhfAssessment/create.do">
+                {text:'新增',click:onCreate,iconClass:'icon_add'},
+        </@pop_perm>
+
+            <@pop_perm url="/yearhfAssessment/update.do">
+                {line:true},
+                {text:'修改',click:onEdit1, iconClass:'icon_edit'},
+        </@pop_perm>
+
+            <@pop_perm url="/yearhfAssessment/delete.do">
+                {line:true},
+                {text:'批量删除',click:batchDelete, iconClass:'icon_delete'},
+        </@pop_perm>
+            <@pop_perm url="/yearhfAssessment/print.do">
+                {line:true},
+                {text:'打印',click:print, iconClass:'icon_print'},
+        </@pop_perm>
+            <@pop_perm url="/yearhfAssessment/exportExcel.do">
+                {line:true},
+                {text:'导出',click:exportExcel, iconClass:'icon_export'},
+        </@pop_perm>
+
+            <@pop_perm url="/yearhfAssessment/wx.do">
+                {line:true},
+                {text:'wx',click:wx, iconClass:'icon_export'},
+        </@pop_perm>
+            {line:true}
+        ]
+        },
+            data:[],  sortName: 'showOrgName',rownumbers:true,checkbox:true,usePager: false,height: '100%', width:"100%",heightDiff:-40,pageSize:g_pageSize,
+                onChangeSort : function(){
+                getData(g.options.sortName,g.options.sortOrder,g_pageNo,g_pageSize);
+                return false;
+            },isChecked:checkedHandler,onCheckRow: checkRowHandler, onCheckAllRow: checkAllRowHandler
+        });
+
+            //点击分页触发
+        }
+
+        $(function(){
+            getData(g_pageNo,g_pageSize);
+        })
+
+        //打印年度计划供水表预览
+        // 	    function print(){
+        // 	    	window.open("${ctx}/yearhfAssessment/print.do?exportType=list&pageNo=1&pageSize="+total_rows);
+        // 	    }
+
+        //打印
+        function print(){
+            var rows = g.getSelectedRows();
+            var rowsLength = rows.length;
+            var ids = getCheckedIdHandler();
+            if(rowsLength == 0 && ids=='') {
+                printByPage();
+                return;
+            }
+
+            window.open("${ctx}/yearhfAssessment/print.do?exportType=list&ids="+ids+"&flag=selected&pageNo=1&pageSize="+total_rows);
+            return;
+        }
+
+        //打印
+        function wx(){
+            window.open("${ctx}/yearhfAssessment/wx.do");
+            return;
+        }
+        function printByPage(){
+            var orgNumber=$("#orgNumber").val();
+            var orgName=$("#orgName").val();
+            var address=$("#address").val();
+            var year=$("#year").val();
+            var busOrgCustomerNumber=$("#busOrgCustomerNumber").val();
+            var busOrgMeterNumber=$("#busOrgMeterNumber").val();
+            var yearhf=$('#yearhf').val();
+
+            var overWaterBegin=$('#overWaterBegin').val();
+            var overWaterEnd=$('#overWaterEnd').val();
+            var amountReceivableBegin=$('#amountReceivableBegin').val();
+            var amountReceivableEnd=$('#amountReceivableEnd').val();
+            var isPlanUser=$("#isPlanUser").val();
+            var userType=$("#userType").val();
+
+            var url="${ctx}/yearhfAssessment/print.do?";
+            url +="orgNumber="+orgNumber;
+            url +="&orgName="+orgName;
+            url +="&address="+address;
+            url +="&year="+year;
+            url +="&busOrgCustomerNumber="+busOrgCustomerNumber;
+            url +="&busOrgMeterNumber="+busOrgMeterNumber;
+            url +="&yearhf="+yearhf;
+
+            url +="&overWaterBegin="+overWaterBegin;
+            url +="&overWaterEnd="+overWaterEnd;
+            url +="&amountReceivableBegin="+amountReceivableBegin;
+            url +="&amountReceivableEnd="+amountReceivableEnd;
+            url +="&isPlanUser="+isPlanUser;
+            url +="&userType="+userType;
+
+            url +="&flag=query";
+            url +="&exportType=list";
+            url +="&pageNo=1";
+            url +="&pageSize="+total_rows;
+            url = encodeURI(encodeURI(url));
+            window.open(url);
+        }
+
+        /**初始时通过向后台传递排序id、排序顺序、初始页码、每页条数**/
+        function getData(pageNo,pageSize){
+            jQuery.post("${ctx}/yearhfAssessment/listPage.do",
+                getFormParams(pageNo,pageSize),
+                function(result){
+                    gridData = result;
+                    //刷新表格
+                    g.loadData(gridData);
+                    total_rows=gridData["pager.totalRows"];
+                    //设置左边内容页
+                    var content ="共有" + gridData["pager.totalRows"] + "条记录";
+                    $("#letfContent").html("");
+                    $("#letfContent").html(content);
+                    //取得分页组件
+                    var pager=$("#pager");
+                    //设置总页页数
+                    pager.attr("total",gridData["pager.totalRows"]);
+                    pager.render();
+                    //绑定翻页事件
+                    pager.unbind("pageChange");
+                    pager.bind("pageChange",function(e,index){
+                        g_pageNo = index + 1;
+                        getData(g_pageNo,g_pageSize);
+                    });
+                    //绑定选择每页显示记录数事件
+                    pager.bind("sizeChange",function(e,num){
+                        g_pageSize = num;
+                        getData(g_pageNo,g_pageSize);
+                    });
+                },"json");
+        }
+
+        function getData2(sort,direction,pageNo,pageSize){
+            $.post("${ctx}/yearhfAssessment/listPage.do",
+                {
+                    "pageNo":pageNo,
+                    "pageSize":pageSize
+                },
+                function(result){
+                    gridData = result;
+                    //刷新表格
+                    g.loadData(gridData);
+                },"json");
+        }
+
+        //查询
+        function searchHandler(){
+            //清空数组
+            clearArray();
+            //重新加载数据,设置当前页面为1
+            getData(1,g_pageSize);
+        }
+
+        /**获得查询表单的提交查询的值**/
+        function getFormParams(pageNo,pageSize){
+            $("#pageNo").val(pageNo);
+            $("#pageSize").val(pageSize);
+            return $("#searchForm").formToArray();
+        }
+
+        /**重置于查询表单,然后重新加载表格数据**/
+        function resetSearch(){
+            //清空数组
+            clearArray();
+            $("#searchForm")[0].reset();
+            //重新加载数据,设置当前页面为1
+            getData(1,g_pageSize);
+        }
+
+        //单条记录删除
+        function onDelete(rowid){
+            top.Dialog.confirm("确定要删除该记录吗?",function(){
+                //删除记录
+                jQuery.post("${ctx}/yearhfAssessment/delete.do",
+                    {"ids":rowid},
+                    function(responseText){
+                        if(responseText.status=="y"){
+                            top.Dialog.alert(responseText.info);
+                            resetSearch();
+                        }else{
+                            top.Dialog.alert(responseText.info);
+                        }
+
+                    },
+                    "json");
+            });
+        }
+
+        //批量删除
+        function batchDelete() {
+            var rows = g.getSelectedRows();
+            var rowsLength = rows.length;
+            if(rowsLength == 0) {
+                top.Dialog.alert("请选中要删除的记录!");
+                return;
+            }
+            top.Dialog.confirm("确定要删除吗?",function(){
+                jQuery.post("${ctx}/yearhfAssessment/delete.do",
+                    //获取所有选中行
+                    getSelectId(g),
+                    function(responseText){
+                        if(responseText.status=="y"){
+                            top.Dialog.alert(responseText.info);
+                            resetSearch();
+                        }else{
+                            top.Dialog.alert(responseText.info);
+                            return false;
+                        }
+                    },
+                    "json");
+            });
+
+            //获取所有选中行获取选中行的id 格式为 ids=1&ids=2
+            function getSelectId(grid) {
+                var selectedRows = grid.getSelectedRows();
+                var selectedRowsLength = selectedRows.length;
+                var ids = "";
+                for(var i = 0;i<selectedRowsLength;i++) {
+                    ids += selectedRows[i][0] + ",";
+                }
+                return {"ids":ids};
+            }
+        }
+
+        //新增
+        function onCreate(){
+            top.Dialog.open({
+                ID:'a1',
+                URL:"${ctx}/yearhfAssessment/create.do?year="+$('#year').val(),
+                Title:"新增半年考核",
+                Width:700,
+                Height:350
+            });
+        }
+
+
+        //修改单位基本信息
+        function onEdit1() {
+            var rows = g.getSelectedRows();
+            var rowsLength = rows.length;
+            if(rowsLength == 0) {
+                top.Dialog.alert("请选中要编辑的记录!");
+                return;
+            }
+            if(rowsLength > 1) {
+                top.Dialog.alert("请只选中一条要编辑的记录!");
+                return;
+            }
+
+            var selectedRows = g.getSelectedRows();
+
+            top.Dialog.open({
+                URL : "${ctx}/yearhfAssessment/update.do?entity_id="+selectedRows[0][0],
+                Title : "编辑单位半年考核用水",
+                Width : 800,
+                Height : 500
+            });
+
+
+        }
+        //修改
+        function onEdit(rowId){
+// 		alert(rowId);
+            top.Dialog.open({
+                ID:'a1',
+                URL:"${ctx}/yearhfAssessment/update.do?entity_id="+rowId,
+                Title:"修改水表",
+                Width:700,
+                Height:350
+            });
+        }
+
+        //导出单位半年考核用水
+        function exportExcel() {
+            var rows = g.getSelectedRows();
+            var rowsLength = rows.length;
+            var ids = getCheckedIdHandler();
+            if(rowsLength == 0 && ids=='') {
+                exportExcelByPage();
+                return;
+            }
+
+// 		alert(ids);
+            window.location.href="${ctx}/yearhfAssessment/exportExcel.do?&ids="+ids+"&flag=selected&exportType=list&pageNo=1&pageSize="+total_rows;
+            return;
+
+        }
+
+
+        //导出处理
+        function exportExcelByPage(){
+            var orgNumber=$("#orgNumber").val();
+            var orgName=$("#orgName").val();
+            var address=$("#address").val();
+            var year=$("#year").val();
+            var busOrgCustomerNumber=$("#busOrgCustomerNumber").val();
+            var busOrgMeterNumber=$("#busOrgMeterNumber").val();
+            var yearhf=$('#yearhf').val();
+
+            var overWaterBegin=$('#overWaterBegin').val();
+            var overWaterEnd=$('#overWaterEnd').val();
+            var amountReceivableBegin=$('#amountReceivableBegin').val();
+            var amountReceivableEnd=$('#amountReceivableEnd').val();
+            var isPlanUser=$("#isPlanUser").val();
+            var userType=$("#userType").val();
+
+            var url="${ctx}/yearhfAssessment/exportExcel.do?";
+            url +="orgNumber="+orgNumber;
+            url +="&orgName="+orgName;
+            url +="&address="+address;
+            url +="&year="+year;
+            url +="&busOrgCustomerNumber="+busOrgCustomerNumber;
+            url +="&busOrgMeterNumber="+busOrgMeterNumber;
+            url +="&yearhf="+yearhf;
+
+            url +="&overWaterBegin="+overWaterBegin;
+            url +="&overWaterEnd="+overWaterEnd;
+            url +="&amountReceivableBegin="+amountReceivableBegin;
+            url +="&amountReceivableEnd="+amountReceivableEnd;
+            url +="&isPlanUser="+isPlanUser;
+            url +="&userType="+userType;
+
+            url +="&flag=query";
+            url +="&exportType=list";
+            url +="&pageNo=1";
+            url +="&pageSize="+total_rows;
+            url = encodeURI(encodeURI(url));
+            window.location =url;
+            return false;
+        }
+
+        var checkedArray = [];
+        function findCheckedArray(id){
+            for(var i =0;i<checkedArray.length;i++){
+                if(checkedArray[i] == id) return i;
+            }
+            return -1;
+        }
+
+        function addCheckedArray(id){
+            if(findCheckedArray(id) == -1){
+                checkedArray.push(id);
+            }
+        }
+
+        function getCheckedIdHandler(){
+            return checkedArray.join(',');
+        }
+
+        function removeCheckedArray(id){
+            var i = findCheckedArray(id);
+            if(i==-1) return;
+            checkedArray.splice(i,1);
+        }
+
+        function checkedHandler(rowdata){
+            if (findCheckedArray(rowdata[0]) == -1)
+                return false;
+            return true;
+
+        }
+
+        function checkRowHandler(checked, data){
+            if (checked) addCheckedArray(data[0]);
+            else removeCheckedArray(data[0]);
+        }
+
+        function checkAllRowHandler(checked){
+            for (var rowid in this.records){
+                if(checked)
+                    addCheckedArray(this.records[rowid][0]);
+                else
+                    removeCheckedArray(this.records[rowid][0]);
+            }
+        }
+
+        //清空数组
+        function clearArray(){
+            checkedArray.length=0;
+        }
+    </script>
+
+</head>
+<body>
+<div class="box2" panelTitle="单位半年考核用水信息列表">
+    <form action="" id="searchForm" method="post">
+        <input type="hidden" id="Q_importStatus_S_LK"
+               name="Q_importStatus_S_LK" value="normal" /> <input type="hidden"
+                                                                   id="pageNo" name="pageNo" value="1" /> <input type="hidden"
+                                                                                                                 id="pageSize" name="pageSize" value="10" />
+        <table>
+            <tr>
+                <td>单位编号:</td>
+                <td><input type="text" id="orgNumber" name="orgNumber" /></td>
+                <td>单位名称:</td>
+                <td><input type="text" id="orgName" name="orgName" /></td>
+                <td>单位地址:</td>
+                <td><input type="text" id="address" name="address" /></td>
+                <td>年度:</td>
+                <td><input class="date" dateFmt="yyyy" type="text" id="year"
+                           name="year" value="${year!''}" /></td>
+            </tr>
+            <tr>
+                <td>超用水量(≥)::</td>
+                <td><input type="text" id="overWaterBegin"
+                           name="overWaterBegin" /></td>
+                <td>并且(≤):</td>
+                <td><input type="text" id="overWaterEnd" name="overWaterEnd" /></td>
+                <td>应收金额(≥)::</td>
+                <td><input type="text" id="amountReceivableBegin"
+                           name="amountReceivableBegin" /></td>
+                <td>并且(≤):</td>
+                <td><input type="text" id="amountReceivableEnd"
+                           name="amountReceivableEnd" /></td>
+            </tr>
+            <tr>
+                <td>客户号:</td>
+                <td><input type="text" id="customerNumber"
+                           name="customerNumber" /></td>
+                <td>水表编号:</td>
+                <td><input type="text" id="meterNumber" name="meterNumber" /></td>
+                <td>半年度:</td>
+                <td><select prompt="请选择" id="yearhf" name="yearhf"
+                            data='{"list":[{"value":"1","key":"上半年"},{"value":"2","key":"下半年"}]}'></select></td>
+                <td>是否计划户:</td>
+                <td><select prompt="请选择" id="isPlanUser"
+                            data='{"list":[{"value":"yes","key":"计划户"},{"value":"no","key":"非计划户"}]}'
+                            name="isPlanUser"></select></td>
+            </tr>
+            <tr>
+                <td>用户类型:</td>
+                <td><select prompt="请选择" id="userType" data='${userType}'
+                            name="userType"></select></td>
+                <td>用水单价:</td>
+                <td><select id="waterPrice" name="waterPrice">
+                    <option value="">请选择</option>
+                    <option value="0.00">0.00</option>
+                    <option value="0.10">0.10</option>
+                    <option value="1.14">1.14</option>
+                    <option value="1.21">1.21</option>
+                    <option value="1.45">1.45</option>
+                    <option value="1.49">1.49</option>
+                    <option value="2.20">2.20</option>
+                    <option value="4.97">4.97</option>
+                </select></td>
+                <td style="padding-left: 15px;"><button type="reset"
+                                                        onclick="resetSearch()">
+                    <span class="icon_find">重置</span>
+                </button></td>
+                </td>
+                <td style="padding-left: 15px;"><button type="button"
+                                                        onclick="searchHandler()">
+                    <span class="icon_find">查询</span>
+                </button></td>
+                </td>
+            </tr>
+        </table>
+    </form>
+</div>
+<div id="scrollContent">
+    <div class="padding_right5">
+        <div id="maingrid"></div>
+    </div>
+</div>
+<!-- <div id="pageContent" style="height:35px;"></div> -->
+<!-- 分页组件 -->
+<div style="height: 35px;">
+    <div id="letfContent" class="float_left padding5"></div>
+    <div class="float_right padding5">
+        <div id="pager" total="0" class="pageArrow" showSelect="true"
+             inputPosition="right"></div>
+    </div>
+    <div class="clear"></div>
+</div>
+
+</body>
+</html>

+ 66 - 0
WebContent/WEB-INF/view/bus/yearhf-assessment-view.jsp

@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>单位水表对应表打印预览</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+    <style media=print type="text/css">
+        .noprint {
+            visibility: hidden
+        }
+    </style>
+</head>
+<body>
+<div class="noprint"
+     style="padding-top: 10px; padding-right: 200px; text-align: right;">
+    <input type="button" value="打印" onclick="window.print();">
+</div>
+<table class="tableStyle" mode="list"
+       style="width: 1200px; font-size: 16px;" align="center">
+    <tr>
+        <td>单位编号</td>
+        <td>单位名称</td>
+        <td>单位地址</td>
+        <td>用户类型</td>
+        <td>半年度</td>
+        <td>用水计划指标</td>
+        <td>实际用水量</td>
+        <td>实际收水量</td>
+        <td>超用率</td>
+        <td>应收金额</td>
+        <td>实收金额</td>
+        <td>是否销帐</td>
+        <td>销帐日期</td>
+        <td>付款方式</td>
+        <td>用水单价</td>
+    </tr>
+    <#list list as p>
+    <tr>
+        <td>${p.orgNumber!''}</td>
+        <td>${p.orgName!''}</td>
+        <td>${p.address!'' }</td>
+        <td>${p.userType!'' }</td>
+        <td>${p.assessmentYearhf!'' }</td>
+        <td>${p.waterPlanningIndex!'' }</td>
+        <td>${p.actualUseWater!'0' }</td>
+        <td>${p.actualClosingWater!'0' }</td>
+        <td>${p.overWaterPercent!'0' }%</td>
+        <td>${p.amountReceivable!'0' }</td>
+        <td>${p.paidInAmount!'0' }</td>
+        <td>${p.isWriteOff!'' }</td>
+        <td>${p.writeOffDate!'' }</td>
+        <td>${p.modeOfPayment!'' }</td>
+        <td>${p.waterPrice!'0' }</td>
+    </tr>
+</#list>
+</table>
+
+</body>
+</html>

+ 159 - 0
WebContent/WEB-INF/view/bus/yearhf-assessment-write-off.jsp

@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>添加角色信息</title>
+    <!--框架必需start-->
+    <script type="text/javascript" src="${ctx}/qui/libs/js/jquery.js"></script>
+    <script type="text/javascript" src="${ctx}/qui/libs/js/framework.js"></script>
+    <link href="${ctx}/qui/libs/css/import_basic.css" rel="stylesheet"
+          type="text/css" />
+    <link rel="stylesheet" type="text/css" id="skin" prePath="${ctx}/qui/" />
+    <link rel="stylesheet" type="text/css" id="customSkin" />
+    <!--框架必需end-->
+
+    <!-- 表单验证start -->
+    <link rel="stylesheet"
+          href="${ctx}/qui/libs/js/form/validform/css/style.css" type="text/css"
+          media="all" />
+    <script src="${ctx}/qui/libs/js/form/validform/validform.js"
+            type="text/javascript"></script>
+    <!-- 表单验证end -->
+
+    <!--表单异步提交start-->
+    <script src="${ctx}/qui/libs/js/form/form.js" type="text/javascript"></script>
+    <!--表单异步提交end-->
+
+    <!-- 日期选择框start -->
+    <script type="text/javascript"
+            src="${ctx}/qui/libs/js/form/datePicker/WdatePicker.js"></script>
+    <!-- 日期选择框end -->
+
+</head>
+<body>
+<div style="text-align: center;">
+    <h2>计划户第${assessmentYearhf!''}半年销帐</h2>
+</div>
+<div class="box1">
+
+    <form id="myFormId" method="POST"
+          action="${ctx}/yearhfAssessment/updateData.do" target="back">
+        <input type="hidden" name="orgId" id="orgId" value="${org.orgId!''}" />
+        <input type="hidden" name="assessmentId" id="assessmentId"
+               value="${assessmentId!''}" />
+        <table class="tableStyle" formMode="line">
+            <tr>
+                <td><span class="star"></span>单位编号:</td>
+                <td><input type="text" id="orgNumber" name="orgNumber"
+                           value="${org.orgNumber!''}" readonly="readonly" /></td>
+                <td><span class="star"></span>单位名称:</td>
+                <td><input type="text" id="orgName" name="orgName"
+                           value="${org.orgName!''}" readonly="readonly" /></td>
+            </tr>
+            <tr>
+                <td><span class="star"></span>${assessmentYearhf!''}半年应收金额:</td>
+                <td><input type="text" id="amountReceivable"
+                           name="amountReceivable" value="${amountReceivable!''}"
+                           readonly="readonly" /></td>
+                <td><span class="star"></span>${assessmentYearhf!''半年付款方式:</td>
+        <td><select selectedValue="${modeOfPayment!''}"
+        id="modeOfPayment" name="modeOfPayment"
+        data='{"list":[{"value":"1","key":"现金"},{"value":"2","key":"转账"}]}'></select>
+        </td>
+        </tr>
+        <tr>
+        <td><span class="star"></span>开户银行:</td>
+        <td><input type="text" id="bank" name="bank" value=""
+        disabled="true" /></td>
+        <td><span class="star"></span>银行帐号:</td>
+        <td><input type="text" id="bankAccount" name="bankAccount"
+        disabled="true" /></td>
+        </tr>
+        <tr>
+        <td><span class="star"></span>是否销帐:</td>
+        <td><select selectedValue="${isWriteOff!''}" name="isWriteOff"
+        data='{"list":[{"value":"yes","key":"是"},{"value":"no","key":"否"}]}'></select>
+        </td>
+        <td><span class="star"></span>销帐日期:</td>
+        <td><input type="text" id="date" name="date" class="date"
+        value="${writeOffDate!''}" dateFmt="yyyy-MM-dd" datatype="*" /></td>
+        </tr>
+        <tr>
+        <td><span class="star"></span>${assessmentYearhf!''}半年实收金额:</td>
+        <td><input type="text" id="paidInAmount" name="paidInAmount"
+        value="${paidInAmount!''}" /></td>
+        <td><span class="star"></span>发票编号:</td>
+        <td><input type="text" id="invoiceNo" name="invoiceNo"
+                value="${invoiceNo!''}" /></td>
+                <!-- 				<td colspan="2"></td> -->
+                </tr>
+                <tr>
+                <td>备注</td>
+                <td colspan="3"><textarea rows="" cols="" id="remark"
+                name="remark" style="width: 300px;">${remark!''}</textarea></td>
+                </tr>
+                <tr>
+                <td colspan="4"><input type="submit" value="保存" /> <input
+        type="button" value="取消" onclick="top.Dialog.close()" /></td>
+        </tr>
+        </table>
+        </form>
+        </div>
+        <!-- 异步提交start -->
+        <script type="text/javascript">
+        function initComplete(){
+                //绑定change事件
+                $("#modeOfPayment").bind("change",function(){
+        if($(this).attr("relValue")==1){
+        $("#bank").attr("disabled",true);
+        $("#bankAccount").attr("disabled",true);
+        $("#bank").attr("value","");
+        $("#bankAccount").attr("value","");
+        }
+        if($(this).attr("relValue")==2){
+        $("#bank").attr("disabled",false);
+        $("#bankAccount").attr("disabled",false);
+        }
+        });
+
+        //表单提交
+        $("#myFormId").Validform({
+        tiptype:3,//表示在右边显示
+        ajaxPost:true,
+        showAllError:true,
+                callback:function(responseText){
+        $.Hidemsg();
+        if(responseText.status=="y"){
+        top.Dialog.alert(responseText.info,function(){
+        closeWin();
+                });
+                }else{
+        top.Dialog.alert(responseText.info,function(){
+        return false;
+        });
+        }
+
+                }
+                });
+                }
+
+                function addOrgIdParam(){
+        var orgNumber = $('#orgNumber').val();
+        $('#customerNumber').attr("ajaxurl","${ctx}/customerMeter/validCustomerNumber.do?orgNumber="+orgNumber);
+        }
+
+        //重置
+        function closeWin(){
+        //刷新数据
+        top.frmright.resetSearch();
+        //关闭窗口
+        top.Dialog.close();
+                }
+
+                function showSelect(){
+        top.Dialog.open({URL:"${ctx}/yearhfAssessment/annualPlanSelectedPage.do?year="+$('#year').val(),Width:800,Height:400,Title:"单位选择页面"});
+        }
+        </script>
+        <!-- 异步提交end -->
+        </body>
+        </html>

+ 2 - 0
src/config/spring-dao.xml

@@ -46,6 +46,8 @@
 	<bean class="com.bus.dao.impl.BusAnnualPlanForWaterDaoImpl" id="busAnnualPlanForWaterDao"/>
 	<bean class="com.bus.dao.impl.BusMeterReadInfoDaoImpl" id="busMeterReadInfoDao"/>
 	<bean class="com.bus.dao.impl.BusQuarterlyAssessmentDaoImpl" id="busQuarterlyAssessmentDao"/>
+	<bean class="com.bus.dao.impl.BusMonthAssessmentDaoImpl" id="busMonthAssessmentDao"/>
+	<bean class="com.bus.dao.impl.BusYearhfAssessmentDaoImpl" id="busYearhfAssessmentDao"/>
 	<bean class="com.bus.dao.impl.BusCustomerMeterDaoImpl" id="busCustomerMeterDao"/>
 
 	<!-- 临时用水指标修改记录,用水指标审核 -->

+ 2 - 0
src/config/spring-service.xml

@@ -46,6 +46,8 @@
 	<bean class="com.bus.service.impl.BusMeterReadInfoServiceImpl" id="busMeterReadInfoService"/>
 	<bean class="com.bus.service.impl.BusOrgServiceImpl" id="busOrgService"/>
 	<bean class="com.bus.service.impl.BusQuarterlyAssessmentServiceImpl" id="busQuarterlyAssessmentService"/>
+	<bean class="com.bus.service.impl.BusMonthAssessmentServiceImpl" id="busMonthAssessmentService"/>
+	<bean class="com.bus.service.impl.BusYearhfAssessmentServiceImpl" id="busYearhfAssessmentService"/>
 	<bean class="com.bus.service.impl.BusCustomerMeterServiceImpl" id="busCustomerMeterService"/>
 
 <!-- 节水审批 -->

+ 7 - 0
src/java/com/bus/dao/IBusMonthAssessmentDao.java

@@ -0,0 +1,7 @@
+package com.bus.dao;
+
+import com.bus.model.BusMonthAssessment;
+import com.core.dao.IGenericDao;
+
+public interface IBusMonthAssessmentDao extends IGenericDao<BusMonthAssessment, Long> {
+}

+ 7 - 0
src/java/com/bus/dao/IBusYearhfAssessmentDao.java

@@ -0,0 +1,7 @@
+package com.bus.dao;
+
+import com.bus.model.BusYearhfAssessment;
+import com.core.dao.IGenericDao;
+
+public interface IBusYearhfAssessmentDao extends IGenericDao<BusYearhfAssessment, Long> {
+}

+ 15 - 0
src/java/com/bus/dao/impl/BusMonthAssessmentDaoImpl.java

@@ -0,0 +1,15 @@
+package com.bus.dao.impl;
+
+import com.bus.dao.IBusMonthAssessmentDao;
+import com.bus.model.BusMonthAssessment;
+import com.core.dao.impl.GenericDaoImpl;
+
+/**
+ * 数据导入文件持久层接口类
+ *
+ * @author lhj
+ *
+ */
+public class BusMonthAssessmentDaoImpl extends GenericDaoImpl<BusMonthAssessment, Long>
+        implements IBusMonthAssessmentDao {
+}

+ 16 - 0
src/java/com/bus/dao/impl/BusYearhfAssessmentDaoImpl.java

@@ -0,0 +1,16 @@
+package com.bus.dao.impl;
+
+import com.bus.dao.IBusYearhfAssessmentDao;
+import com.bus.model.BusYearhfAssessment;
+import com.core.dao.impl.GenericDaoImpl;
+
+
+/**
+ * 数据导入文件持久层接口类
+ *
+ * @author lhj
+ *
+ */
+public class BusYearhfAssessmentDaoImpl extends GenericDaoImpl<BusYearhfAssessment, Long>
+        implements IBusYearhfAssessmentDao {
+}

+ 69 - 0
src/java/com/bus/model/BusMonthAssessment.hbm.xml

@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 2014-10-25 18:34:16 by Hibernate Tools 4.0.0 -->
+<hibernate-mapping>
+    <class name="com.bus.model.BusMonthAssessment" table="bus_month_assessment">
+        <id name="assessmentMonId" type="long">
+            <column name="assessment_mon_id" />
+            <generator class="native" />
+        </id>
+        <property name="assessmentMonth" type="java.lang.Integer">
+            <column name="assessment_month" />
+        </property>
+        <property name="waterPrice" type="java.lang.Float">
+            <column name="water_price" precision="8" scale="0" />
+        </property>
+        <property name="waterType" type="string">
+            <column name="water_type" length="10" />
+        </property>
+        <property name="actualClosingWater" type="java.lang.Float">
+            <column name="actual_closing_water" precision="8" scale="0" />
+        </property>
+        <property name="waterPlanningIndex" type="java.lang.Float">
+            <column name="water_planning_index" precision="8" scale="0" />
+        </property>
+        <property name="actualUseWater" type="java.lang.Float">
+            <column name="actual_use_water" precision="8" scale="0" />
+        </property>
+        <many-to-one name="org" class="com.bus.model.BusOrg" not-null="false">
+            <column name="org_id"/>
+        </many-to-one>
+        <property name="amountReceivable" type="java.lang.Float">
+            <column name="amount_receivable" precision="8" scale="0" />
+        </property>
+        <property name="isWriteOff" type="string">
+            <column name="is_write_off" length="10" />
+        </property>
+        <property name="modeOfPayment" type="string">
+            <column name="mode_of_payment" length="10" />
+        </property>
+        <property name="bank" type="string">
+            <column name="bank" length="10" />
+        </property>
+        <property name="bankAccount" type="string">
+            <column name="bank_account" length="10" />
+        </property>
+        <property name="writeOffDate" type="date">
+            <column name="write_off_date" length="10" />
+        </property>
+        <property name="paidInAmount" type="java.lang.Float">
+            <column name="paid_in_amount" precision="8" scale="2" />
+        </property>
+        <property name="remark" type="string">
+            <column name="remark" length="10" />
+        </property>
+        <property name="incomeWaterPrice" type="java.lang.Float">
+            <column name="income_water_price" precision="8" scale="0" />
+        </property>
+        <property name="replyOfWater" type="java.lang.Float">
+            <column name="reply_of_water" precision="8" scale="0" />
+        </property>
+        <property name="invoiceNo" type="string">
+            <column name="invoice_no" length="50" />
+        </property>
+        <property name="taxPay" type="java.lang.Integer">
+            <column name="tax_pay" length="1" />
+        </property>
+    </class>
+</hibernate-mapping>

+ 230 - 0
src/java/com/bus/model/BusMonthAssessment.java

@@ -0,0 +1,230 @@
+package com.bus.model;
+import java.util.Date;
+
+import flexjson.JSON;
+
+/**
+ * 月考核用水
+ * 2021-1-13
+ */
+public class BusMonthAssessment {
+    /**月考核id**/
+    private Long assessmentMonId;
+    /**考核月份**/
+    private Integer assessmentMonth;
+    /**用水单价**/
+    private Float waterPrice;
+    /**用水类别**/
+    private String waterType;
+    /**实际收水量**/
+    private Float actualClosingWater;
+    /**计划用水指标**/
+    private Float waterPlanningIndex;
+    /**全年实际批复指标**/
+    private Float replyOfWater;
+    /**实际用水量**/
+    private Float actualUseWater;
+    /**单位基本信息**/
+    private BusOrg org;
+    /**应收金额**/
+    private Float amountReceivable;
+    /**是否销账**/
+    private String isWriteOff;
+    /**付款类型**/
+    private String modeOfPayment;
+    /**开户银行**/
+    private String bank;
+    /**银行账号**/
+    private String bankAccount;
+    /**销户日期**/
+    private Date writeOffDate;
+    /**实收金额**/
+    private Float paidInAmount;
+    /**增收水费单价**/
+    private Float incomeWaterPrice;
+    /**备注**/
+    private String remark;
+    /**发票编号**/
+    private String invoiceNo;
+    /**非税状态**/
+    private Integer taxPay;
+
+
+    public String getInvoiceNo() {
+        return invoiceNo;
+    }
+
+    public void setInvoiceNo(String invoiceNo) {
+        this.invoiceNo = invoiceNo;
+    }
+
+    public Float getReplyOfWater() {
+        return replyOfWater;
+    }
+
+    public void setReplyOfWater(Float replyOfWater) {
+        this.replyOfWater = replyOfWater;
+    }
+
+    public Float getIncomeWaterPrice() {
+        return incomeWaterPrice;
+    }
+
+    public void setIncomeWaterPrice(Float incomeWaterPrice) {
+        this.incomeWaterPrice = incomeWaterPrice;
+    }
+
+    public Float getAmountReceivable() {
+        return amountReceivable;
+    }
+
+    public void setAmountReceivable(Float amountReceivable) {
+        this.amountReceivable = amountReceivable;
+    }
+
+    public String getIsWriteOff() {
+        return isWriteOff;
+    }
+
+    public void setIsWriteOff(String isWriteOff) {
+        this.isWriteOff = isWriteOff;
+    }
+
+    public String getModeOfPayment() {
+        return modeOfPayment;
+    }
+
+    public void setModeOfPayment(String modeOfPayment) {
+        this.modeOfPayment = modeOfPayment;
+    }
+
+    public String getBank() {
+        return bank;
+    }
+
+    public void setBank(String bank) {
+        this.bank = bank;
+    }
+
+    public String getBankAccount() {
+        return bankAccount;
+    }
+
+    public void setBankAccount(String bankAccount) {
+        this.bankAccount = bankAccount;
+    }
+
+    public Date getWriteOffDate() {
+        return writeOffDate;
+    }
+
+    public void setWriteOffDate(Date writeOffDate) {
+        this.writeOffDate = writeOffDate;
+    }
+
+    public Float getPaidInAmount() {
+        return paidInAmount;
+    }
+
+    public void setPaidInAmount(Float paidInAmount) {
+        this.paidInAmount = paidInAmount;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @JSON(include=false)
+    public BusOrg getOrg() {
+        return org;
+    }
+
+    public void setOrg(BusOrg org) {
+        this.org = org;
+    }
+
+    public Long getAssessmentMonId() {
+        return assessmentMonId;
+    }
+
+    public void setAssessmentMonId(Long assessmentMonId) {
+        this.assessmentMonId = assessmentMonId;
+    }
+
+    public Integer getAssessmentMonth() {
+        return this.assessmentMonth;
+    }
+
+    public void setAssessmentMonth(Integer assessmentMonth) {
+        this.assessmentMonth = assessmentMonth;
+    }
+
+    public Float getWaterPrice() {
+        return this.waterPrice;
+    }
+
+    public void setWaterPrice(Float waterPrice) {
+        this.waterPrice = waterPrice;
+    }
+
+    public String getWaterType() {
+        return this.waterType;
+    }
+
+    public void setWaterType(String waterType) {
+        this.waterType = waterType;
+    }
+
+    public Float getActualClosingWater() {
+        return this.actualClosingWater;
+    }
+
+    public void setActualClosingWater(Float actualClosingWater) {
+        this.actualClosingWater = actualClosingWater;
+    }
+
+    public Float getWaterPlanningIndex() {
+        return this.waterPlanningIndex;
+    }
+
+    public void setWaterPlanningIndex(Float waterPlanningIndex) {
+        this.waterPlanningIndex = waterPlanningIndex;
+    }
+
+    public Float getActualUseWater() {
+        return this.actualUseWater;
+    }
+
+    public void setActualUseWater(Float actualUseWater) {
+        this.actualUseWater = actualUseWater;
+    }
+
+    public String getShowOrgNumber(){
+        return this.org.getOrgNumber().toString();
+    }
+
+    public String getShowOrgName(){
+        return this.org.getOrgName().toString();
+    }
+
+    public String getShowOrgAddress(){
+        return this.org.getAddress();
+    }
+
+    public String getshowUserType(){
+        return this.org.getBaseUserType();
+    }
+
+
+    public Integer getTaxPay() {
+        return this.taxPay;
+    }
+
+    public void setTaxPay(Integer taxPay) {
+        this.taxPay = taxPay;
+    }
+}

+ 69 - 0
src/java/com/bus/model/BusYearhfAssessment.hbm.xml

@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 2014-10-25 18:34:16 by Hibernate Tools 4.0.0 -->
+<hibernate-mapping>
+    <class name="com.bus.model.BusYearhfAssessment" table="bus_yearhf_assessment">
+        <id name="assessmentYhfId" type="long">
+            <column name="assessment_yhf_id" />
+            <generator class="native" />
+        </id>
+        <property name="assessmentYearhf" type="java.lang.Integer">
+            <column name="assessment_yearhf" />
+        </property>
+        <property name="waterPrice" type="java.lang.Float">
+            <column name="water_price" precision="8" scale="0" />
+        </property>
+        <property name="waterType" type="string">
+            <column name="water_type" length="10" />
+        </property>
+        <property name="actualClosingWater" type="java.lang.Float">
+            <column name="actual_closing_water" precision="8" scale="0" />
+        </property>
+        <property name="waterPlanningIndex" type="java.lang.Float">
+            <column name="water_planning_index" precision="8" scale="0" />
+        </property>
+        <property name="actualUseWater" type="java.lang.Float">
+            <column name="actual_use_water" precision="8" scale="0" />
+        </property>
+        <many-to-one name="org" class="com.bus.model.BusOrg" not-null="false">
+            <column name="org_id"/>
+        </many-to-one>
+        <property name="amountReceivable" type="java.lang.Float">
+            <column name="amount_receivable" precision="8" scale="0" />
+        </property>
+        <property name="isWriteOff" type="string">
+            <column name="is_write_off" length="10" />
+        </property>
+        <property name="modeOfPayment" type="string">
+            <column name="mode_of_payment" length="10" />
+        </property>
+        <property name="bank" type="string">
+            <column name="bank" length="10" />
+        </property>
+        <property name="bankAccount" type="string">
+            <column name="bank_account" length="10" />
+        </property>
+        <property name="writeOffDate" type="date">
+            <column name="write_off_date" length="10" />
+        </property>
+        <property name="paidInAmount" type="java.lang.Float">
+            <column name="paid_in_amount" precision="8" scale="2" />
+        </property>
+        <property name="remark" type="string">
+            <column name="remark" length="10" />
+        </property>
+        <property name="incomeWaterPrice" type="java.lang.Float">
+            <column name="income_water_price" precision="8" scale="0" />
+        </property>
+        <property name="replyOfWater" type="java.lang.Float">
+            <column name="reply_of_water" precision="8" scale="0" />
+        </property>
+        <property name="invoiceNo" type="string">
+            <column name="invoice_no" length="50" />
+        </property>
+        <property name="taxPay" type="java.lang.Integer">
+            <column name="tax_pay" length="1" />
+        </property>
+    </class>
+</hibernate-mapping>

+ 232 - 0
src/java/com/bus/model/BusYearhfAssessment.java

@@ -0,0 +1,232 @@
+package com.bus.model;
+
+import flexjson.JSON;
+
+import java.util.Date;
+
+/**
+ * 半年考核用水
+ * 2021-1-13
+ */
+
+public class BusYearhfAssessment {
+    /**半年考核id**/
+    private Long assessmentYhfId;
+    /**考核半年度**/
+    private Integer assessmentYearhf;
+    /**用水单价**/
+    private Float waterPrice;
+    /**用水类别**/
+    private String waterType;
+    /**实际收水量**/
+    private Float actualClosingWater;
+    /**计划用水指标**/
+    private Float waterPlanningIndex;
+    /**全年实际批复指标**/
+    private Float replyOfWater;
+    /**实际用水量**/
+    private Float actualUseWater;
+    /**单位基本信息**/
+    private BusOrg org;
+    /**应收金额**/
+    private Float amountReceivable;
+    /**是否销账**/
+    private String isWriteOff;
+    /**付款类型**/
+    private String modeOfPayment;
+    /**开户银行**/
+    private String bank;
+    /**银行账号**/
+    private String bankAccount;
+    /**销户日期**/
+    private Date writeOffDate;
+    /**实收金额**/
+    private Float paidInAmount;
+    /**增收水费单价**/
+    private Float incomeWaterPrice;
+    /**备注**/
+    private String remark;
+    /**发票编号**/
+    private String invoiceNo;
+    /**非税状态**/
+    private Integer taxPay;
+
+
+    public String getInvoiceNo() {
+        return invoiceNo;
+    }
+
+    public void setInvoiceNo(String invoiceNo) {
+        this.invoiceNo = invoiceNo;
+    }
+
+    public Float getReplyOfWater() {
+        return replyOfWater;
+    }
+
+    public void setReplyOfWater(Float replyOfWater) {
+        this.replyOfWater = replyOfWater;
+    }
+
+    public Float getIncomeWaterPrice() {
+        return incomeWaterPrice;
+    }
+
+    public void setIncomeWaterPrice(Float incomeWaterPrice) {
+        this.incomeWaterPrice = incomeWaterPrice;
+    }
+
+    public Float getAmountReceivable() {
+        return amountReceivable;
+    }
+
+    public void setAmountReceivable(Float amountReceivable) {
+        this.amountReceivable = amountReceivable;
+    }
+
+    public String getIsWriteOff() {
+        return isWriteOff;
+    }
+
+    public void setIsWriteOff(String isWriteOff) {
+        this.isWriteOff = isWriteOff;
+    }
+
+    public String getModeOfPayment() {
+        return modeOfPayment;
+    }
+
+    public void setModeOfPayment(String modeOfPayment) {
+        this.modeOfPayment = modeOfPayment;
+    }
+
+    public String getBank() {
+        return bank;
+    }
+
+    public void setBank(String bank) {
+        this.bank = bank;
+    }
+
+    public String getBankAccount() {
+        return bankAccount;
+    }
+
+    public void setBankAccount(String bankAccount) {
+        this.bankAccount = bankAccount;
+    }
+
+    public Date getWriteOffDate() {
+        return writeOffDate;
+    }
+
+    public void setWriteOffDate(Date writeOffDate) {
+        this.writeOffDate = writeOffDate;
+    }
+
+    public Float getPaidInAmount() {
+        return paidInAmount;
+    }
+
+    public void setPaidInAmount(Float paidInAmount) {
+        this.paidInAmount = paidInAmount;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @JSON(include=false)
+    public BusOrg getOrg() {
+        return org;
+    }
+
+    public void setOrg(BusOrg org) {
+        this.org = org;
+    }
+
+    public Long getAssessmentYhfId() {
+        return assessmentYhfId;
+    }
+
+    public void setAssessmentYhfId(Long assessmentYhfId) {
+        this.assessmentYhfId = assessmentYhfId;
+    }
+
+    public Integer getAssessmentYearhf() {
+        return this.assessmentYearhf;
+    }
+
+    public void setAssessmentYearhf(Integer assessmentYearhf) {
+        this.assessmentYearhf = assessmentYearhf;
+    }
+
+    public Float getWaterPrice() {
+        return this.waterPrice;
+    }
+
+    public void setWaterPrice(Float waterPrice) {
+        this.waterPrice = waterPrice;
+    }
+
+    public String getWaterType() {
+        return this.waterType;
+    }
+
+    public void setWaterType(String waterType) {
+        this.waterType = waterType;
+    }
+
+    public Float getActualClosingWater() {
+        return this.actualClosingWater;
+    }
+
+    public void setActualClosingWater(Float actualClosingWater) {
+        this.actualClosingWater = actualClosingWater;
+    }
+
+    public Float getWaterPlanningIndex() {
+        return this.waterPlanningIndex;
+    }
+
+    public void setWaterPlanningIndex(Float waterPlanningIndex) {
+        this.waterPlanningIndex = waterPlanningIndex;
+    }
+
+    public Float getActualUseWater() {
+        return this.actualUseWater;
+    }
+
+    public void setActualUseWater(Float actualUseWater) {
+        this.actualUseWater = actualUseWater;
+    }
+
+    public String getShowOrgNumber(){
+        return this.org.getOrgNumber().toString();
+    }
+
+    public String getShowOrgName(){
+        return this.org.getOrgName().toString();
+    }
+
+    public String getShowOrgAddress(){
+        return this.org.getAddress();
+    }
+
+    public String getshowUserType(){
+        return this.org.getBaseUserType();
+    }
+
+
+    public Integer getTaxPay() {
+        return this.taxPay;
+    }
+
+    public void setTaxPay(Integer taxPay) {
+        this.taxPay = taxPay;
+    }
+}

+ 348 - 0
src/java/com/bus/model/temp/BusMonthAssessmentTemp.java

@@ -0,0 +1,348 @@
+package com.bus.model.temp;
+
+import java.util.Date;
+
+/**
+ * 月考核用水
+ */
+public class BusMonthAssessmentTemp {
+    /**考核id**/
+    private Long assessmentMonId;
+    /**考核月份**/
+    private Integer assessmentMonth;
+    /**用水单价**/
+    private Float waterPrice;
+    /**用水类别**/
+    private String waterType;
+    /**实际收水量**/
+    private String actualClosingWater;
+    /**计划用水指标**/
+    private String waterPlanningIndex;
+    /**实际批复指标**/
+    private String replyOfWater;
+    /**实际用水量**/
+    private String actualUseWater;
+    /**单位编号**/
+    private String orgNumber;
+    /**单位名称**/
+    private String orgName;
+    /**地址**/
+    private String address;
+    /**年份**/
+    private String year;
+    /**用户类型**/
+    private String userType;
+    /**是否计划户**/
+    private String isPlanUser;
+    /**应收金额**/
+    private String amountReceivable;
+    /**是否销账**/
+    private String isWriteOff;
+    /**付款类型**/
+    private String modeOfPayment;
+    /**开户银行**/
+    private String bank;
+    /**银行账号**/
+    private String bankAccount;
+    /**销户日期**/
+    private Date writeOffDate;
+    /**实收金额**/
+    private Float paidInAmount;
+    /**增收水费单价**/
+    private Float incomeWaterPrice;
+    /**备注**/
+    private String remark;
+    /**超用率**/
+    private String overWaterPercent;
+
+    /**增收水表号**/
+    private String meterNumber;
+    /**邮寄地址**/
+    private String postAddress;
+    /**邮编**/
+    private String post;
+
+    /**低阶水量**/
+    private Float Interval_low;
+    /**高阶水量**/
+    private Float Interval_up;
+    /**低阶水费**/
+    private Float money_up;
+    /**高阶水量**/
+    private Float money_low;
+    /**总金额**/
+    private Float money_all;
+
+    /**增加的30%**/
+    private Float replyOfIncrease;
+    public Float getReplyOfIncrease() {
+        return this.replyOfIncrease;
+    }
+
+    public void setReplyOfIncrease(Float replyOfIncrease) {
+        this.replyOfIncrease = replyOfIncrease;
+    }
+    public Float getIntervallow() {
+        return Interval_low;
+    }
+
+    public void setIntervallow(Float Interval_low) {
+        this.Interval_low = Interval_low;
+    }
+
+
+    public Float getIntervalup() {
+        return Interval_up;
+    }
+
+    public void setIntervalup(Float Interval_up) {
+        this.Interval_up = Interval_up;
+    }
+
+
+    public Float getMoneyup() {
+        return money_up;
+    }
+
+    public void setMoneyup(Float money_up) {
+        this.money_up = money_up;
+    }
+
+
+    public Float getMoneylow() {
+        return money_low;
+    }
+
+    public void setMoneylow(Float money_low) {
+        this.money_low = money_low;
+    }
+
+    public Float getMoneyall() {
+        return money_all;
+    }
+
+    public void setMoneyall(Float money_all) {
+        this.money_all = money_all;
+    }
+
+
+    public String getPost() {
+        return post;
+    }
+
+    public void setpost(String post) {
+        this.post = post;
+    }
+
+    public String getPostAddress() {
+        return postAddress;
+    }
+
+    public void setpostAddress(String postAddress) {
+        this.postAddress = postAddress;
+    }
+
+
+
+    public String getMeterNumber() {
+        return meterNumber;
+    }
+
+    public void setmeterNumber(String meterNumber) {
+        this.meterNumber = meterNumber;
+    }
+
+    public String getOverWaterPercent() {
+        return overWaterPercent;
+    }
+
+    public void setOverWaterPercent(String overWaterPercent) {
+        this.overWaterPercent = overWaterPercent;
+    }
+
+    public String getOrgNumber() {
+        return orgNumber;
+    }
+
+    public void setOrgNumber(String orgNumber) {
+        this.orgNumber = orgNumber;
+    }
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
+    public String getIsPlanUser() {
+        return isPlanUser;
+    }
+
+    public void setIsPlanUser(String isPlanUser) {
+        this.isPlanUser = isPlanUser;
+    }
+
+
+    public Float getIncomeWaterPrice() {
+        return incomeWaterPrice;
+    }
+
+    public void setIncomeWaterPrice(Float incomeWaterPrice) {
+        this.incomeWaterPrice = incomeWaterPrice;
+    }
+
+    public String getAmountReceivable() {
+        return amountReceivable;
+    }
+
+    public void setAmountReceivable(String amountReceivable) {
+        this.amountReceivable = amountReceivable;
+    }
+
+    public String getIsWriteOff() {
+        return isWriteOff;
+    }
+
+    public void setIsWriteOff(String isWriteOff) {
+        this.isWriteOff = isWriteOff;
+    }
+
+    public String getModeOfPayment() {
+        return modeOfPayment;
+    }
+
+    public void setModeOfPayment(String modeOfPayment) {
+        this.modeOfPayment = modeOfPayment;
+    }
+
+    public String getBank() {
+        return bank;
+    }
+
+    public void setBank(String bank) {
+        this.bank = bank;
+    }
+
+    public String getBankAccount() {
+        return bankAccount;
+    }
+
+    public void setBankAccount(String bankAccount) {
+        this.bankAccount = bankAccount;
+    }
+
+    public Date getWriteOffDate() {
+        return writeOffDate;
+    }
+
+    public void setWriteOffDate(Date writeOffDate) {
+        this.writeOffDate = writeOffDate;
+    }
+
+    public Float getPaidInAmount() {
+        return paidInAmount;
+    }
+
+    public void setPaidInAmount(Float paidInAmount) {
+        this.paidInAmount = paidInAmount;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Long getAssessmentMonId() {
+        return assessmentMonId;
+    }
+
+    public void setAssessmentMonId(Long assessmentMonId) {
+        this.assessmentMonId = assessmentMonId;
+    }
+
+    public Integer getAssessmentMonth() {
+        return this.assessmentMonth;
+    }
+
+    public void setAssessmentMonth(Integer assessmentMonth) {
+        this.assessmentMonth = assessmentMonth;
+    }
+
+    public Float getWaterPrice() {
+        return this.waterPrice;
+    }
+
+    public void setWaterPrice(Float waterPrice) {
+        this.waterPrice = waterPrice;
+    }
+
+    public String getWaterType() {
+        return this.waterType;
+    }
+
+    public void setWaterType(String waterType) {
+        this.waterType = waterType;
+    }
+
+    public String getActualClosingWater() {
+        return actualClosingWater;
+    }
+
+    public void setActualClosingWater(String actualClosingWater) {
+        this.actualClosingWater = actualClosingWater;
+    }
+
+    public String getWaterPlanningIndex() {
+        return waterPlanningIndex;
+    }
+
+    public void setWaterPlanningIndex(String waterPlanningIndex) {
+        this.waterPlanningIndex = waterPlanningIndex;
+    }
+
+    public String getReplyOfWater() {
+        return replyOfWater;
+    }
+
+    public void setReplyOfWater(String replyOfWater) {
+        this.replyOfWater = replyOfWater;
+    }
+
+    public String getActualUseWater() {
+        return actualUseWater;
+    }
+
+    public void setActualUseWater(String actualUseWater) {
+        this.actualUseWater = actualUseWater;
+    }
+
+}

+ 348 - 0
src/java/com/bus/model/temp/BusYearhfAssessmentTemp.java

@@ -0,0 +1,348 @@
+package com.bus.model.temp;
+
+import java.util.Date;
+
+/**
+ * 半年考核用水
+ */
+public class BusYearhfAssessmentTemp {
+    /**考核id**/
+    private Long assessmentYhfId;
+    /**考核半年度**/
+    private Integer assessmentYearhf;
+    /**用水单价**/
+    private Float waterPrice;
+    /**用水类别**/
+    private String waterType;
+    /**实际收水量**/
+    private String actualClosingWater;
+    /**计划用水指标**/
+    private String waterPlanningIndex;
+    /**实际批复指标**/
+    private String replyOfWater;
+    /**实际用水量**/
+    private String actualUseWater;
+    /**单位编号**/
+    private String orgNumber;
+    /**单位名称**/
+    private String orgName;
+    /**地址**/
+    private String address;
+    /**年份**/
+    private String year;
+    /**用户类型**/
+    private String userType;
+    /**是否计划户**/
+    private String isPlanUser;
+    /**应收金额**/
+    private String amountReceivable;
+    /**是否销账**/
+    private String isWriteOff;
+    /**付款类型**/
+    private String modeOfPayment;
+    /**开户银行**/
+    private String bank;
+    /**银行账号**/
+    private String bankAccount;
+    /**销户日期**/
+    private Date writeOffDate;
+    /**实收金额**/
+    private Float paidInAmount;
+    /**增收水费单价**/
+    private Float incomeWaterPrice;
+    /**备注**/
+    private String remark;
+    /**超用率**/
+    private String overWaterPercent;
+
+    /**增收水表号**/
+    private String meterNumber;
+    /**邮寄地址**/
+    private String postAddress;
+    /**邮编**/
+    private String post;
+
+    /**低阶水量**/
+    private Float Interval_low;
+    /**高阶水量**/
+    private Float Interval_up;
+    /**低阶水费**/
+    private Float money_up;
+    /**高阶水量**/
+    private Float money_low;
+    /**总金额**/
+    private Float money_all;
+
+    /**增加的30%**/
+    private Float replyOfIncrease;
+    public Float getReplyOfIncrease() {
+        return this.replyOfIncrease;
+    }
+
+    public void setReplyOfIncrease(Float replyOfIncrease) {
+        this.replyOfIncrease = replyOfIncrease;
+    }
+    public Float getIntervallow() {
+        return Interval_low;
+    }
+
+    public void setIntervallow(Float Interval_low) {
+        this.Interval_low = Interval_low;
+    }
+
+
+    public Float getIntervalup() {
+        return Interval_up;
+    }
+
+    public void setIntervalup(Float Interval_up) {
+        this.Interval_up = Interval_up;
+    }
+
+
+    public Float getMoneyup() {
+        return money_up;
+    }
+
+    public void setMoneyup(Float money_up) {
+        this.money_up = money_up;
+    }
+
+
+    public Float getMoneylow() {
+        return money_low;
+    }
+
+    public void setMoneylow(Float money_low) {
+        this.money_low = money_low;
+    }
+
+    public Float getMoneyall() {
+        return money_all;
+    }
+
+    public void setMoneyall(Float money_all) {
+        this.money_all = money_all;
+    }
+
+
+    public String getPost() {
+        return post;
+    }
+
+    public void setpost(String post) {
+        this.post = post;
+    }
+
+    public String getPostAddress() {
+        return postAddress;
+    }
+
+    public void setpostAddress(String postAddress) {
+        this.postAddress = postAddress;
+    }
+
+
+
+    public String getMeterNumber() {
+        return meterNumber;
+    }
+
+    public void setmeterNumber(String meterNumber) {
+        this.meterNumber = meterNumber;
+    }
+
+    public String getOverWaterPercent() {
+        return overWaterPercent;
+    }
+
+    public void setOverWaterPercent(String overWaterPercent) {
+        this.overWaterPercent = overWaterPercent;
+    }
+
+    public String getOrgNumber() {
+        return orgNumber;
+    }
+
+    public void setOrgNumber(String orgNumber) {
+        this.orgNumber = orgNumber;
+    }
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
+    public String getIsPlanUser() {
+        return isPlanUser;
+    }
+
+    public void setIsPlanUser(String isPlanUser) {
+        this.isPlanUser = isPlanUser;
+    }
+
+
+    public Float getIncomeWaterPrice() {
+        return incomeWaterPrice;
+    }
+
+    public void setIncomeWaterPrice(Float incomeWaterPrice) {
+        this.incomeWaterPrice = incomeWaterPrice;
+    }
+
+    public String getAmountReceivable() {
+        return amountReceivable;
+    }
+
+    public void setAmountReceivable(String amountReceivable) {
+        this.amountReceivable = amountReceivable;
+    }
+
+    public String getIsWriteOff() {
+        return isWriteOff;
+    }
+
+    public void setIsWriteOff(String isWriteOff) {
+        this.isWriteOff = isWriteOff;
+    }
+
+    public String getModeOfPayment() {
+        return modeOfPayment;
+    }
+
+    public void setModeOfPayment(String modeOfPayment) {
+        this.modeOfPayment = modeOfPayment;
+    }
+
+    public String getBank() {
+        return bank;
+    }
+
+    public void setBank(String bank) {
+        this.bank = bank;
+    }
+
+    public String getBankAccount() {
+        return bankAccount;
+    }
+
+    public void setBankAccount(String bankAccount) {
+        this.bankAccount = bankAccount;
+    }
+
+    public Date getWriteOffDate() {
+        return writeOffDate;
+    }
+
+    public void setWriteOffDate(Date writeOffDate) {
+        this.writeOffDate = writeOffDate;
+    }
+
+    public Float getPaidInAmount() {
+        return paidInAmount;
+    }
+
+    public void setPaidInAmount(Float paidInAmount) {
+        this.paidInAmount = paidInAmount;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Long getAssessmentYhfId() {
+        return assessmentYhfId;
+    }
+
+    public void setAssessmentYhfId(Long assessmentYhfId) {
+        this.assessmentYhfId = assessmentYhfId;
+    }
+
+    public Integer getAssessmentYearhf() {
+        return this.assessmentYearhf;
+    }
+
+    public void setAssessmentYearhf(Integer assessmentYearhf) {
+        this.assessmentYearhf = assessmentYearhf;
+    }
+
+    public Float getWaterPrice() {
+        return this.waterPrice;
+    }
+
+    public void setWaterPrice(Float waterPrice) {
+        this.waterPrice = waterPrice;
+    }
+
+    public String getWaterType() {
+        return this.waterType;
+    }
+
+    public void setWaterType(String waterType) {
+        this.waterType = waterType;
+    }
+
+    public String getActualClosingWater() {
+        return actualClosingWater;
+    }
+
+    public void setActualClosingWater(String actualClosingWater) {
+        this.actualClosingWater = actualClosingWater;
+    }
+
+    public String getWaterPlanningIndex() {
+        return waterPlanningIndex;
+    }
+
+    public void setWaterPlanningIndex(String waterPlanningIndex) {
+        this.waterPlanningIndex = waterPlanningIndex;
+    }
+
+    public String getReplyOfWater() {
+        return replyOfWater;
+    }
+
+    public void setReplyOfWater(String replyOfWater) {
+        this.replyOfWater = replyOfWater;
+    }
+
+    public String getActualUseWater() {
+        return actualUseWater;
+    }
+
+    public void setActualUseWater(String actualUseWater) {
+        this.actualUseWater = actualUseWater;
+    }
+}
+

+ 128 - 0
src/java/com/bus/service/IBusMonthAssessmentService.java

@@ -0,0 +1,128 @@
+package com.bus.service;
+
+import com.bus.model.BusMonthAssessment;
+import com.bus.model.temp.AddWaterTemp;
+import com.bus.model.temp.BusMonthAssessmentTemp;
+import com.core.service.IGenericService;
+import com.core.util.Page;
+
+import java.util.List;
+
+
+/**
+ * 导入数据文件业务层接口类
+ * @author lhj
+ */
+public interface IBusMonthAssessmentService extends IGenericService<BusMonthAssessment, Long> {
+    /**
+     * 获取月考核用水列表
+     * @param pageNo
+     * @param pageSize
+     * @param orgNumber
+     * @param orgName
+     * @param year
+     * @param address
+     * @param isPlanUser
+     * @param userType
+     * @return
+     */
+    List<Object[]> getMonthAssessmentListPage(int pageNo, int pageSize, Integer orgNumber, Integer customerNumber, Integer meterNumber,
+            String orgName, String year, String address, String isPlanUser,
+            String userType, String month, Integer overWaterBegin, Integer overWaterEnd, Integer amountReceivableBegin, Integer amountReceivableEnd, Long assessmentId, String isWriteOff, Float waterPrice);
+
+//    //超计划加价水费查询
+//    List<Object[]> getOutOfPlanMonthList(String orgNumber, String season, Integer year);
+
+    /**
+     * 获取月考核用水列表
+     * @param orgNumber
+     * @param year
+     * @return
+     */
+    List<BusMonthAssessment> getMonthAssessmentList(String orgNumber, Integer year);
+
+
+    /**
+     * 获取月超水量
+     * @param orgId
+     * @param month
+     * @return
+     */
+    List<Object[]> getMonthOverWater(Long orgId,Integer month,String year);
+
+
+    /**
+     * 获取总页数
+     * @param orgNumber
+     * @param orgName
+     * @param year
+     * @param address
+     * @param isPlanUser
+     * @param userType
+     * @return
+     */
+    int getTotalRows(int pageSize,Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                     String orgName, String year, String address, String isPlanUser,
+                     String userType,String month,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,String isWriteOff,Float waterPrice);
+
+
+    /**
+     * 导出列表到excel
+     * @param pageNo
+     * @param pageSize
+     * @param orgNumber
+     * @param customerNumber
+     * @param meterNumber
+     * @param orgName
+     * @param year
+     * @param address
+     * @param isPlanUser
+     * @param userType
+     * @param overWaterBegin
+     * @param overWaterEnd
+     * @param amountReceivableBegin
+     * @param amountReceivableEnd
+     * @param assessmentId
+     * @return
+     */
+    List<BusMonthAssessmentTemp> getMonthAssessmentForExcel(Integer pageNo, Integer pageSize, Integer orgNumber, Integer customerNumber, Integer meterNumber,
+            String orgName, String year, String address, String isPlanUser,
+            String userType, String month, Integer overWaterBegin, Integer overWaterEnd, Integer amountReceivableBegin, Integer amountReceivableEnd, String[] assessmentId, String isWriteOff);
+
+//    /**
+//     * 得到上半年或下半年的加价水费
+//     * @param year	年份
+//     * @param userType	用户类型
+//     * @param quarter	季度
+//     * @param orgName	单位名称
+//     * @param isWriteOff	是否销账:yes:是,no:否
+//     * @return
+//     */
+//    public List<AddWaterTemp> getHalfYearOfAddWaterMonth(String year, String userType, String month, String orgName, String isWriteOff);
+
+//    /**
+//     * 得到加价水费详情
+//     * @param assessmentId	考核季度id
+//     * @return
+//     */
+//    public AddWaterTemp getAddWaterDetailMonth(Long assessmentId);
+
+//    /**
+//     * 根据单位Id删除季度考核信息
+//     * @param orgId
+//     */
+//    void delMonthAssessmentByOrgId(Long orgId);
+
+//    /**
+//     * 更新水价
+//     * @param year
+//     */
+//    void updateWaterPrice(String year);
+
+    /**
+     * 获得年度计划选择列表
+     * @param orgName
+     * @return
+     */
+    Page getAnnualPlanSelectedData(int pageNo, int pageSize,String orgName,String year);
+}

+ 95 - 0
src/java/com/bus/service/IBusYearhfAssessmentService.java

@@ -0,0 +1,95 @@
+package com.bus.service;
+
+import com.bus.model.BusYearhfAssessment;
+import com.bus.model.temp.BusYearhfAssessmentTemp;
+import com.core.service.IGenericService;
+import com.core.util.Page;
+
+import java.util.List;
+
+/**
+ * 导入数据文件业务层接口类
+ * @author lhj
+ */
+public interface IBusYearhfAssessmentService extends IGenericService<BusYearhfAssessment, Long> {
+    /**
+     * 获取半年考核用水列表
+     * @param pageNo
+     * @param pageSize
+     * @param orgNumber
+     * @param orgName
+     * @param year
+     * @param address
+     * @param isPlanUser
+     * @param userType
+     * @return
+     */
+    List<Object[]> getYearhfAssessmentListPage(int pageNo, int pageSize, Integer orgNumber, Integer customerNumber, Integer meterNumber,
+                                              String orgName, String year, String address, String isPlanUser,
+                                              String userType, String yearhf, Integer overWaterBegin, Integer overWaterEnd, Integer amountReceivableBegin, Integer amountReceivableEnd, Long assessmentId, String isWriteOff, Float waterPrice);
+
+
+    /**
+     * 获取半年考核用水列表
+     * @param orgNumber
+     * @param year
+     * @return
+     */
+    List<BusYearhfAssessment> getYearhfAssessmentList(String orgNumber, Integer year);
+
+
+    /**
+     * 获取半年超水量
+     * @param orgId
+     * @param yearhf
+     * @return
+     */
+    List<Object[]> getYearhfOverWater(Long orgId,Integer yearhf,String year);
+
+
+    /**
+     * 获取总页数
+     * @param orgNumber
+     * @param orgName
+     * @param year
+     * @param address
+     * @param isPlanUser
+     * @param userType
+     * @return
+     */
+    int getTotalRows(int pageSize,Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                     String orgName, String year, String address, String isPlanUser,
+                     String userType,String yearhf,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,String isWriteOff,Float waterPrice);
+
+
+    /**
+     * 导出列表到excel
+     * @param pageNo
+     * @param pageSize
+     * @param orgNumber
+     * @param customerNumber
+     * @param meterNumber
+     * @param orgName
+     * @param year
+     * @param address
+     * @param isPlanUser
+     * @param userType
+     * @param overWaterBegin
+     * @param overWaterEnd
+     * @param amountReceivableBegin
+     * @param amountReceivableEnd
+     * @param assessmentId
+     * @return
+     */
+    List<BusYearhfAssessmentTemp> getYearhfAssessmentForExcel(Integer pageNo, Integer pageSize, Integer orgNumber, Integer customerNumber, Integer meterNumber,
+                                                             String orgName, String year, String address, String isPlanUser,
+                                                             String userType, String yearhf, Integer overWaterBegin, Integer overWaterEnd, Integer amountReceivableBegin, Integer amountReceivableEnd, String[] assessmentId, String isWriteOff);
+
+
+    /**
+     * 获得年度计划选择列表
+     * @param orgName
+     * @return
+     */
+    Page getAnnualPlanSelectedData(int pageNo, int pageSize, String orgName, String year);
+}

+ 936 - 0
src/java/com/bus/service/impl/BusMonthAssessmentServiceImpl.java

@@ -0,0 +1,936 @@
+package com.bus.service.impl;
+
+import com.bus.dao.IBusMonthAssessmentDao;
+import com.bus.model.BusMonthAssessment;
+import com.bus.model.BusOrg;
+import com.bus.model.temp.AddWaterTemp;
+import com.bus.model.temp.AddWaterTempRowMap;
+import com.bus.model.temp.BusMonthAssessmentTemp;
+import com.bus.service.IBusMonthAssessmentService;
+import com.bus.service.IBusOrgService;
+import com.core.dao.IGenericDao;
+import com.core.service.impl.GenericServiceImpl;
+import com.core.util.AppUtil;
+import com.core.util.Page;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.RowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.DecimalFormat;
+import java.util.List;
+
+public class BusMonthAssessmentServiceImpl extends GenericServiceImpl<BusMonthAssessment, Long> implements IBusMonthAssessmentService{
+    @Autowired
+    private IBusMonthAssessmentDao dao;
+
+    @Autowired
+    private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate;
+
+    @Override
+    protected IGenericDao<BusMonthAssessment, Long> getGenericDao() {
+        return this.dao;
+    }
+
+    private IBusOrgService busOrgService = (IBusOrgService) AppUtil.getBean("busOrgService");
+    Logger log = LoggerFactory.getLogger(BusMonthAssessmentServiceImpl.class);
+
+//    //超计划加价水费查询
+//    @Override
+//    public List<Object[]> getOutOfPlanMonthList(String orgNumber, String season, Integer year) {
+//        String sql ="SELECT * FROM sheet1$ WHERE `单位编号`='"+orgNumber+"' AND `考核季度`='"+season+"' AND `年份`='"+year+"'";
+//        RowMapper<Object[]> rowMapper = new RowMapper<Object[]>(){
+//
+//            @Override
+//            public Object[] mapRow(ResultSet rs, int index) throws SQLException {
+////				ids.add(rs.getLong("assessment_id"));
+//                Object[] object = new Object[9];
+//                object[0] = rs.getString("单位编号");
+//                object[1] = rs.getString("单位名称");
+//                object[2] = rs.getString("水表号");
+//                object[3] = rs.getString("年份");
+//                object[4] = rs.getString("考核季度");
+//
+//                object[5] = rs.getDouble("增加30%后计划用水量");
+//                object[6] = rs.getDouble("实际用水量");
+//                object[7] = rs.getDouble("总金额");
+//                object[8] = rs.getDouble("超用率")*100;
+//
+//                return object;
+//            }
+//
+//        };
+//        List<Object[]> list = jdbcTemplate.query(sql, rowMapper);
+//
+//        return list;
+//    }
+
+    @Override
+    public List<Object[]> getMonthAssessmentListPage(int pageNo, int pageSize, Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                                                       String orgName, String year, String address, String isPlanUser,
+                                                       String userType,String month,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,Long assessmentMonId
+            ,String isWriteOff,Float waterPrice) {
+        int star = pageSize*(pageNo-1);
+        String sql =
+                "	SELECT 	                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "		t.`assessment_mon_id`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		bo.`org_id`,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		bo.`org_number`,                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		bo.`org_name`,                                                                                                                                                                                                                                                                                                                                                                                                              "+
+                        "		bo.`address`,                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "		bo.`year`,                                                                                                                                                                                                                                                                                                                                                                                                                  "+
+                        "		bo.`user_type`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                        "		bo.`is_plan_user`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		t.`water_type`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                        "		t.assessment_month,                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		t.water_planning_index,                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "		t.`is_write_off`,                                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		t.`write_off_date`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`mode_of_payment`,                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "		t.`water_price`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`paid_in_amount`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`remark`,                                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "		t.`invoice_no`,t.`tax_pay` ,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		CASE                                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			WHEN t.assessment_month=1 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=2 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=3 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=4 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=5 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=6 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=7 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=8 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=9 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=10 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=11 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=12 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			ELSE 0 END                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		AS reply_of_water,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "			SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "			FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                          "+
+                        "			WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                "+
+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			ELSE IF((IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                 "+
+                        "			END                                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                     "+
+                        "		WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                             "+
+                        "		                                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		*t.water_price,1) AS amount_receivable,                                                                                                                                                                                                                                                                                                                                                                                   "+
+                        "			                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		IFNULL(bsrm.water,0) AS usewater,                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                        "			WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0) AS over_water,                                                                                                                                                                                                                                                                                                                            "+
+                        "	IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        "	      ,bo.code, bo.postal_address"+
+                        //*********************************************************
+                        ", IFNULL(  ROUND(    IFNULL(      ROUND(        bsrm.water - (          t.water_planning_index * ("+
+                        "         1+             (SELECT               MIN(`section_up_limit`)             FROM              `base_section` bs"+
+                        "           JOIN `base_punishment_section` bps                 ON bs.`punishment_id` = bps.`punishment_id`"+
+                        "          WHERE `user_type` = '1'               AND `section_type` = 'month'               AND `status` = 1) / 100          )        ),        0      ),      0"+
+                        "   ) - t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`) "+
+                        "    FROM        `base_section` bs) / 100    ),    0  ),  0) AS Interval_up,"+
+                        "IFNULL(  ROUND(    t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`)"+
+                        "     FROM        `base_section` bs) / 100    ),    0  ),  0) AS Interval_low,"+
+
+                        "     ROUND(IFNULL(    ROUND( IFNULL(    ROUND(      bsrm.water - (        t.water_planning_index * ("+
+                        "     1+           (SELECT             MIN(`section_up_limit`)           FROM            `base_section` bs"+
+                        "      JOIN `base_punishment_section` bps               ON bs.`punishment_id` = bps.`punishment_id` "+
+                        "      WHERE `user_type` = '1'             AND `section_type` = 'month'             AND `status` = 1) / 100        )      ),      0    ),    0  ) -"+
+                        "      t.water_planning_index *( (SELECT            MAX(`section_up_limit`) - MIN(`section_up_limit`)           FROM            `base_section` bs ) / 100) ,      0"+
+                        "      ),    0  )  * t.water_price,1)      AS money_up,"+
+
+
+
+                        "IFNULL(  ROUND(    t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`)"+
+                        "   FROM        `base_section` bs) / 100    ) * t.water_price * 0.5,    1  ),  0) AS money_low ,t.reply_of_water as increase"+
+                        //*****************************************************
+                        " FROM bus_month_assessment t                                                                                                                                                                                                                                                                                                                                                                                        "+
+
+                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.`import_status`='normal'                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "			JOIN                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "			(                                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "				SELECT SUM(water) AS water,                                                                                                                                                                                                                                                                                                                                                 "+
+                        "					 `month` AS X,                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "					 org_id                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "				FROM bus_meter_read_info                                                                                                                                                                                                                                                                                                                                                                                                ";
+        if (year != null && !year.equals(""))
+        {
+            sql +="				WHERE YEAR='" + year + "' and org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                ";
+        }
+        else
+        {
+            sql +="				WHERE org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                ";
+        }
+        sql +="				GROUP BY X,org_id                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_month                                                                                                                                                                                                                                                                                                                                                           ";
+        if (orgNumber != null&&!orgNumber.equals(""))
+            sql += " and bo.org_number=" + orgNumber;
+        if (orgName != null&&!orgName.equals(""))
+            sql += " and bo.org_name like '%" + orgName + "%'";
+        if (year != null && !year.equals(""))
+            sql += " and bo.`year`='" + year + "'";
+        if (address != null && !address.equals(""))
+            sql += " and bo.address='" + address + "'";
+        if (isPlanUser != null && !isPlanUser.equals(""))
+            sql += " and bo.is_plan_user='" + isPlanUser + "'";
+        if (userType != null && !userType.equals(""))
+            sql += " and bo.user_type='" + userType + "'";
+        if (null != customerNumber && !customerNumber.equals(""))
+            sql += " and bcm.customer_Number=" +customerNumber;
+        if (null != meterNumber && !meterNumber.equals(""))
+            //sql += " and bcm.meter_Number=" + meterNumber;
+            sql += " and bo.org_id in(select org_id from bus_customer_meter  where meter_Number='"+meterNumber+"')";
+        if (null != month && !month.equals(""))
+            sql += " and t.assessment_month in (" + month +")";
+        if (null != isWriteOff && !isWriteOff.equals(""))
+            sql += " and t.`is_write_off`='" + isWriteOff +"'";
+
+        if (null != waterPrice && !waterPrice.equals(""))
+            sql += " and t.`water_price`=" + waterPrice +"";
+
+        if ((null != overWaterBegin && !overWaterBegin.equals(""))&&(null != overWaterEnd && !overWaterEnd.equals(""))){
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,2),0) BETWEEN " + overWaterBegin +" AND "+overWaterEnd;
+        }else{
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,2),0)>0";
+        }
+        if ((null != amountReceivableBegin && !amountReceivableBegin.equals(""))&&(null != amountReceivableEnd && !amountReceivableEnd.equals("")))
+            sql +=
+                    "	AND (                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                            "		FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                             "+
+                            "		WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                   "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		ELSE IF((IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                    "+
+                            "		END                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                            "		WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                              "+
+                            "		                                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                            "		*t.water_price,1)                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "	) BETWEEN " + amountReceivableBegin +" AND "+amountReceivableEnd ;
+        if (null != assessmentMonId && !assessmentMonId.equals(""))
+            sql += " and t.assessment_mon_id=" + assessmentMonId;
+        sql +=  " ORDER BY t.`org_id`,t.`assessment_month` LIMIT ?,?";
+        //log.debug("测试sql"+sql);
+        RowMapper<Object[]> rowMapper = new RowMapper<Object[]>(){
+
+            @Override
+            public Object[] mapRow(ResultSet rs, int index) throws SQLException {
+//				ids.add(rs.getLong("assessment_id"));
+                Object[] object = new Object[33];
+                object[0] = rs.getLong("assessment_mon_id");
+                object[1] = rs.getLong("org_id");
+                object[2] = rs.getInt("org_number");
+                object[3] = rs.getString("org_name");
+                object[4] = rs.getString("address");
+                object[5] = rs.getString("year");
+                object[6] = rs.getString("user_type");
+                object[7] = rs.getString("is_plan_user");
+                object[8] = rs.getInt("assessment_month");
+                object[9] = rs.getFloat("water_planning_index");
+                object[10] = rs.getString("is_write_off");
+                object[11] = rs.getDate("write_off_date");
+                object[12] = rs.getString("mode_of_payment");
+                object[13] = rs.getFloat("water_price");
+                object[14] = rs.getFloat("usewater");
+                object[15] = rs.getFloat("over_water");
+                object[16] = rs.getFloat("over_water_percent");
+                object[17] = rs.getFloat("paid_in_amount");
+                object[18] = rs.getFloat("amount_receivable");
+                object[19] = rs.getString("water_type");
+                object[20] = rs.getString("remark");
+                object[21] = rs.getString("reply_of_water");
+                object[22] = rs.getString("invoice_no");
+                object[23] = rs.getString("code");
+                object[24] = rs.getString("postal_address");
+
+                BusOrg org=busOrgService.get(rs.getLong("org_id"));
+                object[25] = org.getBusOrgMeterNumber();
+                object[26] = rs.getString("tax_pay");
+
+                if(rs.getInt("Interval_up")<0)
+                {
+                    object[27] = rs.getFloat("over_water");
+                    object[28] = "0";
+                    object[29] = rs.getFloat("amount_receivable");
+                    object[30] = "";
+                    object[31] = rs.getFloat("amount_receivable");
+                }
+                else
+                {
+                    object[27] = rs.getFloat("Interval_low");
+                    object[28] = rs.getFloat("Interval_up");
+                    object[29] = rs.getFloat("money_up");
+                    object[30] = rs.getFloat("money_low");
+                    object[31] = rs.getFloat("money_up")+rs.getFloat("money_low");
+                }
+                object[32] = rs.getFloat("increase");
+                return object;
+            }
+
+        };
+
+        List<Object[]> list = jdbcTemplate.query(sql, rowMapper,star,pageSize);
+        return list;
+    }
+
+    @Override
+    public List<BusMonthAssessmentTemp> getMonthAssessmentForExcel(Integer pageNo, Integer pageSize, Integer orgNumber, Integer customerNumber, Integer meterNumber,
+                                                                   String orgName, String year, String address, String isPlanUser,
+                                                                   String userType, String month, Integer overWaterBegin, Integer overWaterEnd, Integer amountReceivableBegin, Integer amountReceivableEnd, String[] assessmentMonId, String isWriteOff) {
+        int star = pageSize*(pageNo-1);
+        String sql =
+                "	SELECT 	                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "		t.`assessment_mon_id`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		bo.`org_id`,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		bo.`org_number`,                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		bo.`org_name`,                                                                                                                                                                                                                                                                                                                                                                                                              "+
+                        "		bo.`address`,                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "		bo.`year`,                                                                                                                                                                                                                                                                                                                                                                                                                  "+
+                        "		bo.`user_type`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                        "		bo.`is_plan_user`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		t.`water_type`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                        "		t.assessment_quarter,                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		t.water_planning_index,                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "		t.`is_write_off`,                                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		t.`write_off_date`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`mode_of_payment`,                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "		t.`water_price`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`paid_in_amount`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`remark`,                                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "		t.`invoice_no`,                                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "		CASE                                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			WHEN t.assessment_month=1 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=2 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=3 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=4 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=5 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=6 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=7 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=8 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=9 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=10 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=11 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=12 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			ELSE 0 END                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		AS reply_of_water,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "			SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "			FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                          "+
+                        "			WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                "+
+
+                        //"																				   IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0) AS over_water_percent                                                                                                                                                                                                                                   "+
+                        //"																				   IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        //                                                                                                                                                                                                                                                       "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			ELSE IF((IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                 "+
+                        "			END                                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                     "+
+                        "		WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                             "+
+                        "		                                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		*t.water_price,1) AS amount_receivable,                                                                                                                                                                                                                                                                                                                                                                                   "+
+                        "			                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		IFNULL(bsrm.water,0) AS usewater,                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                        "			WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0) AS over_water,                                                                                                                                                                                                                                                                                                                            "+
+                        //"		IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                    "+
+                        //"			WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0) AS over_water_percent,bo.`code`, bo.`postal_address`                                                                                                                                                                                                                                                       "+
+                        "	IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        "	      ,bo.code, bo.postal_address "+
+                        //**********************************************************************************************************
+                        ", IFNULL(  ROUND(    IFNULL(      ROUND(        bsrm.water - (          t.water_planning_index * ("+
+                        "         1+             (SELECT               MIN(`section_up_limit`)             FROM              `base_section` bs"+
+                        "           JOIN `base_punishment_section` bps                 ON bs.`punishment_id` = bps.`punishment_id`"+
+                        "          WHERE `user_type` = '1'               AND `section_type` = 'month'               AND `status` = 1) / 100          )        ),        0      ),      0"+
+                        "   ) - t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`) "+
+                        "    FROM        `base_section` bs) / 100    ),    0  ),  0) AS Interval_up,"+
+                        "IFNULL(  ROUND(    t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`)"+
+                        "     FROM        `base_section` bs) / 100    ),    0  ),  0) AS Interval_low,"+
+
+                        "      ROUND(IFNULL(    ROUND( IFNULL(    ROUND(      bsrm.water - (        t.water_planning_index * ("+
+                        "     1+           (SELECT             MIN(`section_up_limit`)           FROM            `base_section` bs"+
+                        "      JOIN `base_punishment_section` bps               ON bs.`punishment_id` = bps.`punishment_id` "+
+                        "      WHERE `user_type` = '1'             AND `section_type` = 'month'             AND `status` = 1) / 100        )      ),      0    ),    0  ) -"+
+                        "      t.water_planning_index *( (SELECT            MAX(`section_up_limit`) - MIN(`section_up_limit`)           FROM            `base_section` bs ) / 100) ,      0"+
+                        "      ),    0  )  * t.water_price,1  )    AS money_up,"+
+
+
+
+                        "IFNULL(  ROUND(    t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`)"+
+                        "   FROM        `base_section` bs) / 100    ) * t.water_price * 0.5,    1  ),  0) AS money_low  ,t.reply_of_water as increase "+
+                        //**********************************************************************************************************
+                        "	FROM bus_month_assessment t                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.`import_status`='normal'                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "			JOIN                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "			(                                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "				SELECT SUM(water) AS water,                                                                                                                                                                                                                                                                                                                                                 "+
+                        "					 `month` AS X,                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "					 org_id                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "				FROM bus_meter_read_info                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "				WHERE YEAR='" + year + "' and org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "				GROUP BY X,org_id                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_month                                                                                                                                                                                                                                                                                                                                                            ";
+        if (orgNumber != null&&!orgNumber.equals(""))
+            sql += " and bo.org_number=" + orgNumber;
+        if (orgName != null&&!orgName.equals(""))
+            sql += " and bo.org_name='" + orgName + "'";
+        if (year != null && !year.equals(""))
+            sql += " and bo.`year`='" + year + "'";
+        if (address != null && !address.equals(""))
+            sql += " and bo.address='" + address + "'";
+        if (isPlanUser != null && !isPlanUser.equals(""))
+            sql += " and bo.is_plan_user='" + isPlanUser + "'";
+        if (userType != null && !userType.equals(""))
+            sql += " and bo.user_type='" + userType + "'";
+        if (null != customerNumber && !customerNumber.equals(""))
+            sql += " and bcm.customer_Number=" +customerNumber;
+        if (null != meterNumber && !meterNumber.equals(""))
+            //sql += " and bcm.meter_Number=" + meterNumber;
+            sql += " and bo.org_id in(select org_id from bus_customer_meter  where meter_Number='"+meterNumber+"')";
+        if (null != month && !month.equals(""))
+            sql += " and t.assessment_month in (" + month +")";
+        if (null != isWriteOff && !isWriteOff.equals(""))
+            sql += " and t.`is_write_off`='" + isWriteOff +"'";
+        if ((null != overWaterBegin && !overWaterBegin.equals(""))&&(null != overWaterEnd && !overWaterEnd.equals(""))){
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,2),0) BETWEEN " + overWaterBegin +" AND "+overWaterEnd;
+        }else{
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,2),0)>0";
+        }
+
+        String paramIds = "";
+        if (null != assessmentMonId && !assessmentMonId.equals("")) {
+            for (int i = 0; i < assessmentMonId.length; i++) {
+                if(i==0){
+                    paramIds += assessmentMonId[i];
+                }else{
+                    paramIds += "," + assessmentMonId[i];
+                }
+            }
+            sql += " and t.assessment_mon_id IN ("+paramIds+")";
+        }
+
+        if ((null != amountReceivableBegin && !amountReceivableBegin.equals(""))&&(null != amountReceivableEnd && !amountReceivableEnd.equals("")))
+            sql +=
+                    "	AND (                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                            "		FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                             "+
+                            "		WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                   "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		ELSE IF((IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                    "+
+                            "		END                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                            "		WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                              "+
+                            "		                                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                            "		*t.water_price,1)                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "	) BETWEEN " + amountReceivableBegin +" AND "+amountReceivableEnd ;
+        sql +=  " ORDER BY t.`org_id`,t.`assessment_month` LIMIT ?,?";
+        RowMapper<BusMonthAssessmentTemp> rowMapper = new RowMapper<BusMonthAssessmentTemp>(){
+
+            @Override
+            public BusMonthAssessmentTemp mapRow(ResultSet rs, int index) throws SQLException {
+                BusMonthAssessmentTemp bqat = new BusMonthAssessmentTemp();
+                bqat.setOrgNumber(rs.getString("org_number"));
+                bqat.setOrgName(rs.getString("org_name"));
+                bqat.setAddress(rs.getString("address"));
+                bqat.setYear(rs.getString("year"));
+                if("1".equals(rs.getString("user_type"))){
+                    bqat.setUserType("自来水户");
+                }else{
+                    bqat.setUserType("取水户");
+                }
+                if("yes".equals(rs.getString("is_plan_user"))){
+                    bqat.setIsPlanUser("是");
+                }else{
+                    bqat.setIsPlanUser("否");
+                }
+                bqat.setAssessmentMonth(rs.getInt("assessment_month"));
+                bqat.setWaterPlanningIndex(rs.getString("water_planning_index"));
+                if("yes".equals(rs.getString("is_write_off"))){
+                    bqat.setIsWriteOff("是");
+                }else{
+                    bqat.setIsWriteOff("否");
+                }
+                bqat.setWriteOffDate(rs.getDate("write_off_date"));
+                if("1".equals(rs.getString("mode_of_payment"))){
+                    bqat.setModeOfPayment("现金");
+                }else if("2".equals(rs.getString("mode_of_payment"))){
+                    bqat.setModeOfPayment("转账");
+                }else{
+                    bqat.setModeOfPayment("");
+                }
+                DecimalFormat df = new DecimalFormat("#.0");
+                bqat.setWaterPrice(rs.getFloat("water_price"));
+                bqat.setActualUseWater(rs.getString("usewater"));
+                bqat.setActualClosingWater(rs.getString("over_water"));
+                bqat.setPaidInAmount(Float.parseFloat(df.format(rs.getFloat("paid_in_amount"))));
+                bqat.setAmountReceivable(rs.getString("amount_receivable"));
+                bqat.setWaterType(rs.getString("water_type"));
+                bqat.setRemark(rs.getString("remark"));
+                bqat.setReplyOfWater(rs.getString("reply_of_water"));
+                bqat.setOverWaterPercent(rs.getString("over_water_percent")+'%');
+                bqat.setpost(rs.getString("code"));
+                bqat.setpostAddress(rs.getString("postal_address"));
+                BusOrg org=busOrgService.get(rs.getLong("org_id"));
+                bqat.setmeterNumber(org.getBusOrgMeterNumber());
+
+                if(rs.getInt("Interval_up")<0)
+                {
+                    bqat.setIntervallow(rs.getFloat("over_water"));
+                    bqat.setIntervalup(Float.parseFloat("0"));
+                    bqat.setMoneyup(rs.getFloat("amount_receivable"));
+                    bqat.setMoneylow(Float.parseFloat("0"));
+                    bqat.setMoneyall(rs.getFloat("amount_receivable"));
+
+                }
+                else
+                {
+                    bqat.setIntervallow(rs.getFloat("Interval_low"));
+                    bqat.setIntervalup(rs.getFloat("Interval_up"));
+                    bqat.setMoneyup(Float.parseFloat(df.format(rs.getFloat("money_low"))));
+                    bqat.setMoneylow(Float.parseFloat(df.format(rs.getFloat("money_up"))));
+                    bqat.setMoneyall(Float.parseFloat(df.format(rs.getFloat("money_up")+rs.getFloat("money_low"))));
+                }
+                bqat.setReplyOfIncrease(rs.getFloat("increase"));
+                return bqat;
+            }
+
+        };
+
+        List<BusMonthAssessmentTemp> list = jdbcTemplate.query(sql, rowMapper,star,pageSize);
+        return list;
+    }
+
+    @Override
+    public List<Object[]> getMonthOverWater(Long orgId, Integer month,String year) {
+        String sql =
+                "	SELECT IFNULL(SUM(bmri.`water`),0) AS over_water FROM `bus_meter_read_info` bmri                        "+
+                        "	WHERE bmri.`org_id`=? AND bmri.`month`=? AND bmri.`year`=?              					";
+
+        RowMapper<Object[]> rowMapper = new RowMapper<Object[]>(){
+
+            @Override
+            public Object[] mapRow(ResultSet rs, int index) throws SQLException {
+                Object[] object = new Object[1];
+                object[0] = rs.getString("over_water");
+                return object;
+            }
+
+        };
+        List<Object[]> list = jdbcTemplate.query(sql, rowMapper, orgId, month, year);
+        return list;
+    }
+
+    @Override
+    public int getTotalRows(int pageSize,Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                            String orgName, String year, String address, String isPlanUser,
+                            String userType,String month,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,String isWriteOff,Float waterPrice) {
+        String sql =
+                "	SELECT 	COUNT(*)                                                                                    "+
+                        "	              FROM bus_month_assessment t                                                       "+
+                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.`import_status`='normal'                       "+
+                        "			JOIN                                                                                            "+
+                        "			(                                                                                               "+
+                        "				SELECT SUM(water) AS water,                                                                  "+
+                        "					 `month` AS X,                                                                         "+
+                        "					 org_id                                                                                  "+
+                        "				FROM bus_meter_read_info                                                                      "+
+                        "				WHERE  YEAR='" + year + "' AND org_id IS NOT NULL                                                                      "+
+                        "				GROUP BY X,org_id                                                                             "+
+                        "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_month                                  "+
+                        "	WHERE 1=1                           																	" ;
+        if (orgNumber != null&&!orgNumber.equals(""))
+            sql += " and bo.org_number=" + orgNumber;
+        if (orgName != null&&!orgName.equals(""))
+            sql += " and bo.org_name  like '%" + orgName + "%'";
+        if (year != null && !year.equals(""))
+            sql += " and bo.`year`='" + year + "'";
+        if (address != null && !address.equals(""))
+            sql += " and bo.address='" + address + "'";
+        if (isPlanUser != null && !isPlanUser.equals(""))
+            sql += " and bo.is_plan_user='" + isPlanUser + "'";
+        if (userType != null && !userType.equals(""))
+            sql += " and bo.user_type='" + userType + "'";
+        if (null != customerNumber && !customerNumber.equals(""))
+            sql += " and bcm.customer_Number=" +customerNumber;
+        if (null != meterNumber && !meterNumber.equals(""))
+            //sql += " and bcm.meter_Number=" + meterNumber;
+            sql += " and bo.org_id in(select org_id from bus_customer_meter  where meter_Number='"+meterNumber+"')";
+        if (null != month && !month.equals(""))
+            sql += " and t.assessment_month in (" + month +")";
+        if (null != isWriteOff && !isWriteOff.equals(""))
+            sql += " and t.`is_write_off`='" + isWriteOff +"'";
+        if (null != waterPrice && !waterPrice.equals(""))
+            sql += " and t.`water_price`=" + waterPrice +"";
+
+        if ((null != overWaterBegin && !overWaterBegin.equals(""))&&(null != overWaterEnd && !overWaterEnd.equals(""))){
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,2),0) BETWEEN " + overWaterBegin +" AND "+overWaterEnd;
+        }else{
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,2),0)>0";
+        }
+        if ((null != amountReceivableBegin && !amountReceivableBegin.equals(""))&&(null != amountReceivableEnd && !amountReceivableEnd.equals("")))
+            sql +=
+                    "	AND (                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                            "		FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                             "+
+                            "		WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                   "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		ELSE IF((IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                    "+
+                            "		END                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                            "		WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                              "+
+                            "		                                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                            "		*t.water_price,1)                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "	) BETWEEN " + amountReceivableBegin +" AND "+amountReceivableEnd ;
+        return jdbcTemplate.queryForInt(sql);
+    }
+
+
+//    @Override
+//    public List<AddWaterTemp> getHalfYearOfAddWaterMonth(String year,
+//                                                    String userType, String month, String orgName, String isWriteOff) {
+//
+//        /*
+//         * modify by lhj	2021-01-18
+//         */
+//        String sql =
+//                "	SELECT 	                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+//                        "		notice.`org_id`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+//                        "		notice.`org_name`,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+//                        "		notice.`year`,                                                                                                                                                                                                                                                                                                                                                                                                            "+
+//                        "		GROUP_CONCAT(IFNULL(notice.assessment_quarter,0)) AS quarters,                                                                                                                                                                                                                                                                                                                                                                                                              "+
+//                        "		GROUP_CONCAT(IFNULL(notice.water_planning_index,0)) AS planWaters,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+//                        "		GROUP_CONCAT(IFNULL(notice.amount_receivable,'0.0')) AS amountReceivables,                                                                                                                                                                                                                                                                                                                                                                                                                 "+
+//                        "		GROUP_CONCAT(IFNULL(notice.usewater,0)) AS useWaters,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+//                        "		GROUP_CONCAT(IFNULL(notice.over_water,0)) AS overWaters                                                                                                                                                                                                                                                                                                                                                                                                             "+
+//                        "		FROM(                                                                                                                                                                                                                                                                                                                                                                                                             "+
+//                        "			SELECT                                                                                                                                                                                                                                                                                                                                                                                                       "+
+//                        "		bo.`org_id`,                                                                                                                                                                                                                                                                                                                                                                                                     "+
+//                        "		bo.`org_name`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+//                        "		bo.`year`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+//                        "		t.assessment_quarter,                                                                                                                                                                                                                                                                                                                                                                                                        "+
+//                        "		t.water_planning_index,                                                                                                                                                                                                                                                                                                                                                                                                        "+
+//                        "		t.`is_write_off`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+//                        "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+//                        "			SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                 "+
+//                        "			FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                          "+
+//                        "			WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                "+
+//                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                             "+
+//                        "			AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+//                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                             "+
+//                        "			AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+//                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                              "+
+//                        "			AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+//                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                              "+
+//                        "			AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+//                        "			ELSE IF((IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                 "+
+//                        "			END                                                                                                                                                                                                                                                                                                                                                                                                                       "+
+//                        "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+//                        "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                     "+
+//                        "		WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                             "+
+//                        "		                                                                                                                                                                                                                                                                                                                                                                                                                            "+
+//                        "		*t.water_price,1) AS amount_receivable,                                                                                                                                                                                                                                                                                                                                                                                   "+
+//                        "			                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+//                        "		IFNULL(bsrm.water,0) AS usewater,                                                                                                                                                                                                                                                                                                                                                                                           "+
+//                        "		IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+//                        "			WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)) ,0),0) AS over_water                                                                                                                                                                                                                                                                                                                            "+
+//                        "	       FROM bus_quarterly_assessment t                                                                                                                                                                                                                                                                                                                                                                                        "+
+//                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.import_status='normal'                                                                                                                                                                                                                                                                                                                                                                                    "+
+//                        "			join                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+//                        "			(                                                                                                                                                                                                                                                                                                                                                                                                                         "+
+//                        "				SELECT SUM(water) AS water,MIN(`base_water_price`) AS water_price, CASE                                                                                                                                                                                                                                                                                                                                                 "+
+//                        "					 WHEN `month`=1 OR `month`=2 OR `month`=3 THEN '1'                                                                                                                                                                                                                                                                                                                                                                    "+
+//                        "					 WHEN `month`=4 OR `month`=5 OR `month`=6 THEN '2'                                                                                                                                                                                                                                                                                                                                                                    "+
+//                        "					 WHEN `month`=7 OR `month`=8 OR `month`=9 THEN '3'                                                                                                                                                                                                                                                                                                                                                                    "+
+//                        "					 ELSE '4' END X,                                                                                                                                                                                                                                                                                                                                                                                                      "+
+//                        "					 org_id                                                                                                                                                                                                                                                                                                                                                                                                               "+
+//                        "				FROM bus_meter_read_info                                                                                                                                                                                                                                                                                                                                                                                                "+
+//                        "				WHERE org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                "+
+//                        "				GROUP BY X,org_id                                                                                                                                                                                                                                                                                                                                                                                                       "+
+//                        "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_quarter                                                                                                                                                                                                                                                                                                                                                            "+
+//                        "			AND IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`)                                                                                                                                                                                                                                                                                                                                                            "+
+//                        "			FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                                                                                                                                            "+
+//                        "			WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)) ,0),0)>0                                                                                                                                                                                                                                                                                                                                                            "+
+//                        "			) AS notice GROUP BY notice.`org_id`,notice.`year`                                                                                                                                                                                                                                                                                                                                                            ";
+//
+//        StringBuffer sb=new StringBuffer();
+//        sb.append(sql);
+//        String insertPositionBefore=") AS notice";
+//
+//        if (orgName != null&&!orgName.equals("")){
+//            sql= " and bo.org_name='"+orgName+"'";
+//            sb.insert(sb.indexOf(insertPositionBefore), sql);
+//        }
+//        if (year != null && !year.equals("")){
+//            sql = " and bo.`year`='" + year + "'";
+//            sb.insert(sb.indexOf(insertPositionBefore), sql);
+//        }
+//        if (userType != null && !userType.equals("")){
+//            sql= " and bo.user_type='" + userType + "'";
+//            sb.insert(sb.indexOf(insertPositionBefore), sql);
+//        }
+//        if (null != quarter && !quarter.equals("")){
+//            sql = " and t.assessment_quarter IN(" + quarter +")";
+//            sb.insert(sb.indexOf(insertPositionBefore), sql);
+//        }
+//        if (null != isWriteOff && !isWriteOff.equals("")){
+//            sql = " and t.`is_write_off`='" + isWriteOff +"'";
+//            sb.insert(sb.indexOf(insertPositionBefore), sql);
+//        }
+//        List<AddWaterTemp> at = jdbcTemplate.query(sb.toString(),new Object[]{},new AddWaterTempRowMap());
+//        return at;
+//    }
+
+//    @SuppressWarnings({ "unchecked", "rawtypes" })
+////    @Override
+////    public AddWaterTemp getAddWaterDetailMonth(Long assessmentId) {
+////
+////        String sql =
+////                "	SELECT                                                                                                                                                                                                                                                                                                                                                                                                       "+
+////                        "		t.`assessment_id` AS assessmentId,                                                                                                                                                                                                                                                                                                                                                                                                       "+
+////                        "		bo.`org_id` AS orgId,                                                                                                                                                                                                                                                                                                                                                                                                     "+
+////                        "		bo.`org_name` AS orgName,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+////                        "		bo.`year`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+////                        "		t.assessment_quarter AS assessmentQuarter,                                                                                                                                                                                                                                                                                                                                                                                                        "+
+////                        "		t.water_planning_index AS planUseWater,                                                                                                                                                                                                                                                                                                                                                                                                        "+
+////                        "		t.`is_write_off` AS isWriteOff,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+////                        "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+////                        "			SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                 "+
+////                        "			FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                          "+
+////                        "			WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                "+
+////                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                             "+
+////                        "			AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+////                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                             "+
+////                        "			AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+////                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                              "+
+////                        "			AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+////                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                              "+
+////                        "			AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+////                        "			ELSE IF((IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                 "+
+////                        "			END                                                                                                                                                                                                                                                                                                                                                                                                                       "+
+////                        "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+////                        "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                     "+
+////                        "		WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                             "+
+////                        "		                                                                                                                                                                                                                                                                                                                                                                                                                            "+
+////                        "		*t.water_price,1) AS amountReceivable,                                                                                                                                                                                                                                                                                                                                                                                   "+
+////                        "			                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+////                        "		IFNULL(bsrm.water,0) AS actualWater,                                                                                                                                                                                                                                                                                                                                                                                           "+
+////                        "		IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+////                        "			WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)) ,0),0) AS exceedUseWater                                                                                                                                                                                                                                                                                                                            "+
+////                        "	       FROM bus_quarterly_assessment t                                                                                                                                                                                                                                                                                                                                                                                        "+
+////                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.import_status='normal'                                                                                                                                                                                                                                                                                                                                                                                    "+
+////                        "			JOIN                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+////                        "			(                                                                                                                                                                                                                                                                                                                                                                                                                         "+
+////                        "				SELECT SUM(water) AS water,MIN(`base_water_price`) AS water_price, CASE                                                                                                                                                                                                                                                                                                                                                 "+
+////                        "					 WHEN `month`=1 OR `month`=2 OR `month`=3 THEN '1'                                                                                                                                                                                                                                                                                                                                                                    "+
+////                        "					 WHEN `month`=4 OR `month`=5 OR `month`=6 THEN '2'                                                                                                                                                                                                                                                                                                                                                                    "+
+////                        "					 WHEN `month`=7 OR `month`=8 OR `month`=9 THEN '3'                                                                                                                                                                                                                                                                                                                                                                    "+
+////                        "					 ELSE '4' END X,                                                                                                                                                                                                                                                                                                                                                                                                      "+
+////                        "					 org_id                                                                                                                                                                                                                                                                                                                                                                                                               "+
+////                        "				FROM bus_meter_read_info                                                                                                                                                                                                                                                                                                                                                                                                "+
+////                        "				WHERE org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                "+
+////                        "				GROUP BY X,org_id                                                                                                                                                                                                                                                                                                                                                                                                       "+
+////                        "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_quarter                                                                                                                                                                                                                                                                                                                                                            "+
+////                        "			AND IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`)                                                                                                                                                                                                                                                                                                                                                            "+
+////                        "			FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                                                                                                                                            "+
+////                        "			WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)) ,0),0)>0 AND t.`assessment_id`=?                                                                                                                                                                                                                                                                                                                                                         ";
+////
+////
+////        return (AddWaterTemp) jdbcTemplate.queryForObject(sql, new Object[]{assessmentId}, new BeanPropertyRowMapper(AddWaterTemp.class));
+////    }
+
+//    @Override
+//    public void delMonthAssessmentByOrgId(Long orgId) {
+//        jdbcTemplate.update("DELETE FROM `bus_quarterly_assessment` WHERE `org_id`=?",orgId);
+//    }
+//
+//    @Override
+//    public void updateWaterPrice(String year) {
+//        jdbcTemplate.execute("CALL update_quarterly_assessment('"+year+"')");
+//    }
+//    //微信公众号某单位的今年取:计划用水量,实际收水量,超收水量,应缴加价水费
+    @Override
+    public List<BusMonthAssessment> getMonthAssessmentList(String orgNumber,Integer year) {
+
+        String sql =
+                "	SELECT 	                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "		t.`assessment_mon_id`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		bo.`org_id`,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		bo.`org_number`,                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		bo.`org_name`,                                                                                                                                                                                                                                                                                                                                                                                                              "+
+                        "		t.assessment_month,                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		CASE                                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			WHEN t.assessment_month=1 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=2 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=3 THEN (SELECT (`first_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=4 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=5 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=6 THEN (SELECT (`second_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=7 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=8 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=9 THEN (SELECT (`third_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=10 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			WHEN t.assessment_month=11 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_month=12 THEN (SELECT (`fourth_quarter_reply`)/3 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			ELSE 0 END                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		AS reply_of_water,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "			SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "			FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                          "+
+                        "			WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			ELSE IF((IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                 "+
+                        "			END                                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                     "+
+                        "		WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                             "+
+                        "		                                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		*t.water_price,1) AS amount_receivable,                                                                                                                                                                                                                                                                                                                                                                                   "+
+                        "			                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		IFNULL(bsrm.water,0) AS usewater,                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                        "			WHERE `user_type`='1' AND `section_type`='month' AND `status`=1)/100)) ,0),0) AS over_water,                                                                                                                                                                                                                                                                                                                            "+
+                        "	IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        "	      ,bo.code, bo.postal_address FROM bus_month_assessment t                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.`import_status`='normal'                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "			JOIN                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "			(                                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "				SELECT SUM(water) AS water,                                                                                                                                                                                                                                                                                                                                                 "+
+                        "					 `month` AS X,                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "					 org_id                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "				FROM bus_meter_read_info                                                                                                                                                                                                                                                                                                                                                                                                ";
+        if (year != null && !year.equals(""))
+        {
+            sql +="				WHERE YEAR='" + year + "' and org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                ";
+        }
+        else
+        {
+            sql +="				WHERE org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                ";
+        }
+        sql +="				GROUP BY X,org_id                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_month                                                                                                                                                                                                                                                                                                                                                            ";
+        if (orgNumber != null&&!orgNumber.equals(""))
+            sql += " and bo.org_number=" + orgNumber;
+
+        if (year != null && !year.equals(""))
+            sql += " and bo.`year`='" + year + "'";
+
+
+
+        sql +=  " ORDER BY t.`org_id`,t.`assessment_month` ";
+
+//		RowMapper<Object[]> rowMapper2 = new RowMapper<Object[]>(){
+//
+//			@Override
+//			public Object[] mapRow(ResultSet rs, int index) throws SQLException {
+//
+//				Object[] object = new Object[9];
+//				object[0] = rs.getLong("assessment_id");
+//				object[1] = rs.getLong("org_id");
+//				object[2] = rs.getInt("org_number");
+//				object[3] = rs.getString("org_name");
+//				object[4] = rs.getInt("assessment_quarter");
+//				object[5] = rs.getFloat("usewater");
+//				object[6] = rs.getFloat("over_water");
+//				object[7] = rs.getFloat("amount_receivable");
+//				object[8] = rs.getString("reply_of_water");
+//
+//				return object;
+//			}
+//
+//		};
+//
+//		List<Object[]> list = jdbcTemplate.query(sql, rowMapper2);
+//		return list;
+//
+
+
+        RowMapper<BusMonthAssessment> rowMapper = new RowMapper<BusMonthAssessment>(){
+
+            @Override
+            public BusMonthAssessment mapRow(ResultSet rs, int index) throws SQLException {
+                BusMonthAssessment tmp = new BusMonthAssessment();
+                tmp.setAssessmentMonId(rs.getLong("assessment_mon_id"));
+                tmp.setAssessmentMonth(rs.getInt("assessment_month"));
+                tmp.setActualUseWater(rs.getFloat("usewater"));
+                tmp.setReplyOfWater(rs.getFloat("over_water"));
+                tmp.setBankAccount(getFloatRound(rs.getFloat("amount_receivable")));
+                tmp.setBank(rs.getString("reply_of_water"));
+                return tmp;
+            }
+
+        };
+
+        List<BusMonthAssessment> list = jdbcTemplate.query(sql, rowMapper);
+        return list;
+
+    }
+    public static String getFloatRound(float sourceData)
+    {
+        double f1 = Math.round(sourceData * 100) * 0.01;       //还原小数点后 a 位
+        return String.valueOf(f1);
+    }
+
+    @Override
+    public Page getAnnualPlanSelectedData(int pageNo, int pageSize, String orgName, String year) {
+        String hql = "select bapfw from BusAnnualPlanForWater bapfw left join bapfw.org bo where bo.importStatus='normal' AND bo.year='"+year+"' AND bapfw.isCancel='yes'";
+        if (null != orgName && !orgName.equals("")) {
+            hql += " and bo.orgName = '" + orgName + "'";
+        }
+        return dao.getPageByHql(hql, pageNo, pageSize);
+    }
+
+}

+ 717 - 0
src/java/com/bus/service/impl/BusYearhfAssessmentServiceImpl.java

@@ -0,0 +1,717 @@
+package com.bus.service.impl;
+
+import com.bus.dao.IBusYearhfAssessmentDao;
+import com.bus.model.BusOrg;
+import com.bus.model.BusYearhfAssessment;
+import com.bus.model.temp.BusYearhfAssessmentTemp;
+import com.bus.service.IBusOrgService;
+import com.bus.service.IBusYearhfAssessmentService;
+import com.core.dao.IGenericDao;
+import com.core.service.impl.GenericServiceImpl;
+import com.core.util.AppUtil;
+import com.core.util.Page;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.RowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.text.DecimalFormat;
+import java.util.List;
+
+public class BusYearhfAssessmentServiceImpl extends GenericServiceImpl<BusYearhfAssessment, Long> implements IBusYearhfAssessmentService {
+    @Autowired
+    private IBusYearhfAssessmentDao dao;
+
+    @Autowired
+    private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate;
+
+    @Override
+    protected IGenericDao<BusYearhfAssessment, Long> getGenericDao() {
+        return this.dao;
+    }
+
+    private IBusOrgService busOrgService = (IBusOrgService) AppUtil.getBean("busOrgService");
+    Logger log = LoggerFactory.getLogger(BusYearhfAssessmentServiceImpl.class);
+
+
+
+    @Override
+    public List<Object[]> getYearhfAssessmentListPage(int pageNo, int pageSize, Integer orgNumber,Integer customerNumber,Integer meterNumber,
+             String orgName, String year, String address, String isPlanUser,
+             String userType,String yearhf,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,Long assessmentYhfId
+            ,String isWriteOff,Float waterPrice) {
+        int star = pageSize*(pageNo-1);
+        String sql =
+                "	SELECT 	                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "		t.`assessment_yhf_id`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		bo.`org_id`,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		bo.`org_number`,                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		bo.`org_name`,                                                                                                                                                                                                                                                                                                                                                                                                              "+
+                        "		bo.`address`,                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "		bo.`year`,                                                                                                                                                                                                                                                                                                                                                                                                                  "+
+                        "		bo.`user_type`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                        "		bo.`is_plan_user`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		t.`water_type`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                        "		t.assessment_yearhf,                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		t.water_planning_index,                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "		t.`is_write_off`,                                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		t.`write_off_date`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`mode_of_payment`,                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "		t.`water_price`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`paid_in_amount`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`remark`,                                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "		t.`invoice_no`,t.`tax_pay` ,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		CASE                                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			WHEN t.assessment_yearhf=1 THEN (SELECT (`first_quarter_reply`)*2 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_yearhf=2 THEN (SELECT (`second_quarter_reply`)*2 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			ELSE 0 END                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		AS reply_of_water,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "			SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "			FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                          "+
+                        "			WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                "+
+
+                        //"																				   IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0) AS over_water_percent                                                                                                                                                                                                                                   "+
+                        //"																				   IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        //                                                                                                                                                                                                                                                       "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			ELSE IF((IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                 "+
+                        "			END                                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                     "+
+                        "		WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                             "+
+                        "		                                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		*t.water_price,1) AS amount_receivable,                                                                                                                                                                                                                                                                                                                                                                                   "+
+                        "			                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		IFNULL(bsrm.water,0) AS usewater,                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                        "			WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0) AS over_water,                                                                                                                                                                                                                                                                                                                            "+
+                        //"		IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                    "+
+                        //"			WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0) AS over_water_percent,bo.`code`, bo.`postal_address`                                                                                                                                                                                                                                                       "+
+                        "	IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        "	      ,bo.code, bo.postal_address"+
+                        //*********************************************************
+                        ", IFNULL(  ROUND(    IFNULL(      ROUND(        bsrm.water - (          t.water_planning_index * ("+
+                        "         1+             (SELECT               MIN(`section_up_limit`)             FROM              `base_section` bs"+
+                        "           JOIN `base_punishment_section` bps                 ON bs.`punishment_id` = bps.`punishment_id`"+
+                        "          WHERE `user_type` = '1'               AND `section_type` = 'yearhf'               AND `status` = 1) / 100          )        ),        0      ),      0"+
+                        "   ) - t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`) "+
+                        "    FROM        `base_section` bs) / 100    ),    0  ),  0) AS Interval_up,"+
+                        "IFNULL(  ROUND(    t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`)"+
+                        "     FROM        `base_section` bs) / 100    ),    0  ),  0) AS Interval_low,"+
+
+                        "     ROUND(IFNULL(    ROUND( IFNULL(    ROUND(      bsrm.water - (        t.water_planning_index * ("+
+                        "     1+           (SELECT             MIN(`section_up_limit`)           FROM            `base_section` bs"+
+                        "      JOIN `base_punishment_section` bps               ON bs.`punishment_id` = bps.`punishment_id` "+
+                        "      WHERE `user_type` = '1'             AND `section_type` = 'yearhf'             AND `status` = 1) / 100        )      ),      0    ),    0  ) -"+
+                        "      t.water_planning_index *( (SELECT            MAX(`section_up_limit`) - MIN(`section_up_limit`)           FROM            `base_section` bs ) / 100) ,      0"+
+                        "      ),    0  )  * t.water_price,1)      AS money_up,"+
+
+
+
+                        "IFNULL(  ROUND(    t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`)"+
+                        "   FROM        `base_section` bs) / 100    ) * t.water_price * 0.5,    1  ),  0) AS money_low ,t.reply_of_water as increase"+
+                        //*****************************************************
+                        " FROM bus_yearhf_assessment t                                                                                                                                                                                                                                                                                                                                                                                        "+
+
+                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.`import_status`='normal'                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "			JOIN                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "			(                                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "				SELECT SUM(water) AS water,                                                                                                                                                                                                                                                                                                                                                 "+
+                        "					 `yearhf` AS X,                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "					 org_id                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "				FROM bus_meter_read_info                                                                                                                                                                                                                                                                                                                                                                                                ";
+        if (year != null && !year.equals(""))
+        {
+            sql +="				WHERE YEAR='" + year + "' and org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                ";
+        }
+        else
+        {
+            sql +="				WHERE org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                ";
+        }
+        sql +="				GROUP BY X,org_id                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_yearhf                                                                                                                                                                                                                                                                                                                                                            ";
+        if (orgNumber != null&&!orgNumber.equals(""))
+            sql += " and bo.org_number=" + orgNumber;
+        if (orgName != null&&!orgName.equals(""))
+            sql += " and bo.org_name like '%" + orgName + "%'";
+        if (year != null && !year.equals(""))
+            sql += " and bo.`year`='" + year + "'";
+        if (address != null && !address.equals(""))
+            sql += " and bo.address='" + address + "'";
+        if (isPlanUser != null && !isPlanUser.equals(""))
+            sql += " and bo.is_plan_user='" + isPlanUser + "'";
+        if (userType != null && !userType.equals(""))
+            sql += " and bo.user_type='" + userType + "'";
+        if (null != customerNumber && !customerNumber.equals(""))
+            sql += " and bcm.customer_Number=" +customerNumber;
+        if (null != meterNumber && !meterNumber.equals(""))
+            //sql += " and bcm.meter_Number=" + meterNumber;
+            sql += " and bo.org_id in(select org_id from bus_customer_meter  where meter_Number='"+meterNumber+"')";
+        if (null != yearhf && !yearhf.equals(""))
+            sql += " and t.assessment_yearhf in (" + yearhf +")";
+        if (null != isWriteOff && !isWriteOff.equals(""))
+            sql += " and t.`is_write_off`='" + isWriteOff +"'";
+
+        if (null != waterPrice && !waterPrice.equals(""))
+            sql += " and t.`water_price`=" + waterPrice +"";
+
+        if ((null != overWaterBegin && !overWaterBegin.equals(""))&&(null != overWaterEnd && !overWaterEnd.equals(""))){
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,2),0) BETWEEN " + overWaterBegin +" AND "+overWaterEnd;
+        }else{
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,2),0)>0";
+        }
+        if ((null != amountReceivableBegin && !amountReceivableBegin.equals(""))&&(null != amountReceivableEnd && !amountReceivableEnd.equals("")))
+            sql +=
+                    "	AND (                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                            "		FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                             "+
+                            "		WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                   "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		ELSE IF((IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                    "+
+                            "		END                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                            "		WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                              "+
+                            "		                                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                            "		*t.water_price,1)                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "	) BETWEEN " + amountReceivableBegin +" AND "+amountReceivableEnd ;
+        if (null != assessmentYhfId && !assessmentYhfId.equals(""))
+            sql += " and t.assessment_yhf_id=" + assessmentYhfId;
+        sql +=  " ORDER BY t.`org_id`,t.`assessment_yearhf` LIMIT ?,?";
+        //log.debug("测试sql"+sql);
+        RowMapper<Object[]> rowMapper = new RowMapper<Object[]>(){
+
+            @Override
+            public Object[] mapRow(ResultSet rs, int index) throws SQLException {
+//				ids.add(rs.getLong("assessment_yhf_id"));
+                Object[] object = new Object[33];
+                object[0] = rs.getLong("assessment_yhf_id");
+                object[1] = rs.getLong("org_id");
+                object[2] = rs.getInt("org_number");
+                object[3] = rs.getString("org_name");
+                object[4] = rs.getString("address");
+                object[5] = rs.getString("year");
+                object[6] = rs.getString("user_type");
+                object[7] = rs.getString("is_plan_user");
+                object[8] = rs.getInt("assessment_yearhf");
+                object[9] = rs.getFloat("water_planning_index");
+                object[10] = rs.getString("is_write_off");
+                object[11] = rs.getDate("write_off_date");
+                object[12] = rs.getString("mode_of_payment");
+                object[13] = rs.getFloat("water_price");
+                object[14] = rs.getFloat("usewater");
+                object[15] = rs.getFloat("over_water");
+                object[16] = rs.getFloat("over_water_percent");
+                object[17] = rs.getFloat("paid_in_amount");
+                object[18] = rs.getFloat("amount_receivable");
+                object[19] = rs.getString("water_type");
+                object[20] = rs.getString("remark");
+                object[21] = rs.getString("reply_of_water");
+                object[22] = rs.getString("invoice_no");
+                object[23] = rs.getString("code");
+                object[24] = rs.getString("postal_address");
+
+                BusOrg org=busOrgService.get(rs.getLong("org_id"));
+                object[25] = org.getBusOrgMeterNumber();
+                object[26] = rs.getString("tax_pay");
+
+                if(rs.getInt("Interval_up")<0)
+                {
+                    object[27] = rs.getFloat("over_water");
+                    object[28] = "0";
+                    object[29] = rs.getFloat("amount_receivable");
+                    object[30] = "";
+                    object[31] = rs.getFloat("amount_receivable");
+                }
+                else
+                {
+                    object[27] = rs.getFloat("Interval_low");
+                    object[28] = rs.getFloat("Interval_up");
+                    object[29] = rs.getFloat("money_up");
+                    object[30] = rs.getFloat("money_low");
+                    object[31] = rs.getFloat("money_up")+rs.getFloat("money_low");
+                }
+                object[32] = rs.getFloat("increase");
+                return object;
+            }
+
+        };
+
+        List<Object[]> list = jdbcTemplate.query(sql, rowMapper,star,pageSize);
+        return list;
+    }
+
+    @Override
+    public List<BusYearhfAssessmentTemp> getYearhfAssessmentForExcel(Integer pageNo, Integer pageSize, Integer orgNumber, Integer customerNumber, Integer meterNumber,
+                                                                     String orgName, String year, String address, String isPlanUser,
+                                                                     String userType, String yearhf, Integer overWaterBegin, Integer overWaterEnd, Integer amountReceivableBegin, Integer amountReceivableEnd, String[] assessmentYhfId, String isWriteOff) {
+        int star = pageSize*(pageNo-1);
+        String sql =
+                "	SELECT 	                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "		t.`assessment_yhf_id`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		bo.`org_id`,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		bo.`org_number`,                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		bo.`org_name`,                                                                                                                                                                                                                                                                                                                                                                                                              "+
+                        "		bo.`address`,                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "		bo.`year`,                                                                                                                                                                                                                                                                                                                                                                                                                  "+
+                        "		bo.`user_type`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                        "		bo.`is_plan_user`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		t.`water_type`,                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                        "		t.assessment_yearhf,                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		t.water_planning_index,                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "		t.`is_write_off`,                                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		t.`write_off_date`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`mode_of_payment`,                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "		t.`water_price`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`paid_in_amount`,                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "		t.`remark`,                                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "		t.`invoice_no`,                                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "		CASE                                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			WHEN t.assessment_yearhf=1 THEN (SELECT (`first_quarter_reply`)*2 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_yearhf=2 THEN (SELECT (`fourth_quarter_reply`)*2 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			ELSE 0 END                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		AS reply_of_water,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "			SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "			FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                          "+
+                        "			WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                "+
+
+                        //"																				   IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0) AS over_water_percent                                                                                                                                                                                                                                   "+
+                        //"																				   IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        //                                                                                                                                                                                                                                                       "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			ELSE IF((IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                 "+
+                        "			END                                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                     "+
+                        "		WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                             "+
+                        "		                                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		*t.water_price,1) AS amount_receivable,                                                                                                                                                                                                                                                                                                                                                                                   "+
+                        "			                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		IFNULL(bsrm.water,0) AS usewater,                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                        "			WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0) AS over_water,                                                                                                                                                                                                                                                                                                                            "+
+                        //"		IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                    "+
+                        //"			WHERE `user_type`='1' AND `section_type`='quarter' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0) AS over_water_percent,bo.`code`, bo.`postal_address`                                                                                                                                                                                                                                                       "+
+                        "	IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        "	      ,bo.code, bo.postal_address "+
+                        //**********************************************************************************************************
+                        ", IFNULL(  ROUND(    IFNULL(      ROUND(        bsrm.water - (          t.water_planning_index * ("+
+                        "         1+             (SELECT               MIN(`section_up_limit`)             FROM              `base_section` bs"+
+                        "           JOIN `base_punishment_section` bps                 ON bs.`punishment_id` = bps.`punishment_id`"+
+                        "          WHERE `user_type` = '1'               AND `section_type` = 'yearhf'               AND `status` = 1) / 100          )        ),        0      ),      0"+
+                        "   ) - t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`) "+
+                        "    FROM        `base_section` bs) / 100    ),    0  ),  0) AS Interval_up,"+
+                        "IFNULL(  ROUND(    t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`)"+
+                        "     FROM        `base_section` bs) / 100    ),    0  ),  0) AS Interval_low,"+
+
+                        "      ROUND(IFNULL(    ROUND( IFNULL(    ROUND(      bsrm.water - (        t.water_planning_index * ("+
+                        "     1+           (SELECT             MIN(`section_up_limit`)           FROM            `base_section` bs"+
+                        "      JOIN `base_punishment_section` bps               ON bs.`punishment_id` = bps.`punishment_id` "+
+                        "      WHERE `user_type` = '1'             AND `section_type` = 'yearhf'             AND `status` = 1) / 100        )      ),      0    ),    0  ) -"+
+                        "      t.water_planning_index *( (SELECT            MAX(`section_up_limit`) - MIN(`section_up_limit`)           FROM            `base_section` bs ) / 100) ,      0"+
+                        "      ),    0  )  * t.water_price,1  )    AS money_up,"+
+
+
+
+                        "IFNULL(  ROUND(    t.water_planning_index * (      (SELECT         MAX(`section_up_limit`) - MIN(`section_up_limit`)"+
+                        "   FROM        `base_section` bs) / 100    ) * t.water_price * 0.5,    1  ),  0) AS money_low  ,t.reply_of_water as increase "+
+                        //**********************************************************************************************************
+                        "	FROM bus_yearhf_assessment t                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.`import_status`='normal'                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "			JOIN                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "			(                                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "				SELECT SUM(water) AS water,                                                                                                                                                                                                                                                                                                                                                 "+
+                        "					 `yearhf` AS X,                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "					 org_id                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "				FROM bus_meter_read_info                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "				WHERE YEAR='" + year + "' and org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "				GROUP BY X,org_id                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_yearhf                                                                                                                                                                                                                                                                                                                                                            ";
+        if (orgNumber != null&&!orgNumber.equals(""))
+            sql += " and bo.org_number=" + orgNumber;
+        if (orgName != null&&!orgName.equals(""))
+            sql += " and bo.org_name='" + orgName + "'";
+        if (year != null && !year.equals(""))
+            sql += " and bo.`year`='" + year + "'";
+        if (address != null && !address.equals(""))
+            sql += " and bo.address='" + address + "'";
+        if (isPlanUser != null && !isPlanUser.equals(""))
+            sql += " and bo.is_plan_user='" + isPlanUser + "'";
+        if (userType != null && !userType.equals(""))
+            sql += " and bo.user_type='" + userType + "'";
+        if (null != customerNumber && !customerNumber.equals(""))
+            sql += " and bcm.customer_Number=" +customerNumber;
+        if (null != meterNumber && !meterNumber.equals(""))
+            //sql += " and bcm.meter_Number=" + meterNumber;
+            sql += " and bo.org_id in(select org_id from bus_customer_meter  where meter_Number='"+meterNumber+"')";
+        if (null != yearhf && !yearhf.equals(""))
+            sql += " and t.assessment_yearhf in (" + yearhf +")";
+        if (null != isWriteOff && !isWriteOff.equals(""))
+            sql += " and t.`is_write_off`='" + isWriteOff +"'";
+        if ((null != overWaterBegin && !overWaterBegin.equals(""))&&(null != overWaterEnd && !overWaterEnd.equals(""))){
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,2),0) BETWEEN " + overWaterBegin +" AND "+overWaterEnd;
+        }else{
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,2),0)>0";
+        }
+
+        String paramIds = "";
+        if (null != assessmentYhfId && !assessmentYhfId.equals("")) {
+            for (int i = 0; i < assessmentYhfId.length; i++) {
+                if(i==0){
+                    paramIds += assessmentYhfId[i];
+                }else{
+                    paramIds += "," + assessmentYhfId[i];
+                }
+            }
+            sql += " and t.assessment_yhf_id IN ("+paramIds+")";
+        }
+
+        if ((null != amountReceivableBegin && !amountReceivableBegin.equals(""))&&(null != amountReceivableEnd && !amountReceivableEnd.equals("")))
+            sql +=
+                    "	AND (                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                            "		FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                             "+
+                            "		WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                   "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		ELSE IF((IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                    "+
+                            "		END                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                            "		WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                              "+
+                            "		                                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                            "		*t.water_price,1)                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "	) BETWEEN " + amountReceivableBegin +" AND "+amountReceivableEnd ;
+        sql +=  " ORDER BY t.`org_id`,t.`assessment_yearhf` LIMIT ?,?";
+        RowMapper<BusYearhfAssessmentTemp> rowMapper = new RowMapper<BusYearhfAssessmentTemp>(){
+
+            @Override
+            public BusYearhfAssessmentTemp mapRow(ResultSet rs, int index) throws SQLException {
+                BusYearhfAssessmentTemp bqat = new BusYearhfAssessmentTemp();
+                bqat.setOrgNumber(rs.getString("org_number"));
+                bqat.setOrgName(rs.getString("org_name"));
+                bqat.setAddress(rs.getString("address"));
+                bqat.setYear(rs.getString("year"));
+                if("1".equals(rs.getString("user_type"))){
+                    bqat.setUserType("自来水户");
+                }else{
+                    bqat.setUserType("取水户");
+                }
+                if("yes".equals(rs.getString("is_plan_user"))){
+                    bqat.setIsPlanUser("是");
+                }else{
+                    bqat.setIsPlanUser("否");
+                }
+                bqat.setAssessmentYearhf(rs.getInt("assessment_yearhf"));
+                bqat.setWaterPlanningIndex(rs.getString("water_planning_index"));
+                if("yes".equals(rs.getString("is_write_off"))){
+                    bqat.setIsWriteOff("是");
+                }else{
+                    bqat.setIsWriteOff("否");
+                }
+                bqat.setWriteOffDate(rs.getDate("write_off_date"));
+                if("1".equals(rs.getString("mode_of_payment"))){
+                    bqat.setModeOfPayment("现金");
+                }else if("2".equals(rs.getString("mode_of_payment"))){
+                    bqat.setModeOfPayment("转账");
+                }else{
+                    bqat.setModeOfPayment("");
+                }
+                DecimalFormat df = new DecimalFormat("#.0");
+                bqat.setWaterPrice(rs.getFloat("water_price"));
+                bqat.setActualUseWater(rs.getString("usewater"));
+                bqat.setActualClosingWater(rs.getString("over_water"));
+                bqat.setPaidInAmount(Float.parseFloat(df.format(rs.getFloat("paid_in_amount"))));
+                bqat.setAmountReceivable(rs.getString("amount_receivable"));
+                bqat.setWaterType(rs.getString("water_type"));
+                bqat.setRemark(rs.getString("remark"));
+                bqat.setReplyOfWater(rs.getString("reply_of_water"));
+                bqat.setOverWaterPercent(rs.getString("over_water_percent")+'%');
+                bqat.setpost(rs.getString("code"));
+                bqat.setpostAddress(rs.getString("postal_address"));
+                BusOrg org=busOrgService.get(rs.getLong("org_id"));
+                bqat.setmeterNumber(org.getBusOrgMeterNumber());
+
+                if(rs.getInt("Interval_up")<0)
+                {
+                    bqat.setIntervallow(rs.getFloat("over_water"));
+                    bqat.setIntervalup(Float.parseFloat("0"));
+                    bqat.setMoneyup(rs.getFloat("amount_receivable"));
+                    bqat.setMoneylow(Float.parseFloat("0"));
+                    bqat.setMoneyall(rs.getFloat("amount_receivable"));
+
+                }
+                else
+                {
+                    bqat.setIntervallow(rs.getFloat("Interval_low"));
+                    bqat.setIntervalup(rs.getFloat("Interval_up"));
+                    bqat.setMoneyup(Float.parseFloat(df.format(rs.getFloat("money_low"))));
+                    bqat.setMoneylow(Float.parseFloat(df.format(rs.getFloat("money_up"))));
+                    bqat.setMoneyall(Float.parseFloat(df.format(rs.getFloat("money_up")+rs.getFloat("money_low"))));
+                }
+                bqat.setReplyOfIncrease(rs.getFloat("increase"));
+                return bqat;
+            }
+
+        };
+
+        List<BusYearhfAssessmentTemp> list = jdbcTemplate.query(sql, rowMapper,star,pageSize);
+        return list;
+    }
+
+    @Override
+    public List<Object[]> getYearhfOverWater(Long orgId, Integer yearhf,String year) {
+        String sql =
+                "	SELECT IFNULL(SUM(bmri.`water`),0) AS over_water FROM `bus_meter_read_info` bmri                        "+
+                        "	WHERE bmri.`org_id`=? AND bmri.`yearhf`=? AND bmri.`year`=?              					";
+
+        RowMapper<Object[]> rowMapper = new RowMapper<Object[]>(){
+
+            @Override
+            public Object[] mapRow(ResultSet rs, int index) throws SQLException {
+                Object[] object = new Object[1];
+                object[0] = rs.getString("over_water");
+                return object;
+            }
+
+        };
+        List<Object[]> list = jdbcTemplate.query(sql, rowMapper, orgId, yearhf, year);
+        return list;
+    }
+
+    @Override
+    public int getTotalRows(int pageSize,Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                            String orgName, String year, String address, String isPlanUser,
+                            String userType,String yearhf,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,String isWriteOff,Float waterPrice) {
+        String sql =
+                "	SELECT 	COUNT(*)                                                                                    "+
+                        "	              FROM bus_yearhf_assessment t                                                       "+
+                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.`import_status`='normal'                       "+
+                        "			JOIN                                                                                            "+
+                        "			(                                                                                               "+
+                        "				SELECT SUM(water) AS water,                                                                  "+
+                        "					 `yearhf` AS X,                                                                         "+
+                        "					 org_id                                                                                  "+
+                        "				FROM bus_meter_read_info                                                                      "+
+                        "				WHERE  YEAR='" + year + "' AND org_id IS NOT NULL                                                                      "+
+                        "				GROUP BY X,org_id                                                                             "+
+                        "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_yearhf                                  "+
+                        "	WHERE 1=1                           																	" ;
+        if (orgNumber != null&&!orgNumber.equals(""))
+            sql += " and bo.org_number=" + orgNumber;
+        if (orgName != null&&!orgName.equals(""))
+            sql += " and bo.org_name  like '%" + orgName + "%'";
+        if (year != null && !year.equals(""))
+            sql += " and bo.`year`='" + year + "'";
+        if (address != null && !address.equals(""))
+            sql += " and bo.address='" + address + "'";
+        if (isPlanUser != null && !isPlanUser.equals(""))
+            sql += " and bo.is_plan_user='" + isPlanUser + "'";
+        if (userType != null && !userType.equals(""))
+            sql += " and bo.user_type='" + userType + "'";
+        if (null != customerNumber && !customerNumber.equals(""))
+            sql += " and bcm.customer_Number=" +customerNumber;
+        if (null != meterNumber && !meterNumber.equals(""))
+            //sql += " and bcm.meter_Number=" + meterNumber;
+            sql += " and bo.org_id in(select org_id from bus_customer_meter  where meter_Number='"+meterNumber+"')";
+        if (null != yearhf && !yearhf.equals(""))
+            sql += " and t.assessment_yearhf in (" + yearhf +")";
+        if (null != isWriteOff && !isWriteOff.equals(""))
+            sql += " and t.`is_write_off`='" + isWriteOff +"'";
+        if (null != waterPrice && !waterPrice.equals(""))
+            sql += " and t.`water_price`=" + waterPrice +"";
+
+        if ((null != overWaterBegin && !overWaterBegin.equals(""))&&(null != overWaterEnd && !overWaterEnd.equals(""))){
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,2),0) BETWEEN " + overWaterBegin +" AND "+overWaterEnd;
+        }else{
+            sql += " and IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,2),0)>0";
+        }
+        if ((null != amountReceivableBegin && !amountReceivableBegin.equals(""))&&(null != amountReceivableEnd && !amountReceivableEnd.equals("")))
+            sql +=
+                    "	AND (                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                            "		FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                             "+
+                            "		WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                   "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                                 "+
+                            "		WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0))                                                 "+
+                            "		AND (IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                                 "+
+                            "		ELSE IF((IFNULL(ROUND(((bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id` WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)))/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                    "+
+                            "		END                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                     "+
+                            "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                            "		WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                              "+
+                            "		                                                                                                                                                                                                                                                                                                                                                                                                                             "+
+                            "		*t.water_price,1)                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                            "	) BETWEEN " + amountReceivableBegin +" AND "+amountReceivableEnd ;
+        return jdbcTemplate.queryForInt(sql);
+    }
+
+
+
+    @Override
+    public List<BusYearhfAssessment> getYearhfAssessmentList(String orgNumber,Integer year) {
+
+        String sql =
+                "	SELECT 	                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "		t.`assessment_yhf_id`,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		bo.`org_id`,                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		bo.`org_number`,                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		bo.`org_name`,                                                                                                                                                                                                                                                                                                                                                                                                              "+
+                        "		t.assessment_yearhf,                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		CASE                                                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			WHEN t.assessment_yearhf=1 THEN (SELECT (`first_quarter_reply`)*2 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                               "+
+                        "			WHEN t.assessment_yearhf=2 THEN (SELECT (`fourth_quarter_reply`*2 FROM `bus_annual_plan_for_water` WHERE `org_id`=bo.`org_id`)                                                                                                                                                                                                                                                                                              "+
+                        "			ELSE 0 END                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "		AS reply_of_water,                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		ROUND(((                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "			SELECT bs.fine_proportion                                                                                                                                                                                                                                                                                                                                                                                                 "+
+                        "			FROM base_punishment_section bps LEFT JOIN base_section bs ON bps.punishment_id=bs.punishment_id                                                                                                                                                                                                                                                                                                                          "+
+                        "			WHERE CASE                                                                                                                                                                                                                                                                                                                                                                                                                "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=1 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=1 AND bs.contain_lower=0 AND bs.section_up_limit<=(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                             "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=1 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <=bs.section_lower_limit THEN bs.fine_proportion                                                              "+
+                        "			WHEN  bs.contain_up=0 AND bs.contain_lower=0 AND bs.section_up_limit<(IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0))                                              "+
+                        "			AND (IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_lower_limit  THEN bs.fine_proportion                                                              "+
+                        "			ELSE IF((IFNULL(ROUND(((bsrm.water-t.water_planning_index)/t.water_planning_index)*100 ,2),0)) <bs.section_up_limit,0,bs.section_lower_limit=0) AND bps.user_type=1 AND bps.`status`='1'                 "+
+                        "			END                                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                        "		)/100)	                                                                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "		*IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                     "+
+                        "		WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0)                                                                                                                                                                                                                                                                                                                                             "+
+                        "		                                                                                                                                                                                                                                                                                                                                                                                                                            "+
+                        "		*t.water_price,1) AS amount_receivable,                                                                                                                                                                                                                                                                                                                                                                                   "+
+                        "			                                                                                                                                                                                                                                                                                                                                                                                                                          "+
+                        "		IFNULL(bsrm.water,0) AS usewater,                                                                                                                                                                                                                                                                                                                                                                                           "+
+                        "		IFNULL(ROUND(bsrm.water-(t.water_planning_index*(1+(SELECT MIN(`section_up_limit`) FROM `base_section` bs JOIN `base_punishment_section` bps ON bs.`punishment_id`=bps.`punishment_id`                                                                                                                                                                                                                                      "+
+                        "			WHERE `user_type`='1' AND `section_type`='yearhf' AND `status`=1)/100)) ,0),0) AS over_water,                                                                                                                                                                                                                                                                                                                            "+
+                        "	IFNULL(ROUND((bsrm.water-t.water_planning_index)/t.water_planning_index *100 ,2),0) AS over_water_percent	"+
+                        "	      ,bo.code, bo.postal_address FROM bus_yearhf_assessment t                                                                                                                                                                                                                                                                                                                                                                                        "+
+                        "			JOIN bus_org bo ON t.org_id=bo.org_id AND bo.`import_status`='normal'                                                                                                                                                                                                                                                                                                                                                                                     "+
+                        "			JOIN                                                                                                                                                                                                                                                                                                                                                                                                                      "+
+                        "			(                                                                                                                                                                                                                                                                                                                                                                                                                         "+
+                        "				SELECT SUM(water) AS water,                                                                                                                                                                                                                                                                                                                                                 "+
+                        "					 `yearhf` AS X,                                                                                                                                                                                                                                                                                                                                                                    "+
+                        "					 org_id                                                                                                                                                                                                                                                                                                                                                                                                               "+
+                        "				FROM bus_meter_read_info                                                                                                                                                                                                                                                                                                                                                                                                ";
+        if (year != null && !year.equals(""))
+        {
+            sql +="				WHERE YEAR='" + year + "' and org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                ";
+        }
+        else
+        {
+            sql +="				WHERE org_id IS NOT NULL                                                                                                                                                                                                                                                                                                                                                                                                ";
+        }
+        sql +="				GROUP BY X,org_id                                                                                                                                                                                                                                                                                                                                                                                                       "+
+                "			) bsrm ON bsrm.org_id=t.org_id AND bsrm.X=t.assessment_yearhf                                                                                                                                                                                                                                                                                                                                                         ";
+        if (orgNumber != null&&!orgNumber.equals(""))
+            sql += " and bo.org_number=" + orgNumber;
+
+        if (year != null && !year.equals(""))
+            sql += " and bo.`year`='" + year + "'";
+
+
+
+        sql +=  " ORDER BY t.`org_id`,t.`assessment_yearhf` ";
+
+//		RowMapper<Object[]> rowMapper2 = new RowMapper<Object[]>(){
+//
+//			@Override
+//			public Object[] mapRow(ResultSet rs, int index) throws SQLException {
+//
+//				Object[] object = new Object[9];
+//				object[0] = rs.getLong("assessment_id");
+//				object[1] = rs.getLong("org_id");
+//				object[2] = rs.getInt("org_number");
+//				object[3] = rs.getString("org_name");
+//				object[4] = rs.getInt("assessment_quarter");
+//				object[5] = rs.getFloat("usewater");
+//				object[6] = rs.getFloat("over_water");
+//				object[7] = rs.getFloat("amount_receivable");
+//				object[8] = rs.getString("reply_of_water");
+//
+//				return object;
+//			}
+//
+//		};
+//
+//		List<Object[]> list = jdbcTemplate.query(sql, rowMapper2);
+//		return list;
+//
+
+
+        RowMapper<BusYearhfAssessment> rowMapper = new RowMapper<BusYearhfAssessment>(){
+
+            @Override
+            public BusYearhfAssessment mapRow(ResultSet rs, int index) throws SQLException {
+                BusYearhfAssessment tmp = new BusYearhfAssessment();
+                tmp.setAssessmentYhfId(rs.getLong("assessment_yhf_id"));
+                tmp.setAssessmentYearhf(rs.getInt("assessment_yearhf"));
+                tmp.setActualUseWater(rs.getFloat("usewater"));
+                tmp.setReplyOfWater(rs.getFloat("over_water"));
+                tmp.setBankAccount(getFloatRound(rs.getFloat("amount_receivable")));
+                tmp.setBank(rs.getString("reply_of_water"));
+                return tmp;
+            }
+
+        };
+
+        List<BusYearhfAssessment> list = jdbcTemplate.query(sql, rowMapper);
+        return list;
+
+    }
+    public static String getFloatRound(float sourceData)
+    {
+        double f1 = Math.round(sourceData * 100) * 0.01;       //还原小数点后 a 位
+        return String.valueOf(f1);
+    }
+
+    @Override
+    public Page getAnnualPlanSelectedData(int pageNo, int pageSize, String orgName, String year) {
+        String hql = "select bapfw from BusAnnualPlanForWater bapfw left join bapfw.org bo where bo.importStatus='normal' AND bo.year='"+year+"' AND bapfw.isCancel='yes'";
+        if (null != orgName && !orgName.equals("")) {
+            hql += " and bo.orgName = '" + orgName + "'";
+        }
+        return dao.getPageByHql(hql, pageNo, pageSize);
+    }
+}

+ 19 - 6
src/java/com/bus/web/BusInitController.java

@@ -24,6 +24,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.base.service.IBaseOrgTypeService;
+import com.bus.model.*;
 import jxl.Workbook;
 import jxl.format.Alignment;
 import jxl.write.Label;
@@ -51,12 +52,6 @@ import com.base.model.BaseSection;
 import com.base.model.BaseStatus;
 import com.base.model.enumType.UserType;
 import com.base.service.IBaseStatusService;
-import com.bus.model.BusAnnualPlanForWater;
-import com.bus.model.BusCustomerMeter;
-import com.bus.model.BusMeterReadInfo;
-import com.bus.model.BusOrg;
-import com.bus.model.BusQuarterlyAssessment;
-import com.bus.model.BusWaterAdjRec;
 import com.bus.model.temp.BusOrgTemp;
 import com.bus.model.temp.BusPlanTempRowMap;
 import com.bus.model.temp.OrgTemp;
@@ -337,6 +332,12 @@ private void doDataInit(int orgNumber,Long orgId, Date startTime, Date endTime)
 	// 计划水量加上5%
 	int planWater = (int) Math.round((1+(GR)/100) * w);
 	int fs =Math.round(Float.valueOf(planWater) / 4);
+
+	//月计划用水指标
+	int ms = Math.round(Float.valueOf(planWater) / 12);
+
+	//半年计划用水指标
+	int hys = Math.round(Float.valueOf(planWater) / 2);
     
 	//初值化年度计划表
 	BusAnnualPlanForWater busAnnualPlanForWater = busAnnualPlanForWaterService.get(orgId);
@@ -374,9 +375,21 @@ private void doDataInit(int orgNumber,Long orgId, Date startTime, Date endTime)
 
 		//月考核初值化
 		for(int i=1;i<13;i++) {
+			BusMonthAssessment bma = new BusMonthAssessment();
+			bma.setAssessmentMonth(i);
+			bma.setWaterPlanningIndex((float)ms);
+			bma.setOrg(borg);
+			bma.setBank(borg.getBank());
+			bma.setBankAccount(borg.getBankAccount());
 		}
 		//半年考核初值化
 		for(int i=1;i<3;i++) {
+			BusYearhfAssessment bya = new BusYearhfAssessment();
+			bya.setAssessmentYearhf(i);
+			bya.setWaterPlanningIndex((float)hys);
+			bya.setOrg(borg);
+			bya.setBank(borg.getBank());
+			bya.setBankAccount(borg.getBankAccount());
 		}
 		//年考核初值化
 

+ 657 - 0
src/java/com/bus/web/BusMonthAssessmentController.java

@@ -0,0 +1,657 @@
+package com.bus.web;
+
+import com.base.model.enumType.UserType;
+import com.bus.model.BusMonthAssessment;
+import com.bus.model.BusOrg;
+import com.bus.model.temp.*;
+import com.bus.service.IBusMonthAssessmentService;
+import com.bus.service.IBusOrgService;
+import com.bus.service.IBusQuarterlyAssessmentService;
+import com.core.dao.util.Updater;
+import com.core.util.ExcelUtils;
+import com.core.util.JsonUtil;
+import com.core.util.file.DownloadHelper;
+import com.core.web.BaseController;
+import jxl.write.WriteException;
+import jxl.write.biff.RowsExceededException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Controller
+@RequestMapping({"/monthAssessment/"})
+public class BusMonthAssessmentController extends BaseController {
+    @Autowired
+    private IBusMonthAssessmentService busMonthAssessmentService;
+
+    @Autowired
+    private IBusQuarterlyAssessmentService busQuarterlyAssessmentService;
+
+    @Autowired
+    private IBusOrgService busOrgService;
+
+    /**
+     * 月考核用水列表
+     * @param model
+     * @return
+     */
+    @RequestMapping("list.do")
+    public String list(ModelMap model){
+        String year = getCurrentYear();
+        Map<String,List<Map<String,String>>> map = new HashMap<String,List<Map<String,String>>>();
+        List<Map<String, String>> m = UserType.getList();
+        map.put("list", m);
+        model.addAttribute("year", year);
+        model.addAttribute("userType",JsonUtil.getJSONSerializer().deepSerialize(map));
+        return "bus/month-assessment-list";
+    }
+
+    /**
+     * 得到年份
+     *
+     * @return
+     */
+    private String getCurrentYear() {
+        String year = busOrgService.getMatYearFromBusOrg();
+        return year;
+    }
+
+    @RequestMapping("listPage.do")
+    @ResponseBody
+    public String listPage(int pageNo, int pageSize, Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                           String orgName, String year, String address, String isPlanUser,
+                           String userType,String month,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,
+                           String isWriteOff,Float waterPrice,HttpServletRequest request) {
+        List<Object[]> list = busMonthAssessmentService.getMonthAssessmentListPage
+                (pageNo, pageSize, orgNumber, customerNumber, meterNumber, orgName.trim(), year, address, isPlanUser,
+                        userType, month, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,null,isWriteOff,waterPrice);
+        int totalRows = busMonthAssessmentService.getTotalRows
+                (pageSize,orgNumber, customerNumber, meterNumber, orgName.trim(), year, address, isPlanUser, userType, month,
+                        overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,isWriteOff,waterPrice);
+        Map<String, Object> map = new Hashtable<String,Object>();
+        map.put("rows", list);
+        map.put("pager.pageNo", pageNo);
+        map.put("pager.totalRows", totalRows);
+        String jsonStr = JsonUtil.getJSONSerializer().deepSerialize(map);
+        return jsonStr;
+    }
+
+    /**
+     * 打开新增页面
+     * @return
+     */
+    @RequestMapping("create.do")
+    public String create(String year,ModelMap model){
+        model.put("year", year);
+        return "bus/month-assessment-create";
+    }
+
+    /**
+     * 添加
+     * @return
+     */
+    @RequestMapping("createData.do")
+    @ResponseBody
+    public Object createData(BusMonthAssessment entity, Long orgId){
+        BusOrg org = busOrgService.get(orgId);
+        entity.setOrg(org);
+        entity.setIsWriteOff("no");
+        busMonthAssessmentService.save(entity);
+        return addJsonSuccessMsg("添加成功!");
+    }
+
+    /**
+     * 打开编辑页面
+     * @param model
+     * @return
+     */
+    @RequestMapping("update.do")
+    public String update(Long entity_id,ModelMap model){
+        BusMonthAssessment entity = busMonthAssessmentService.get(entity_id);
+        BusOrg org = entity.getOrg();
+        List<Object[]> list = busMonthAssessmentService.getMonthAssessmentListPage
+                (1, 1, null, null, null, null, null, null, null, null, null, null, null, null, null, entity_id,null,null);
+        Object[] obj = list.get(0);
+        model.addAttribute("assessmentMonId",entity_id);
+        model.addAttribute("assessmentMonth", obj[8]);
+        model.addAttribute("waterPrice", obj[13]);
+        model.addAttribute("waterPlanningIndex", obj[9]);
+        model.addAttribute("usewater", String.format("%.0f", obj[14]));
+        model.addAttribute("overWater", String.format("%.0f",obj[15]));
+        model.addAttribute("overWaterPercent", String.format("%.2f",obj[16]));
+        model.addAttribute("isWriteOff", obj[10]);
+        model.addAttribute("writeOffDate", obj[11]);
+        model.addAttribute("writeType", obj[19]);
+        model.addAttribute("remark", obj[20]);
+        model.addAttribute("replyOfWater", obj[21]);
+        model.addAttribute("taxpay", obj[26]);
+        model.addAttribute("org", org);
+        model.addAttribute("busMonthAssessment", entity);
+        return "bus/month-assessment-edit";
+    }
+
+    /**
+     * 更新
+     * @return
+     * @throws ParseException
+     */
+    @RequestMapping("updateData.do")
+    @ResponseBody
+    public Object updateData(BusMonthAssessment entity,Long orgId,String date) throws ParseException{
+        BusOrg org  = busOrgService.get(orgId);
+        entity.setOrg(org);
+        if(!"".equals(date)&&date!=null){
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date d = sdf.parse(date);
+            entity.setWriteOffDate(d);
+        }
+        Updater<BusMonthAssessment> updater = new Updater<BusMonthAssessment>(entity);
+        busMonthAssessmentService.updateByUpdater(updater);
+        return addJsonSuccessMsg("更新成功!");
+    }
+
+    /**
+     * 删除文件
+     * @param ids
+     * @return
+     */
+    @RequestMapping("delete.do")
+    @ResponseBody
+    public Object delete(Long[] ids){
+        busMonthAssessmentService.removeByIds(ids);
+        return addJsonSuccessMsg("删除成功");
+    }
+
+    /**
+     * 打开年度计划选择页面
+     * @return
+     */
+    @RequestMapping("annualPlanSelectedPage.do")
+    public String annualPlanSelectedPage(String year,ModelMap model){
+        model.put("year", year);
+        return "bus/annual_plan_select";
+    }
+
+    /**
+     * 载入年度计划数据
+     * @return
+     */
+    @RequestMapping("annualPlanSelectedData.do")
+    @ResponseBody
+    public String annualPlanSelectedData(int pageNo, int pageSize,String orgName,String year){
+        this.page = busMonthAssessmentService.getAnnualPlanSelectedData(pageNo, pageSize, orgName,year);
+        String result = this.getPageJosnResult();
+        return result;
+    }
+
+    /**
+     * 月超用水汇总页面
+     * @param model
+     * @return
+     */
+    @RequestMapping("monthOverwaterChargeCollect.do")
+    public String monthOverwaterChargeCollect(ModelMap model){
+        String year = getCurrentYear();
+        Map<String,List<Map<String,String>>> map = new HashMap<String,List<Map<String,String>>>();
+        List<Map<String, String>> m = UserType.getList();
+        map.put("list", m);
+        model.addAttribute("year", year);
+        model.addAttribute("userType",JsonUtil.getJSONSerializer().deepSerialize(map));
+        return "bus/month-overwater-charge-collect";
+    }
+
+    /**
+     * 月考核销帐页面
+     * @param model
+     * @return
+     */
+    @RequestMapping("monthAssessmentWriteOff.do")
+    public String monthAssessmentWriteOff(Long entity_id,ModelMap model){
+        BusMonthAssessment entity = busMonthAssessmentService.get(entity_id);
+        BusOrg org = entity.getOrg();
+        List<Object[]> list = busMonthAssessmentService.getMonthAssessmentListPage
+                (1, 1, null, null, null, null, null, null, null, null, null, null, null, null, null, entity_id,null,null);
+        Object[] obj = list.get(0);
+        model.addAttribute("assessmentMonId",entity_id);
+        model.addAttribute("assessmentMonth", obj[8]);
+        model.addAttribute("amountReceivable", String.format("%.2f", obj[18]));
+        model.addAttribute("isWriteOff", obj[10]);
+        model.addAttribute("writeOffDate", obj[11]);
+        model.addAttribute("writeType", obj[19]);
+        model.addAttribute("modeOfPayment", obj[12]);
+        model.addAttribute("paidInAmount", obj[17]);
+        model.addAttribute("invoiceNo", obj[22]);
+        model.addAttribute("remark", obj[20]);
+        model.addAttribute("org", org);
+        model.addAttribute("busMonthAssessment", entity);
+        return "bus/month-assessment-write-off";
+    }
+
+    /**
+     * 导出excel
+     * @param pageNo
+     * @param pageSize
+     * @param orgNumber
+     * @param customerNumber
+     * @param meterNumber
+     * @param orgName
+     * @param year
+     * @param address
+     * @param isPlanUser
+     * @param userType
+     * @param overWaterBegin
+     * @param overWaterEnd
+     * @param amountReceivableBegin
+     * @param amountReceivableEnd
+     * @param flag
+     * @param ids
+     * @param request
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(value = "exportExcel.do", method = RequestMethod.GET)
+    @ResponseBody
+    public Object exportExcel(Integer pageNo, Integer pageSize, Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                              String orgName, String year, String address, String isPlanUser,
+                              String userType,String month,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,
+                              String flag,String ids,String exportType,String isWriteOff,HttpServletRequest request) throws UnsupportedEncodingException {
+        if(orgName!=null&&orgName!=""){
+            orgName = URLDecoder.decode(orgName,"utf-8");
+        }
+        if(address!=null&&address!=""){
+            address = URLDecoder.decode(address,"utf-8");
+        }
+        List<BusMonthAssessmentTemp> list=null;
+        if(flag!=null&&flag.equals("selected")){
+            String[] assessmentId=ids.split(",");
+            list = busMonthAssessmentService.getMonthAssessmentForExcel(pageNo, pageSize, orgNumber, customerNumber,
+                    meterNumber, orgName, year, address, isPlanUser, userType, month, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,assessmentId,isWriteOff);
+
+        }else
+        if(flag!=null&&flag.equals("query")){
+            list = busMonthAssessmentService.getMonthAssessmentForExcel(pageNo, pageSize, orgNumber, customerNumber,
+                    meterNumber, orgName, year, address, isPlanUser, userType, month, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,null,isWriteOff);
+        }
+//		list= (List<BusCustomerMeter>) this.page.getResult();
+
+        String fileName="";
+        if("list".equals(exportType)){
+            fileName = "单位月考核用水.xls";
+        }else if("writeOff".equals(exportType)){
+            fileName = "月超用水费用汇总.xls";
+        }
+        String agent=request.getHeader("user-agent");
+        if(agent!=null&&!agent.contains("Firefox")){
+            //不是火狐浏览器,则URL编码
+            fileName=URLEncoder.encode(fileName,"UTF-8");
+        }
+
+        try {
+            if("list".equals(exportType)){
+                String[] titles = new String[]{ "单位编号","单位名称","邮寄地址","单位地址","邮编","水表号","年份",
+                        "用户类型","考核月份","计划用水量","实际用水量","实际收水量","应收金额","实收金额","是否销帐","销帐日期","付款方式","水价","超10-30%的水量","超30%以上的水量","超10-30%的金额","超30%以上的金额","总金额","超用率","用水计划旧指标"};
+                int columnLength[] = {20,50,10,10,20,50,10,10,15,15,15,15,10,10,10,20,10,10,20,20,20,20,20,20,20};
+                String fileds[]=new String[]{"orgNumber","orgName","postAddress","Address","post","meterNumber","year",
+                        "userType","assessmentMonth","waterPlanningIndex","actualUseWater","actualClosingWater",
+                        "amountReceivable","paidInAmount","isWriteOff","writeOffDate","modeOfPayment","waterPrice","Intervallow","Intervalup","Moneyup","Moneylow","Moneyall","overWaterPercent","replyOfIncrease"};
+                ExcelUtils.writeExcel(fileName, list, titles, columnLength, fileds);
+            }else if("writeOff".equals(exportType)){
+                String[] titles = new String[]{
+                        "单位名称","用户类型","月份","批复用水指标","实际用水量","实际收水量","应收金额","实收金额","是否销帐","销帐日期","付款方式","用水单价","备注","超10-30%的水量","超30%以上的水量","超10-30%的金额","超30%以上的金额","总金额","超用率"};
+                int columnLength[] = {20,10,10,15,15,15,10,10,10,10,10,10,30,20,20,20,20,20,20};
+                String fileds[]=new String[]{"orgName","userType","assessmentMonth","replyOfWater","actualUseWater","actualClosingWater",
+                        "amountReceivable","paidInAmount","isWriteOff","writeOffDate","modeOfPayment","waterPrice","remark","Intervallow","Intervalup","Moneyup","Moneylow","Moneyall","overWaterPercent"};
+                ExcelUtils.writeExcel(fileName, list, titles, columnLength, fileds);
+            }
+        } catch (RowsExceededException e) {
+            e.printStackTrace();
+        } catch (WriteException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        DownloadHelper downloadHelper = new DownloadHelper();
+        downloadHelper.setFile(new File(fileName));
+        return downloadHelper;
+    }
+
+    /**
+     * 打印
+     * @param model
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping("print.do")
+    public String print(Integer pageNo, Integer pageSize, Integer orgNumber, Integer customerNumber, Integer meterNumber,
+                        String orgName, String year, String address, String isPlanUser,
+                        String userType, String month, Integer overWaterBegin, Integer overWaterEnd, Integer amountReceivableBegin, Integer amountReceivableEnd,
+                        String flag, String ids, String exportType, String isWriteOff, Model model, HttpServletRequest request) throws UnsupportedEncodingException {
+        if(orgName!=null&&orgName!=""){
+            orgName = URLDecoder.decode(orgName,"utf-8");
+        }
+        if(address!=null&&address!=""){
+            address = URLDecoder.decode(address,"utf-8");
+        }
+        List<BusMonthAssessmentTemp> list=null;
+        if(flag!=null&&flag.equals("selected")){
+            String[] assessmentId=ids.split(",");
+            list = busMonthAssessmentService.getMonthAssessmentForExcel(pageNo, pageSize, orgNumber, customerNumber,
+                    meterNumber, orgName, year, address, isPlanUser, userType, month, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,assessmentId,isWriteOff);
+
+        }else
+        if(flag!=null&&flag.equals("query")){
+            list = busMonthAssessmentService.getMonthAssessmentForExcel(pageNo, pageSize, orgNumber, customerNumber,
+                    meterNumber, orgName, year, address, isPlanUser, userType, month, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,null,isWriteOff);
+        }
+        model.addAttribute("list", list);
+        String view = "";
+        if("list".equals(exportType)){
+            view = "bus/month-assessment-view";
+        }else if("writeOff".equals(exportType)){
+            view = "bus/month-overwater-charge-collect-view";
+        }
+        return view;
+    }
+
+    /**
+     * 打印前,打开新增打印日期页面
+     * @param ids	考核月份id
+     * @param orgIds	单位id
+     * @param year	年份
+     * @param userType	用户类型
+     * @param month	月份
+     * @param orgName	单位名称
+     * @param isWriteOff	是否销账:yes:是,no:否
+     * @param flag	是选中打印还是查询打印:seleted:选中打印,query:查询打印,打印查询出来的记录
+     * @param model
+     * @return
+     */
+    @RequestMapping("addPrintTime.do")
+    public String addPrintTime(String ids,String orgIds,String year,String userType,String month,String orgName,String isWriteOff,String flag,ModelMap model){
+
+        model.addAttribute("ids", ids);
+        model.addAttribute("orgIds", orgIds);
+        model.addAttribute("year", year);
+        model.addAttribute("userType", userType);
+        model.addAttribute("month", month);
+        model.addAttribute("isWriteOff", isWriteOff);
+        if("query".equals(flag)){
+            try {
+                if(orgName!=null&&!orgName.trim().equals(""))
+                    orgName = new String(orgName.getBytes("ISO8859-1"),"UTF-8");
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+        model.addAttribute("orgName", orgName);
+        model.addAttribute("flag", flag);
+        return "bus/month-overwater-print-time-add";
+    }
+
+//    /**
+//     * 打印超计划用水加价水费的通知
+//     * @param ids	季度id
+//     * @param orgIds	单位id
+//     * @param year	年份
+//     * @param payTime	缴费日期
+//     * @param userType	用户类型
+//     * @param quarter	季度
+//     * @param orgName	单位名称
+//     * @param isWriteOff	是否销账:yes:是,no:否
+//     * @param flag	是选中打印还是查询打印:seleted:选中打印,query:查询打印,打印查询出来的记录
+//     * @param model
+//     * @return
+//     */
+//    @RequestMapping("printAddWaterNotice.do")
+//    public String printAddWaterNotice(String ids,String orgIds,String year,String payTime,String printTime,String userType,String quarter,String orgName,String isWriteOff,String flag,ModelMap model) {
+//
+//        String printYear="";
+//        String printMonth="";
+//        String printDay="";
+//        try {
+//            if(payTime!=null)
+//                payTime=payTime.replace("-","");	//替换字符,在页面中重新拼凑成日期,避免出现不必要的结果
+//            if(printTime!=null){
+//                String[] atime=printTime.split("-");
+//                printYear=atime[0];
+//                printMonth=atime[1];
+//                printDay=atime[2];
+//                if(printMonth.startsWith("0"))
+//                    printMonth=printMonth.substring(1);
+//                if(printDay.startsWith("0"))
+//                    printDay=printDay.substring(1);
+//            }
+//
+//            List<List<Object>> notices=new ArrayList<List<Object>>();	//List<Object>存放要打印的通知(分上半年和下半年),因为页面显示时是一个季度一条记录,套打时是一个单位对应两个季度,这就要把页面所显示的记录拼凑成套打时所要的信息
+//            List<Object> atList=new ArrayList<Object>();
+//            List<AddWaterTemp> list=null;
+//
+//            if(flag!=null&&flag.equals("selected")){
+//                String[] assessmentIds=ids.split(",");
+//                String[] orgIdArr=orgIds.split(",");
+//                orgIdArr=getUniqValByArray(orgIdArr);
+//                list=new ArrayList<AddWaterTemp>();
+//                for (int i = 0;assessmentIds!=null&&i < assessmentIds.length; i++) {
+//                    if(assessmentIds[i]!=null){
+//                        Long ai=Long.valueOf(assessmentIds[i]);
+//                        AddWaterTemp ut=busMonthAssessmentService.getAddWaterDetailMonth(ai);
+//                        list.add(ut);
+//                    }
+//                }
+//                for (int i = 0;orgIdArr!=null&&i < orgIdArr.length; i++) {
+//                    if(orgIdArr[i]!=null){
+//                        Long orgId=Long.valueOf(orgIdArr[i]);
+//                        FirstHalfYearOfAddWaterTemp ft = new FirstHalfYearOfAddWaterTemp();	//存放上半年加价水费的记录
+//                        SecondHalfYearOfAddWaterTemp st = new SecondHalfYearOfAddWaterTemp();	//存放下半年加价水费的记录
+//                        Map<String, String> fm = new HashMap<String, String>();
+//                        Map<String, String> sm = new HashMap<String, String>();
+//                        int firstCount=0;	//单位上半年季度计数器,计算选中的单位中有多少个季度,如果此单位上半年季度有信息,则firsCount>0,目的是把上半年的季度存放在上半年的对象中
+//                        int secondCount=0;	//单位下半年季度计数器,计算选中的单位中有多少个季度,如果此单位下半年季度有信息,则secondCount>0,目的是把下半年的季度存放在下半年的对象中
+//                        for(AddWaterTemp at:list){
+//                            if(at.getOrgId().longValue()==orgId.longValue()){	//modify by llq	2015-01-21
+//                                String planUseWater=at.getPlanUseWater();
+//                                String actualWater=at.getActualWater();
+//                                String exceedUseWater=at.getExceedUseWater();
+//                                String amountReceivable=at.getAmountReceivable();
+//                                /*
+//                                 * modify by llq	2015-01-21
+//                                 */
+//                                if(planUseWater==null||planUseWater.equals(""))
+//                                    planUseWater="0.00";
+//                                if(actualWater==null||actualWater.equals(""))
+//                                    actualWater="0.00";
+//                                if(exceedUseWater==null||exceedUseWater.equals(""))
+//                                    exceedUseWater="0.00";
+//                                if(exceedUseWater==null||exceedUseWater.equals(""))
+//                                    exceedUseWater="0.00";
+//                                if(amountReceivable==null||amountReceivable.equals(""))
+//                                    amountReceivable="0.00";
+//                                //end
+//                                if(at.getAssessmentQuarter()==1){		//第一季度
+//                                    fm.put("planUseWater1", planUseWater);
+//                                    fm.put("actualWater1", actualWater);
+//                                    fm.put("exceedUseWater1", exceedUseWater);
+//                                    fm.put("amountReceivable1", amountReceivable);
+//                                    firstCount++;
+//                                }else if(at.getAssessmentQuarter()==2){		//第二季度
+//                                    fm.put("planUseWater2", planUseWater);
+//                                    fm.put("actualWater2", actualWater);
+//                                    fm.put("exceedUseWater2", exceedUseWater);
+//                                    fm.put("amountReceivable2", amountReceivable);
+//                                    firstCount++;
+//                                }else if(at.getAssessmentQuarter()==3){		//第三季度
+//                                    sm.put("planUseWater1", planUseWater);
+//                                    sm.put("actualWater1", actualWater);
+//                                    sm.put("exceedUseWater1", exceedUseWater);
+//                                    sm.put("amountReceivable1", amountReceivable);
+//                                    secondCount++;
+//                                }else if(at.getAssessmentQuarter()==4){		//第四季度
+//                                    sm.put("planUseWater2", planUseWater);
+//                                    sm.put("actualWater2", actualWater);
+//                                    sm.put("exceedUseWater2", exceedUseWater);
+//                                    sm.put("amountReceivable2", amountReceivable);
+//                                    secondCount++;
+//                                }
+//                            }
+//                        }
+//                        BusOrg org=busOrgService.get(orgId);
+//                        if (firstCount> 0) {	//存放第一第二季度的信息
+//                            ft.setOrgName(org.getOrgName());
+//                            ft.setMeterNumber(org.getBusOrgMeterNumber());
+//                            ft.setHalfYearMap(fm);
+//                            atList.add(ft);
+//                            quarter="1";
+//                        }
+//                        if (secondCount> 0) {	//存放第三第四季度的信息
+//                            st.setOrgName(org.getOrgName());
+//                            st.setMeterNumber(org.getBusOrgMeterNumber());
+//                            st.setHalfYearMap(sm);
+//                            atList.add(st);
+//                            quarter="3";
+//                        }
+//                    }
+//                }
+//                notices.add(atList);	//把此单位这一年度的加价水费信息存在notices中
+//            }else if(flag!=null&&flag.equals("query")){
+//                list = busMonthAssessmentService.getHalfYearOfAddWaterMonth(year, userType, quarter, orgName,isWriteOff);
+//                /*
+//                 * modify by lhj	2021-01-14	判断加载的是上半年的背景图还是下半年的背景图
+//                 */
+//                AddWaterTemp at=null;
+//                if(list!=null&&list.size()>0)
+//                    at=list.get(0);
+//                if(at!=null){
+//                    Integer quar=at.getAssessmentQuarter();
+//                    if(quar!=null){
+//                        if(quar==1||quar==2)
+//                            quarter="1";
+//                        else if(quar==3||quar==4)
+//                            quarter="3";
+//                    }
+//                }
+//                //end
+//            }
+//
+//            int length=0;	//控制页面调用打印通知函数的次数
+//            if(flag!=null&&flag.equals("query")){
+//                if(list!=null&&list.size()>0){
+//                    notices.add(list.get(0).getList());
+//                    length=list.get(0).getList().size();
+//                }
+//            }else if(flag!=null&&flag.equals("selected")){
+//                length=atList.size();
+//            }
+//
+//            model.addAttribute("listLength",length);
+//            model.addAttribute("notices", notices);
+//            model.addAttribute("payTime",payTime);
+//            model.addAttribute("printYear",printYear);
+//            model.addAttribute("printMonth",printMonth);
+//            model.addAttribute("printDay",printDay);
+//            /*
+//             * modify by llq	2015-01-27	判断加载的是上半年的背景图还是下半年的背景图
+//             */
+//            if(quarter!=null){
+//                if(quarter.contains("1")||quarter.contains("2"))
+//                    model.addAttribute("quarter","1");
+//                else if(quarter.contains("3")||quarter.contains("4"))
+//                    model.addAttribute("quarter","2");
+//                else
+//                    model.addAttribute("quarter","0");
+//
+//            }else
+//                model.addAttribute("quarter","0");
+//            //end
+//
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        return "bus/month-overwater-notice-print";
+//    }
+
+    //去掉数组中重复的值
+    public static String[] getUniqValByArray(String[] strs){
+        Set<String> set = new TreeSet<String>();//这里利用Set是因为Set是一个不包含重复元素的collection,自动去掉重复的值
+        for (int i = 0; i < strs.length; i++)
+            set.add(strs[i]);// 将所有字符串添加到Set
+        strs = (String[]) set.toArray(new String[0]);//new String[0]表示里面的元素转为字符串数
+        return strs;
+    }
+
+    /**
+     * 向指定URL发送GET方法的请求
+     *
+     * @param url
+     *            发送请求的URL
+     * @param param
+     *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @return URL 所代表远程资源的响应结果
+     */
+    public static String sendGet(String url, String param) {
+        String result = "";
+        BufferedReader in = null;
+        try {
+            String urlNameString = url + "?" + param;
+            URL realUrl = new URL(urlNameString);
+            // 打开和URL之间的连接
+            URLConnection connection = realUrl.openConnection();
+            // 设置通用的请求属性
+            connection.setRequestProperty("accept", "*/*");
+            connection.setRequestProperty("connection", "Keep-Alive");
+            connection.setRequestProperty("user-agent",
+                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            // 建立实际的连接
+            connection.connect();
+            // 获取所有响应头字段
+            Map<String, List<String>> map = connection.getHeaderFields();
+            // 遍历所有的响应头字段
+            for (String key : map.keySet()) {
+                System.out.println(key + "--->" + map.get(key));
+            }
+            // 定义 BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(new InputStreamReader(
+                    connection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+            }
+        } catch (Exception e) {
+            System.out.println("发送GET请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输入流
+        finally {
+            try {
+                if (in != null) {
+                    in.close();
+                }
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
+        }
+        return result;
+    }
+    @RequestMapping("wx.do")
+    public String wx(){
+        String s=sendGet("https://api.weixin.qq.com/cgi-bin/token", "grant_type=client_credential&appid=wx9966db3c8c734f0d&secret=b945f25927e1acd45cdea51e96ef84b6");
+        System.out.println(s);
+        return s;
+    }
+}

+ 26 - 5
src/java/com/bus/web/BusOrgController.java

@@ -20,6 +20,7 @@ import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.bus.model.*;
 import jxl.write.WriteException;
 import jxl.write.biff.RowsExceededException;
 
@@ -34,11 +35,6 @@ import com.StaticValues;
 import com.base.model.BaseOrgType;
 import com.base.model.enumType.UserType;
 import com.base.service.IBaseOrgTypeService;
-import com.bus.model.BusAnnualPlanForWater;
-import com.bus.model.BusCustomerMeter;
-import com.bus.model.BusMeterReadInfo;
-import com.bus.model.BusOrg;
-import com.bus.model.BusQuarterlyAssessment;
 import com.bus.model.enumType.OrgImportStatus;
 import com.bus.service.IBusAnnualPlanForWaterService;
 import com.bus.service.IBusCustomerMeterService;
@@ -1217,6 +1213,12 @@ public class BusOrgController extends BaseController{
 		// 计划水量加上5%
 		int planWater = (int) Math.round((1+Float.valueOf(initValue)/100) * w);
 		int fs =Math.round(Float.valueOf(planWater) / 4);
+
+		//月计划用水指标
+		int ms = Math.round(Float.valueOf(planWater) / 12);
+
+		//半年计划用水指标
+		int hys = Math.round(Float.valueOf(planWater) / 2);
 	    
 		//初值化年度计划表
 		BusAnnualPlanForWater busAnnualPlanForWater = busAnnualPlanForWaterService.get(orgId);
@@ -1251,6 +1253,25 @@ public class BusOrgController extends BaseController{
 				bqa.setBankAccount(borg.getBankAccount());
 				busQuarterlyAssessmentService.save(bqa);
 			}
+
+			//月考核初值化
+			for(int i=1;i<13;i++) {
+				BusMonthAssessment bma = new BusMonthAssessment();
+				bma.setAssessmentMonth(i);
+				bma.setWaterPlanningIndex((float)ms);
+				bma.setOrg(borg);
+				bma.setBank(borg.getBank());
+				bma.setBankAccount(borg.getBankAccount());
+			}
+			//半年考核初值化
+			for(int i=1;i<3;i++) {
+				BusYearhfAssessment bya = new BusYearhfAssessment();
+				bya.setAssessmentYearhf(i);
+				bya.setWaterPlanningIndex((float)hys);
+				bya.setOrg(borg);
+				bya.setBank(borg.getBank());
+				bya.setBankAccount(borg.getBankAccount());
+			}
 			
 		}
 		

+ 475 - 0
src/java/com/bus/web/BusYearhfAssessmentController.java

@@ -0,0 +1,475 @@
+package com.bus.web;
+
+import com.base.model.enumType.UserType;
+import com.bus.model.BusOrg;
+import com.bus.model.BusYearhfAssessment;
+import com.bus.model.temp.BusYearhfAssessmentTemp;
+import com.bus.service.IBusOrgService;
+import com.bus.service.IBusQuarterlyAssessmentService;
+import com.bus.service.IBusYearhfAssessmentService;
+import com.core.dao.util.Updater;
+import com.core.util.ExcelUtils;
+import com.core.util.JsonUtil;
+import com.core.util.file.DownloadHelper;
+import com.core.web.BaseController;
+import jxl.write.WriteException;
+import jxl.write.biff.RowsExceededException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Controller
+@RequestMapping({"/yearhfAssessment/"})
+public class BusYearhfAssessmentController extends BaseController {
+    @Autowired
+    private IBusYearhfAssessmentService busYearhfAssessmentService;
+
+    @Autowired
+    private IBusOrgService busOrgService;
+
+    /**
+     * 半年考核用水列表
+     * @param model
+     * @return
+     */
+    @RequestMapping("list.do")
+    public String list(ModelMap model){
+        String year = getCurrentYear();
+        Map<String,List<Map<String,String>>> map = new HashMap<String,List<Map<String,String>>>();
+        List<Map<String, String>> m = UserType.getList();
+        map.put("list", m);
+        model.addAttribute("year", year);
+        model.addAttribute("userType",JsonUtil.getJSONSerializer().deepSerialize(map));
+        return "bus/yearhf-assessment-list";
+    }
+
+    /**
+     * 得到年份
+     *
+     * @return
+     */
+    private String getCurrentYear() {
+        String year = busOrgService.getMatYearFromBusOrg();
+        return year;
+    }
+
+    @RequestMapping("listPage.do")
+    @ResponseBody
+    public String listPage(int pageNo, int pageSize, Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                           String orgName, String year, String address, String isPlanUser,
+                           String userType,String yearhf,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,
+                           String isWriteOff,Float waterPrice,HttpServletRequest request) {
+        List<Object[]> list = busYearhfAssessmentService.getYearhfAssessmentListPage
+                (pageNo, pageSize, orgNumber, customerNumber, meterNumber, orgName.trim(), year, address, isPlanUser,
+                        userType, yearhf, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,null,isWriteOff,waterPrice);
+        int totalRows = busYearhfAssessmentService.getTotalRows
+                (pageSize,orgNumber, customerNumber, meterNumber, orgName.trim(), year, address, isPlanUser, userType, yearhf,
+                        overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,isWriteOff,waterPrice);
+        Map<String, Object> map = new Hashtable<String,Object>();
+        map.put("rows", list);
+        map.put("pager.pageNo", pageNo);
+        map.put("pager.totalRows", totalRows);
+        String jsonStr = JsonUtil.getJSONSerializer().deepSerialize(map);
+        return jsonStr;
+    }
+
+    /**
+     * 打开新增页面
+     * @return
+     */
+    @RequestMapping("create.do")
+    public String create(String year,ModelMap model){
+        model.put("year", year);
+        return "bus/yearhf-assessment-create";
+    }
+
+    /**
+     * 添加
+     * @return
+     */
+    @RequestMapping("createData.do")
+    @ResponseBody
+    public Object createData(BusYearhfAssessment entity, Long orgId){
+        BusOrg org = busOrgService.get(orgId);
+        entity.setOrg(org);
+        entity.setIsWriteOff("no");
+        busYearhfAssessmentService.save(entity);
+        return addJsonSuccessMsg("添加成功!");
+    }
+
+    /**
+     * 打开编辑页面
+     * @param model
+     * @return
+     */
+    @RequestMapping("update.do")
+    public String update(Long entity_id,ModelMap model){
+        BusYearhfAssessment entity = busYearhfAssessmentService.get(entity_id);
+        BusOrg org = entity.getOrg();
+        List<Object[]> list = busYearhfAssessmentService.getYearhfAssessmentListPage
+                (1, 1, null, null, null, null, null, null, null, null, null, null, null, null, null, entity_id,null,null);
+        Object[] obj = list.get(0);
+        model.addAttribute("assessmentYhfId",entity_id);
+        model.addAttribute("assessmentYearhf", obj[8]);
+        model.addAttribute("waterPrice", obj[13]);
+        model.addAttribute("waterPlanningIndex", obj[9]);
+        model.addAttribute("usewater", String.format("%.0f", obj[14]));
+        model.addAttribute("overWater", String.format("%.0f",obj[15]));
+        model.addAttribute("overWaterPercent", String.format("%.2f",obj[16]));
+        model.addAttribute("isWriteOff", obj[10]);
+        model.addAttribute("writeOffDate", obj[11]);
+        model.addAttribute("writeType", obj[19]);
+        model.addAttribute("remark", obj[20]);
+        model.addAttribute("replyOfWater", obj[21]);
+        model.addAttribute("taxpay", obj[26]);
+        model.addAttribute("org", org);
+        model.addAttribute("busYearhfAssessment", entity);
+        return "bus/yearhf-assessment-edit";
+    }
+
+    /**
+     * 更新
+     * @return
+     * @throws ParseException
+     */
+    @RequestMapping("updateData.do")
+    @ResponseBody
+    public Object updateData(BusYearhfAssessment entity,Long orgId,String date) throws ParseException{
+        BusOrg org  = busOrgService.get(orgId);
+        entity.setOrg(org);
+        if(!"".equals(date)&&date!=null){
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date d = sdf.parse(date);
+            entity.setWriteOffDate(d);
+        }
+        Updater<BusYearhfAssessment> updater = new Updater<BusYearhfAssessment>(entity);
+        busYearhfAssessmentService.updateByUpdater(updater);
+        return addJsonSuccessMsg("更新成功!");
+    }
+
+    /**
+     * 删除文件
+     * @param ids
+     * @return
+     */
+    @RequestMapping("delete.do")
+    @ResponseBody
+    public Object delete(Long[] ids){
+        busYearhfAssessmentService.removeByIds(ids);
+        return addJsonSuccessMsg("删除成功");
+    }
+
+    /**
+     * 打开年度计划选择页面
+     * @return
+     */
+    @RequestMapping("annualPlanSelectedPage.do")
+    public String annualPlanSelectedPage(String year,ModelMap model){
+        model.put("year", year);
+        return "bus/annual_plan_select";
+    }
+
+    /**
+     * 载入年度计划数据
+     * @return
+     */
+    @RequestMapping("annualPlanSelectedData.do")
+    @ResponseBody
+    public String annualPlanSelectedData(int pageNo, int pageSize,String orgName,String year){
+        this.page = busYearhfAssessmentService.getAnnualPlanSelectedData(pageNo, pageSize, orgName,year);
+        String result = this.getPageJosnResult();
+        return result;
+    }
+
+    /**
+     * 半年超用水汇总页面
+     * @param model
+     * @return
+     */
+    @RequestMapping("yearhfOverwaterChargeCollect.do")
+    public String yearhfOverwaterChargeCollect(ModelMap model){
+        String year = getCurrentYear();
+        Map<String,List<Map<String,String>>> map = new HashMap<String,List<Map<String,String>>>();
+        List<Map<String, String>> m = UserType.getList();
+        map.put("list", m);
+        model.addAttribute("year", year);
+        model.addAttribute("userType",JsonUtil.getJSONSerializer().deepSerialize(map));
+        return "bus/yearhf-overwater-charge-collect";
+    }
+
+    /**
+     * 半年考核销帐页面
+     * @param model
+     * @return
+     */
+    @RequestMapping("yearhfAssessmentWriteOff.do")
+    public String yearhfAssessmentWriteOff(Long entity_id,ModelMap model){
+        BusYearhfAssessment entity = busYearhfAssessmentService.get(entity_id);
+        BusOrg org = entity.getOrg();
+        List<Object[]> list = busYearhfAssessmentService.getYearhfAssessmentListPage
+                (1, 1, null, null, null, null, null, null, null, null, null, null, null, null, null, entity_id,null,null);
+        Object[] obj = list.get(0);
+        model.addAttribute("assessmentYhfId",entity_id);
+        model.addAttribute("assessmentYearhf", obj[8]);
+        model.addAttribute("amountReceivable", String.format("%.2f", obj[18]));
+        model.addAttribute("isWriteOff", obj[10]);
+        model.addAttribute("writeOffDate", obj[11]);
+        model.addAttribute("writeType", obj[19]);
+        model.addAttribute("modeOfPayment", obj[12]);
+        model.addAttribute("paidInAmount", obj[17]);
+        model.addAttribute("invoiceNo", obj[22]);
+        model.addAttribute("remark", obj[20]);
+        model.addAttribute("org", org);
+        model.addAttribute("busYearhfAssessment", entity);
+        return "bus/yearhf-assessment-write-off";
+    }
+
+    /**
+     * 导出excel
+     * @param pageNo
+     * @param pageSize
+     * @param orgNumber
+     * @param customerNumber
+     * @param meterNumber
+     * @param orgName
+     * @param year
+     * @param address
+     * @param isPlanUser
+     * @param userType
+     * @param overWaterBegin
+     * @param overWaterEnd
+     * @param amountReceivableBegin
+     * @param amountReceivableEnd
+     * @param flag
+     * @param ids
+     * @param request
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping(value = "exportExcel.do", method = RequestMethod.GET)
+    @ResponseBody
+    public Object exportExcel(Integer pageNo, Integer pageSize, Integer orgNumber,Integer customerNumber,Integer meterNumber,
+                              String orgName, String year, String address, String isPlanUser,
+                              String userType,String yearhf,Integer overWaterBegin,Integer overWaterEnd,Integer amountReceivableBegin,Integer amountReceivableEnd,
+                              String flag,String ids,String exportType,String isWriteOff,HttpServletRequest request) throws UnsupportedEncodingException {
+        if(orgName!=null&&orgName!=""){
+            orgName = URLDecoder.decode(orgName,"utf-8");
+        }
+        if(address!=null&&address!=""){
+            address = URLDecoder.decode(address,"utf-8");
+        }
+        List<BusYearhfAssessmentTemp> list=null;
+        if(flag!=null&&flag.equals("selected")){
+            String[] assessmentId=ids.split(",");
+            list = busYearhfAssessmentService.getYearhfAssessmentForExcel(pageNo, pageSize, orgNumber, customerNumber,
+                    meterNumber, orgName, year, address, isPlanUser, userType, yearhf, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,assessmentId,isWriteOff);
+
+        }else
+        if(flag!=null&&flag.equals("query")){
+            list = busYearhfAssessmentService.getYearhfAssessmentForExcel(pageNo, pageSize, orgNumber, customerNumber,
+                    meterNumber, orgName, year, address, isPlanUser, userType, yearhf, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,null,isWriteOff);
+        }
+//		list= (List<BusCustomerMeter>) this.page.getResult();
+
+        String fileName="";
+        if("list".equals(exportType)){
+            fileName = "单位半年考核用水.xls";
+        }else if("writeOff".equals(exportType)){
+            fileName = "半年超用水费用汇总.xls";
+        }
+        String agent=request.getHeader("user-agent");
+        if(agent!=null&&!agent.contains("Firefox")){
+            //不是火狐浏览器,则URL编码
+            fileName=URLEncoder.encode(fileName,"UTF-8");
+        }
+
+        try {
+            if("list".equals(exportType)){
+                String[] titles = new String[]{ "单位编号","单位名称","邮寄地址","单位地址","邮编","水表号","年份",
+                        "用户类型","考核半年度","计划用水量","实际用水量","实际收水量","应收金额","实收金额","是否销帐","销帐日期","付款方式","水价","超10-30%的水量","超30%以上的水量","超10-30%的金额","超30%以上的金额","总金额","超用率","用水计划旧指标"};
+                int columnLength[] = {20,50,10,10,20,50,10,10,15,15,15,15,10,10,10,20,10,10,20,20,20,20,20,20,20};
+                String fileds[]=new String[]{"orgNumber","orgName","postAddress","Address","post","meterNumber","year",
+                        "userType","assessmentYearhf","waterPlanningIndex","actualUseWater","actualClosingWater",
+                        "amountReceivable","paidInAmount","isWriteOff","writeOffDate","modeOfPayment","waterPrice","Intervallow","Intervalup","Moneyup","Moneylow","Moneyall","overWaterPercent","replyOfIncrease"};
+                ExcelUtils.writeExcel(fileName, list, titles, columnLength, fileds);
+            }else if("writeOff".equals(exportType)){
+                String[] titles = new String[]{
+                        "单位名称","用户类型","半年度","批复用水指标","实际用水量","实际收水量","应收金额","实收金额","是否销帐","销帐日期","付款方式","用水单价","备注","超10-30%的水量","超30%以上的水量","超10-30%的金额","超30%以上的金额","总金额","超用率"};
+                int columnLength[] = {20,10,10,15,15,15,10,10,10,10,10,10,30,20,20,20,20,20,20};
+                String fileds[]=new String[]{"orgName","userType","assessmentYearhf","replyOfWater","actualUseWater","actualClosingWater",
+                        "amountReceivable","paidInAmount","isWriteOff","writeOffDate","modeOfPayment","waterPrice","remark","Intervallow","Intervalup","Moneyup","Moneylow","Moneyall","overWaterPercent"};
+                ExcelUtils.writeExcel(fileName, list, titles, columnLength, fileds);
+            }
+        } catch (RowsExceededException e) {
+            e.printStackTrace();
+        } catch (WriteException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        DownloadHelper downloadHelper = new DownloadHelper();
+        downloadHelper.setFile(new File(fileName));
+        return downloadHelper;
+    }
+
+    /**
+     * 打印
+     * @param model
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    @RequestMapping("print.do")
+    public String print(Integer pageNo, Integer pageSize, Integer orgNumber, Integer customerNumber, Integer meterNumber,
+                        String orgName, String year, String address, String isPlanUser,
+                        String userType, String yearhf, Integer overWaterBegin, Integer overWaterEnd, Integer amountReceivableBegin, Integer amountReceivableEnd,
+                        String flag, String ids, String exportType, String isWriteOff, Model model, HttpServletRequest request) throws UnsupportedEncodingException {
+        if(orgName!=null&&orgName!=""){
+            orgName = URLDecoder.decode(orgName,"utf-8");
+        }
+        if(address!=null&&address!=""){
+            address = URLDecoder.decode(address,"utf-8");
+        }
+        List<BusYearhfAssessmentTemp> list=null;
+        if(flag!=null&&flag.equals("selected")){
+            String[] assessmentId=ids.split(",");
+            list = busYearhfAssessmentService.getYearhfAssessmentForExcel(pageNo, pageSize, orgNumber, customerNumber,
+                    meterNumber, orgName, year, address, isPlanUser, userType, yearhf, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,assessmentId,isWriteOff);
+
+        }else
+        if(flag!=null&&flag.equals("query")){
+            list = busYearhfAssessmentService.getYearhfAssessmentForExcel(pageNo, pageSize, orgNumber, customerNumber,
+                    meterNumber, orgName, year, address, isPlanUser, userType, yearhf, overWaterBegin, overWaterEnd, amountReceivableBegin, amountReceivableEnd,null,isWriteOff);
+        }
+        model.addAttribute("list", list);
+        String view = "";
+        if("list".equals(exportType)){
+            view = "bus/yearhf-assessment-view";
+        }else if("writeOff".equals(exportType)){
+            view = "bus/yearhf-overwater-charge-collect-view";
+        }
+        return view;
+    }
+
+    /**
+     * 打印前,打开新增打印日期页面
+     * @param ids	考核半年id
+     * @param orgIds	单位id
+     * @param year	年份
+     * @param userType	用户类型
+     * @param yearhf	半年度
+     * @param orgName	单位名称
+     * @param isWriteOff	是否销账:yes:是,no:否
+     * @param flag	是选中打印还是查询打印:seleted:选中打印,query:查询打印,打印查询出来的记录
+     * @param model
+     * @return
+     */
+    @RequestMapping("addPrintTime.do")
+    public String addPrintTime(String ids,String orgIds,String year,String userType,String yearhf,String orgName,String isWriteOff,String flag,ModelMap model){
+
+        model.addAttribute("ids", ids);
+        model.addAttribute("orgIds", orgIds);
+        model.addAttribute("year", year);
+        model.addAttribute("userType", userType);
+        model.addAttribute("yearhf", yearhf);
+        model.addAttribute("isWriteOff", isWriteOff);
+        if("query".equals(flag)){
+            try {
+                if(orgName!=null&&!orgName.trim().equals(""))
+                    orgName = new String(orgName.getBytes("ISO8859-1"),"UTF-8");
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+        model.addAttribute("orgName", orgName);
+        model.addAttribute("flag", flag);
+        return "bus/yearhf-overwater-print-time-add";
+    }
+
+
+    //去掉数组中重复的值
+    public static String[] getUniqValByArray(String[] strs){
+        Set<String> set = new TreeSet<String>();//这里利用Set是因为Set是一个不包含重复元素的collection,自动去掉重复的值
+        for (int i = 0; i < strs.length; i++)
+            set.add(strs[i]);// 将所有字符串添加到Set
+        strs = (String[]) set.toArray(new String[0]);//new String[0]表示里面的元素转为字符串数
+        return strs;
+    }
+
+    /**
+     * 向指定URL发送GET方法的请求
+     *
+     * @param url
+     *            发送请求的URL
+     * @param param
+     *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @return URL 所代表远程资源的响应结果
+     */
+    public static String sendGet(String url, String param) {
+        String result = "";
+        BufferedReader in = null;
+        try {
+            String urlNameString = url + "?" + param;
+            URL realUrl = new URL(urlNameString);
+            // 打开和URL之间的连接
+            URLConnection connection = realUrl.openConnection();
+            // 设置通用的请求属性
+            connection.setRequestProperty("accept", "*/*");
+            connection.setRequestProperty("connection", "Keep-Alive");
+            connection.setRequestProperty("user-agent",
+                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            // 建立实际的连接
+            connection.connect();
+            // 获取所有响应头字段
+            Map<String, List<String>> map = connection.getHeaderFields();
+            // 遍历所有的响应头字段
+            for (String key : map.keySet()) {
+                System.out.println(key + "--->" + map.get(key));
+            }
+            // 定义 BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(new InputStreamReader(
+                    connection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+            }
+        } catch (Exception e) {
+            System.out.println("发送GET请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输入流
+        finally {
+            try {
+                if (in != null) {
+                    in.close();
+                }
+            } catch (Exception e2) {
+                e2.printStackTrace();
+            }
+        }
+        return result;
+    }
+    @RequestMapping("wx.do")
+    public String wx(){
+        String s=sendGet("https://api.weixin.qq.com/cgi-bin/token", "grant_type=client_credential&appid=wx9966db3c8c734f0d&secret=b945f25927e1acd45cdea51e96ef84b6");
+        System.out.println(s);
+        return s;
+    }
+
+}