Kaynağa Gözat

发票功能修改

user5 4 yıl önce
ebeveyn
işleme
2d3a24f7d1

+ 15 - 0
src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceAllService.java

@@ -175,6 +175,21 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 	}
 
 	/**
+	 * 查询已通过的所有发票的开票金额总和
+	 * @param workInvoice
+	 * @return
+	 */
+	public String getSumMoney(WorkInvoice workInvoice){
+		//workInvoice.getSqlMap().put("dsf", dataScopeFilter(workInvoice.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_INVOICE.getValue()));
+		workInvoice.setPage(new Page<WorkInvoice>());
+		String getSumMoney = dao.getSumMoney(workInvoice);
+		if(StringUtils.isBlank(getSumMoney)){
+			getSumMoney = "0";
+		}
+		return getSumMoney;
+	}
+
+	/**
 	 * 暂存
 	 * @param workInvoice
 	 */

+ 1 - 0
src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceService.java

@@ -207,6 +207,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	 */
 	public String getSumMoney(WorkInvoice workInvoice){
 		workInvoice.getSqlMap().put("dsf", dataScopeFilter(workInvoice.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_INVOICE.getValue()));
+		workInvoice.setPage(new Page<WorkInvoice>());
 		String getSumMoney = dao.getSumMoney(workInvoice);
 		if(StringUtils.isBlank(getSumMoney)){
 			getSumMoney = "0";

+ 3 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceAllController.java

@@ -134,6 +134,8 @@ public class WorkInvoiceAllController extends BaseController {
 	@RequestMapping(value = {"list", ""})
 	public String list(WorkInvoice workInvoice, HttpServletRequest request, HttpServletResponse response, Model model) {
 		Page<WorkInvoice> page = workInvoiceService.findPage(new Page<WorkInvoice>(request, response), workInvoice);
+		//查询已通过的所有发票的开票金额总和
+		String getSumMoney = workInvoiceService.getSumMoney(workInvoice);
 		List<WorkInvoice> workInvoiceList = page.getList();
 		for (WorkInvoice invoice: workInvoiceList) {
 			invoice.setWorkInvoiceProjectRelationList(invoiceService.getProjectRelation(invoice));
@@ -142,6 +144,7 @@ public class WorkInvoiceAllController extends BaseController {
 			invoice.setProjectName(projectNameStr);
 		}
 		model.addAttribute("page", page);
+		model.addAttribute("sumMoney", getSumMoney);
 		model.addAttribute("workInvoiceShow", workInvoice);
 		return "modules/workinvoice/workInvoiceAllList";
 	}

+ 9 - 6
src/main/resources/mappings/modules/workinvoice/WorkInvoiceDao.xml

@@ -100,7 +100,10 @@
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
 			<if test="number != null and number != ''">
-				AND a.number = #{number}
+				AND a.number LIKE
+				<if test="dbName == 'oracle'">'%'||#{number}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{number}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{number},'%')</if>
 			</if>
 			<if test="invoiceState != null and invoiceState != ''">
 				AND a.invoice_state = #{invoiceState}
@@ -228,7 +231,10 @@
 			a.del_flag = #{DEL_FLAG_NORMAL}
 			and a.invoice_state = 5
 			<if test="number != null and number != ''">
-				AND a.number = #{number}
+				AND a.number LIKE
+				<if test="dbName == 'oracle'">'%'||#{number}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{number}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{number},'%')</if>
 			</if>
 			<if test="beginContractDate != null and endContractDate != null and beginContractDate != '' and endContractDate != ''">
 				AND a.create_date BETWEEN #{beginContractDate} AND #{endContractDate}
@@ -269,9 +275,6 @@
 			<if test="money != null and money != ''">
 				AND a.money = #{money}
 			</if>
-			<!--<if test="submitterId != null and submitterId != ''">
-				AND a.create_by = #{submitterId}
-			</if>-->
 			<if test="(submitterId != null and submitterId != '') or (submitterName != null and submitterName != '')">
 				AND (a.create_by = #{submitterId} or su.name like concat('%',#{submitterName},'%'))
 			</if>
@@ -331,7 +334,7 @@
 			</if>
 			${sqlMap.dsf}
 		</where>
-	) x
+	) as x
 	</select>
 
 	<select id="queryCount" resultType="int" >

+ 111 - 32
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllList.jsp

@@ -147,7 +147,7 @@
 				maxmin: true, //开启最大化最小化按钮
 				content: url ,
 				skin:"three-btns",
-				btn: ['保留','确认收款','关闭'],
+				btn: ['保留',/*'确认收款',*/'关闭'],
 				btn1: function(index, layero){
 					var body = top.layer.getChildFrame('body', index);
 					var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
@@ -164,7 +164,7 @@
 						setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
 					}
 				},
-				btn2:function(index,layero){
+				/*btn2:function(index,layero){
 					var body = top.layer.getChildFrame('body', index);
 					var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
 					var inputForm = body.find('#inputForm');
@@ -180,7 +180,7 @@
 						setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
 					}
 					return false;
-				},
+				},*/
 				btn3: function(index){
 				}
 			});
@@ -330,7 +330,54 @@
 			});
 
 		}
+		function cBlur(obj) {
+			var id = $("#accountCheckingUserId").val();
+			if(undefined != obj.value && null != obj.value && '' != obj.value){
+				$.ajax({
+					url:'${ctx}/sys/user/getUserByName?name='+obj.value,
+					type:"post",
+					success:function(data){
+						var user = data.body.data;
+						if(undefined == user || null == user || '' == user){
+							$("#accountCheckingUserId").val("");
+						}else{
+							if(data.body.data.id != id){
+								if(undefined != id && null != id && '' != id){
+									$("#accountCheckingUserId").val("");
+								}
+							}
+						}
+					}
+				});
+			}else{
+				$("#accountCheckingUserId").val("");
+			}
+
+		}
+		function blurSubmitterId(obj) {
+			var id = $("#submitterId").val();
+			if(undefined != obj.value && null != obj.value && '' != obj.value){
+				$.ajax({
+					url:'${ctx}/sys/user/getUserByName?name='+obj.value,
+					type:"post",
+					success:function(data){
+						var user = data.body.data;
+						if(undefined == user || null == user || '' == user){
+							$("#submitterId").val("");
+						}else{
+							if(data.body.data.id != id){
+								if(undefined != id && null != id && '' != id){
+									$("#submitterId").val("");
+								}
+							}
+						}
+					}
+				});
+			}else{
+				$("#submitterId").val("");
+			}
 
+		}
 	</script>
 	<style>
 		body{
@@ -363,6 +410,24 @@
 
 					<div class="commonQuery lw9">
 						<div class="layui-item query athird">
+							<label class="layui-form-label">发票申请编号:</label>
+							<div class="layui-input-block">
+								<form:input path="number" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">开票日期:</label>
+							<div class="layui-input-block">
+								<input id="beginContractDate" name="beginContractDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group" style="background-color: #fff"
+									   value="<fmt:formatDate value="${workInvoice.beginContractDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+								<span class="group-sep">-</span>
+								<input id="endContractDate" name="endContractDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group" style="background-color: #fff"
+									   value="<fmt:formatDate value="${workInvoice.endContractDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+							</div>
+						</div>
+						<%--<div class="layui-item query athird">
 							<label class="layui-form-label">项目编号:</label>
 							<div class="layui-input-block">
 								<form:input path="project.projectId" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
@@ -373,7 +438,7 @@
 							<div class="layui-input-block with-icon">
 								<form:input path="project.projectName" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
 							</div>
-						</div>
+						</div>--%>
 						<div class="layui-item athird">
 							<div class="input-group">
 								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
@@ -386,42 +451,24 @@
 						<div style="    clear:both;"></div>
 					</div>
 					<div id="moresees" class="lw9" style="clear:both;display:none;">
-						<div class="layui-item query athird">
-							<label class="layui-form-label">报告号名称:</label>
-							<div class="layui-input-block with-icon">
-								<form:input path="project.reportData.number" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
-							</div>
-						</div>
-						<div class="layui-item query athird">
-							<label class="layui-form-label">开票日期:</label>
-							<div class="layui-input-block">
-								<input id="beginContractDate" name="beginContractDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
-									   value="<fmt:formatDate value="${workInvoice.beginContractDate}" pattern="yyyy-MM-dd"/>"/>
-								</input>
-								<span class="group-sep">-</span>
-								<input id="endContractDate" name="endContractDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
-									   value="<fmt:formatDate value="${workInvoice.endContractDate}" pattern="yyyy-MM-dd"/>"/>
-								</input>
-							</div>
-						</div>
-						<div class="layui-item query athird">
-							<label class="layui-form-label">发票申请编号:</label>
-							<div class="layui-input-block">
-								<form:input path="number" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
-							</div>
-						</div>
+							<%--<div class="layui-item query athird">
+                                <label class="layui-form-label">报告号名称:</label>
+                                <div class="layui-input-block with-icon">
+                                    <form:input path="project.reportData.number" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
+                                </div>
+                            </div>--%>
 						<div class="layui-item query athird">
 							<label class="layui-form-label">经办人部门:</label>
 							<div class="layui-input-block with-icon">
-								<sys:treeselect id="officeId" name="officeId" value="${workInvoice.officeId}" labelName="officeName" labelValue="${workInvoice.officeName}"
+								<sys:treeselect id="officeId" name="officeId" value="${workInvoice.officeId}" labelName="officeName" labelValue="${workInvoice.officeName}" cssStyle="background-color: #fff"
 												title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
 							</div>
 						</div>
 						<div class="layui-item query athird">
 							<label class="layui-form-label">经办人:</label>
 							<div class="layui-input-block with-icon">
-								<sys:inquireselectUser id="submitterId" name="submitterId" value="${workInvoice.submitterId}" labelName="submitterName" labelValue="${workInvoice.submitterName}"
-												title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+								<sys:inquireselectUserNotReadolnyTow id="submitter" name="submitterId" value="${workInvoice.submitterId}" labelName="submitterName" labelValue="${workInvoice.submitterName}" cssStyle="background-color: #fff"
+																	 title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
 							</div>
 						</div>
 						<div class="layui-item query athird">
@@ -476,6 +523,26 @@
 								</form:select>
 							</div>
 						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">对账人:</label>
+							<div class="layui-input-block with-icon">
+								<sys:inquireselectUserNotReadolny id="accountCheckingUser" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}" cssStyle="background-color: #fff"
+																  title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">对账地区:</label>
+							<div class="layui-input-block  with-icon">
+								<sys:treeselectArae id="area" name="area.id" value="${workInvoice.area.id}" labelName="area.name" labelValue="${workInvoice.area.name}"
+													cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">发票号:</label>
+							<div class="layui-input-block with-icon">
+								<form:input path="widNumber" htmlEscape="false"  class=" form-control layui-input"/>
+							</div>
+						</div>
 					</div>
 				</form:form>
 			</div>
@@ -484,11 +551,14 @@
 			<div class=" contentShadow shadowLBR layui-form contentDetails">
 				<div class="nav-btns">
 					<%--此处按钮样式包括 nav-btn-add nav-btn-refresh nav-btn-import nav-btn-export nav-btn-query nav-btn-reset--%>
-					<div class="layui-btn-group">
+					<div class="layui-btn-group" style="float: left">
 						<shiro:hasPermission name="workinvoice:workInvoice:add">
 							<button class="layui-btn layui-btn-sm layui-bg-blue" title="发票管理" onclick="openDialogre('发票管理','${ctx}//workinvoiceAll/workInvoiceAll/form','95%','95%')">&nbsp;添加</button>
 						</shiro:hasPermission>
 						<button class="layui-btn layui-btn-sm layui-bg-green" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+						<div class=" layui-btn-sm" style="float: right;width: 300px">
+							<span style="color: red">金额汇总(开票金额):${sumMoney}(元)</span>
+						</div>
 					</div>
 					<%--<shiro:hasPermission name="workinvoice:workInvoice:del">
 						<table:delRow url="${ctx}/workinvoiceAll/workInvoiceAll/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->
@@ -526,6 +596,9 @@
                 ,{field:'invoiceNum',align:'center', sort:true,title: '发票申请编号', minWidth:130,templet:function(d){
                         return "<a class=\"attention-info\" title=\""+ d.invoiceNum +"\"href=\"javascript:void(0);\" onclick=\"openDialogListView('查看发票管理', '${ctx}/workinvoiceAll/workInvoiceAll/form?id=" + d.id + "&tabId=1','"+ d.id +"','95%', '95%')\">" + d.invoiceNum + "</a>";
                     }}
+				,{field:'widNumber',align:'center', title: '发票号',  width:90,templet:function(d){
+						return "<span title='"+ d.widNumber +"'>" + d.widNumber + "</span>";
+					}}
 				,{field:'clientName', align:'center',title: '开票单位', minWidth:160,templet:function(d){
 						return "<span title='"+ d.clientName +"'>" + d.clientName + "</span>";
 					}}
@@ -547,6 +620,9 @@
 				,{field:'invoiceType',align:'center', title: '发票类型',  width:90,templet:function(d){
 						return "<span title='"+ d.invoiceType +"'>" + d.invoiceType + "</span>";
 					}}
+				,{field:'widTotalMoney',align:'center', title: '发票金额(元)',  width:120,templet:function(d){
+						return "<span title='"+ d.widTotalMoney +"'>" + d.widTotalMoney + "</span>";
+					}}
 				,{field:'createDate',align:'center', sort:true,title: '开票日期',  width:80}
 				,{field:'receiptMoneyDate',align:'center', sort:true,title: '收款日期',  width:80}
 				,{field:'receiptMoney',align:'center', title: '是否收款',  width:80}
@@ -594,6 +670,7 @@
 						if(d.financeFlag != undefined && d.financeFlag =="1")
 						{
 							xml +="<a href=\"javascript:void(0)\" onclick=\"receiptInvoice('发票收款', '${ctx}/workinvoiceAll/workInvoiceAll/receiptForm?id=" + d.id + "','95%','95%')\" class=\"layui-btn layui-btn-xs layui-bg-orange\" > 收款</a>";
+							xml+="<a href=\"${ctx}/workinvoiceAll/workInvoiceAll/saveAffirmReceipt?id=" + d.id + "\" onclick=\"return confirmx('是否确认收款?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-orange\"> 确认收款</a>";
 						}
 						if(d.cancellationFlag != undefined && d.cancellationFlag =="1")
 						{
@@ -646,6 +723,8 @@
                     ,"responsibleName":"${workInvoice.createBy.name}"
                     ,"receiptMoney":"${workInvoice.receiptMoney}"
                     ,"status":"${workInvoice.invoiceState}"
+					,"widNumber":"${workInvoice.widNumber}"
+					,"widTotalMoney":"${workInvoice.widTotalMoney}"
                     ,"money":"<fmt:formatNumber value="${workInvoice.money}" pattern="##0.00"/>"
                     ,"createDate":"<fmt:formatDate value="${workInvoice.createDate}" pattern="yyyy-MM-dd"/>"
                     ,"receiptMoneyDate":"<fmt:formatDate value="${workInvoice.receiptMoneyDate}" pattern="yyyy-MM-dd"/>"

+ 4 - 4
src/main/webapp/webpage/modules/workinvoice/workInvoiceList.jsp

@@ -653,6 +653,9 @@
                 ,{field:'invoiceNum',align:'center', sort:true,title: '发票申请编号', minWidth:130,templet:function(d){
                         return "<a class=\"attention-info\" title=\""+ d.invoiceNum +"\"href=\"javascript:void(0);\" onclick=\"openDialogListView('查看发票管理', '${ctx}/workinvoice/workInvoice/form?id=" + d.id + "&tabId=1','"+ d.id +"','95%', '95%')\">" + d.invoiceNum + "</a>";
                     }}
+				,{field:'widNumber',align:'center', title: '发票号',  width:90,templet:function(d){
+						return "<span title='"+ d.widNumber +"'>" + d.widNumber + "</span>";
+					}}
 				,{field:'clientName', align:'center',title: '开票单位', minWidth:160,templet:function(d){
 						return "<span title='"+ d.clientName +"'>" + d.clientName + "</span>";
 					}}
@@ -674,10 +677,7 @@
 				,{field:'invoiceType',align:'center', title: '发票类型',  width:90,templet:function(d){
 						return "<span title='"+ d.invoiceType +"'>" + d.invoiceType + "</span>";
 					}}
-				,{field:'widNumber',align:'center', title: '发票号',  width:90,templet:function(d){
-						return "<span title='"+ d.widNumber +"'>" + d.widNumber + "</span>";
-					}}
-				,{field:'widTotalMoney',align:'center', title: '发票金额',  width:90,templet:function(d){
+				,{field:'widTotalMoney',align:'center', title: '发票金额(元)',  width:120,templet:function(d){
 						return "<span title='"+ d.widTotalMoney +"'>" + d.widTotalMoney + "</span>";
 					}}
                 <%--,{field:'reportNumber',align:'center', title: '报告号', minWidth:150,templet:function(d){--%>