Explorar o código

发票管理收款功能

user5 %!s(int64=4) %!d(string=hai) anos
pai
achega
cf94d56796

+ 23 - 0
src/main/java/com/jeeplus/modules/workinvoice/dao/WorkInvoiceReceiptDao.java

@@ -0,0 +1,23 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.workinvoice.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.workbidproject.entity.WorkBidProject;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
+import com.jeeplus.modules.workinvoice.entity.WorkInvoice;
+import com.jeeplus.modules.workinvoice.entity.WorkInvoiceReceipt;
+
+import java.util.List;
+
+/**
+ * 开票管理DAO接口
+ * @author 孟祥越
+ * @version 2017-05-05
+ */
+@MyBatisDao
+public interface WorkInvoiceReceiptDao extends CrudDao<WorkInvoiceReceipt> {
+
+}

+ 9 - 0
src/main/java/com/jeeplus/modules/workinvoice/entity/WorkInvoice.java

@@ -77,6 +77,7 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	private String adminFlag;		// 管理员判断
 	private String cancellationRemark;		// 作废原因
 	private List<WorkInvoiceDetail> workAccountList = Lists.newArrayList();//发票明细
+	private List<WorkInvoiceReceipt> workReceiptList;//收款明细
 	public String getOfficeId() {
 		return officeId;
 	}
@@ -510,4 +511,12 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	public void setSubmitterName(String submitterName) {
 		this.submitterName = submitterName;
 	}
+
+	public List<WorkInvoiceReceipt> getWorkReceiptList() {
+		return workReceiptList;
+	}
+
+	public void setWorkReceiptList(List<WorkInvoiceReceipt> workReceiptList) {
+		this.workReceiptList = workReceiptList;
+	}
 }

+ 50 - 0
src/main/java/com/jeeplus/modules/workinvoice/entity/WorkInvoiceReceipt.java

@@ -0,0 +1,50 @@
+package com.jeeplus.modules.workinvoice.entity;
+
+import com.jeeplus.common.persistence.DataEntity;
+
+import java.util.Date;
+
+/**
+ * @author: 大猫
+ * @create: 2020-12-07 14:56
+ **/
+public class WorkInvoiceReceipt extends DataEntity<WorkInvoiceReceipt> {
+    private static final long serialVersionUID = 1L;
+
+    private String invoiceId;   //发票id
+    private String companyName;  //公司名称
+    private Double money;   //汇款金额
+    private String receiptDate;  //汇款时间
+
+    public String getInvoiceId() {
+        return invoiceId;
+    }
+
+    public void setInvoiceId(String invoiceId) {
+        this.invoiceId = invoiceId;
+    }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public String getReceiptDate() {
+        return receiptDate;
+    }
+
+    public void setReceiptDate(String receiptDate) {
+        this.receiptDate = receiptDate;
+    }
+}

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

@@ -3,6 +3,7 @@
  */
 package com.jeeplus.modules.workinvoice.service;
 
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
@@ -12,6 +13,7 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.websocket.onchat.ChatServerPool;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.act.utils.ActUtils;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.serialnum.service.SerialNumTplService;
@@ -31,7 +33,9 @@ import com.jeeplus.modules.workactivitymenu.service.WorkActivityMenuService;
 import com.jeeplus.modules.workbidproject.entity.WorkBidProject;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
 import com.jeeplus.modules.workinvoice.dao.WorkInvoiceDao;
+import com.jeeplus.modules.workinvoice.dao.WorkInvoiceReceiptDao;
 import com.jeeplus.modules.workinvoice.entity.WorkInvoice;
+import com.jeeplus.modules.workinvoice.entity.WorkInvoiceReceipt;
 import com.jeeplus.modules.workinvoicedetail.dao.WorkInvoiceDetailDao;
 import com.jeeplus.modules.workinvoicedetail.entity.WorkInvoiceDetail;
 import com.jeeplus.modules.workinvoicedetail.service.WorkInvoiceDetailService;
@@ -73,6 +77,8 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	private WorkInvoiceDetailDao workInvoiceDetailDao;
 	@Autowired
 	private WorkActivityProcessDao workActivityProcessDao;
+	@Autowired
+	private WorkInvoiceReceiptDao workInvoiceReceiptDao;
 
 	@Autowired
 	protected TaskService taskService;
@@ -110,6 +116,12 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		if(StringUtils.isNotBlank(id)){
 			workInvoice = super.get(id);
 		}
+		//查询收款信息
+		WorkInvoiceReceipt erceipt = new WorkInvoiceReceipt();
+		erceipt.setInvoiceId(id);
+		List<WorkInvoiceReceipt> receiptList = workInvoiceReceiptDao.findList(erceipt);
+		workInvoice.setWorkReceiptList(receiptList);
+
 		if(workInvoice!=null){
 			if(workInvoice.getProject()!=null){
 				ProjectRecords project = projectRecordsService.getRuralInfo(workInvoice.getProject().getId());
@@ -347,6 +359,36 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	}
 
 	/**
+	 * 保存发票收款信息
+	 * @param workInvoice
+	 */
+	@Transactional(readOnly = false)
+	public void saveReceipt(WorkInvoice workInvoice) {
+		if(null != workInvoice.getWorkReceiptList()) {
+			//发票收款信息
+			for (WorkInvoiceReceipt receiptInfo : workInvoice.getWorkReceiptList()) {
+				if (receiptInfo.getId() == null) {
+					continue;
+				}
+				//添加发票id
+				receiptInfo.setInvoiceId(workInvoice.getId());
+				//判断删除信息
+				if (WorkInvoiceReceipt.DEL_FLAG_NORMAL.equals(receiptInfo.getDelFlag())) {
+					//判断是否有id  没有则为新增
+					if (StringUtils.isBlank(receiptInfo.getId())) {
+						receiptInfo.preInsert();
+						workInvoiceReceiptDao.insert(receiptInfo);
+					} else {
+						receiptInfo.preUpdate();
+						workInvoiceReceiptDao.update(receiptInfo);
+					}
+				} else {
+					workInvoiceReceiptDao.delete(receiptInfo);
+				}
+			}
+		}
+	}
+	/**
 	 * 分公司提交存储
 	 * @param workInvoice
 	 * @param variables

+ 29 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceController.java

@@ -255,6 +255,35 @@ public class WorkInvoiceController extends BaseController {
 		model.addAttribute("workInvoice", workInvoice);
 		return "modules/workinvoice/" + view;
 	}
+	/**
+	 * 查看,增加,编辑开票管理表单页面
+	 */
+	@RequestMapping(value = "receiptForm")
+	public String receiptForm(WorkInvoice workInvoice, Model model) {
+		model.addAttribute("workInvoice", workInvoice);
+		return "modules/workinvoice/workInvoiceReceiptForm";
+	}
+
+	/**
+	 * 保存收款信息
+	 */
+	@RequestMapping(value = "saveReceipt")
+	public String saveReceipt(WorkInvoice workInvoice, RedirectAttributes redirectAttributes) {
+		workInvoiceService.saveReceipt(workInvoice);
+		addMessage(redirectAttributes, "保留收款信息成功");
+		return "redirect:"+Global.getAdminPath()+"/workinvoice/workInvoice/?repage";
+	}
+
+	/**
+	 * 保存收款信息
+	 */
+	@RequestMapping(value = "saveAffirmReceipt")
+	public String saveAffirmReceipt(WorkInvoice workInvoice, RedirectAttributes redirectAttributes) {
+		workInvoiceService.saveReceipt(workInvoice);
+		workInvoiceService.receiptMoney(workInvoice);
+		addMessage(redirectAttributes, "确认收款信息成功");
+		return "redirect:"+Global.getAdminPath()+"/workinvoice/workInvoice/?repage";
+	}
 
 	/**
 	 * 保存开票管理

+ 92 - 0
src/main/resources/mappings/modules/workinvoice/WorkInvoiceReceiptDao.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.modules.workinvoice.dao.WorkInvoiceReceiptDao">
+    
+	<sql id="workInvoiceColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.invoice_id AS "invoiceId",
+		a.company_name AS "companyName",
+		a.money AS "money",
+		date_format(a.receipt_date, '%Y-%m-%d') AS "receiptDate"
+	</sql>
+	
+    
+	<select id="get" resultType="WorkInvoiceReceipt" >
+		SELECT 
+			<include refid="workInvoiceColumns"/>
+		FROM work_invoice_receipt a
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="WorkInvoiceReceipt" >
+		SELECT 
+			<include refid="workInvoiceColumns"/>
+		FROM work_invoice_receipt a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			and invoice_id = #{invoiceId}
+		</where>
+		ORDER BY a.receipt_date asc
+	</select>
+
+	<select id="queryCount" resultType="int" >
+		SELECT count(1)
+		FROM work_invoice_receipt a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			and invoice_id = #{invoiceId}
+		</where>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO work_invoice_receipt(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			invoice_id,
+			money,
+			company_name,
+			receipt_date
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{invoiceId},
+			#{money},
+			#{companyName},
+			#{receiptDate}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE work_invoice_receipt SET
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			money = #{money},
+			company_name = #{companyName},
+			receipt_date = #{receiptDate}
+
+		WHERE id = #{id}
+	</update>
+
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM work_invoice_receipt
+		WHERE id = #{id}
+	</update>
+</mapper>

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

@@ -132,6 +132,60 @@
             });
         }
 
+        function receiptInvoice(title,url,width,height,target){
+
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+			top.layer.open({
+				type: 2,
+				area: [width, height],
+				title: title,
+				maxmin: true, //开启最大化最小化按钮
+				content: url ,
+				skin:"three-btns",
+				btn: ['保留','确认收款','关闭'],
+				btn1: 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');
+					var top_iframe;
+					if(target){
+						top_iframe = target;//如果指定了iframe,则在改frame中跳转
+					}else{
+						top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					}
+					inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					if(iframeWin.contentWindow.doSubmit(1) ){
+						// top.layer.close(index);//关闭对话框。
+						setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+					}
+				},
+				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');
+					var top_iframe;
+					if(target){
+						top_iframe = target;//如果指定了iframe,则在改frame中跳转
+					}else{
+						top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					}
+					inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					if(iframeWin.contentWindow.doSubmit(2) ){
+						// top.layer.close(index);//关闭对话框。
+						setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+					}
+					return false;
+				},
+				btn3: function(index){
+				}
+			});
+        }
+
         function contractOpenDialogre(title,url,width,height,target){
             if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
                 width='auto';
@@ -444,7 +498,7 @@
 
 						if(d.financeFlag != undefined && d.financeFlag =="1")
 						{
-							xml += "<a href=\"${ctx}/workinvoice/workInvoice/receiptMoney?id=" + d.id + "\" onclick=\"return confirmx('确认该发票已收款吗?', this.href)\"   class=\"op-btn layui-btn\"><i class=\"fa fa-edit\"></i> 收款</a>";
+							xml +="<a href=\"javascript:void(0)\" onclick=\"receiptInvoice('发票收款', '${ctx}/workinvoice/workInvoice/receiptForm?id=" + d.id + "','95%','95%')\" class=\"op-btn layui-btn\" ><i class=\"fa fa-edit\"></i> 收款</a>";
 						}
 						if(d.cancellationFlag != undefined && d.cancellationFlag =="1")
 						{

+ 398 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceReceiptForm.jsp

@@ -0,0 +1,398 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>发票管理</title>
+	<meta name="decorator" content="default"/>
+	<style>
+		td input{
+			margin-left:0px !important;
+			height: 42px !important;
+		}
+		#receiptTable td{
+			padding-left: 0px;
+			padding-right: 0px;
+		}
+	</style>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  var length = $("#workReceiptList tr").length;
+			  var invoiceMoney = $("#invoiceMoney").val();
+			  if(length==0){
+				  parent.layer.msg('请录入收款信息',{icon:5});
+				  return false;
+			  }else{
+			  	var moneys = 0;
+				  for(var i=0; i<length; i++) {
+				  	//获取每一行的汇款金额
+				  	var money = parseFloat(workReceiptList.rows[i].cells[2].getElementsByTagName("INPUT")[0].value);
+					//计算所有汇款综合
+				  	moneys = moneys+money;
+				  }
+			  }
+			  if(obj == 2){
+			  	if(moneys<invoiceMoney){
+					layer.confirm('收款金额小于发票金额,确定收款吗?', {
+						btn: ['确定', '关闭'],
+						btn1: function(index, layero){
+							$("#inputForm").attr("action","${ctx}/workinvoice/workInvoice/saveAffirmReceipt");
+							$("#inputForm").submit();
+							top.layer.close(index);//关闭对话框。
+							parent.layer.close(index);//关闭对话框。
+						},btn2: function(index){
+						}
+					});
+				}
+			  }else{
+			  	if(moneys > invoiceMoney){
+					parent.layer.msg('收款金额不能大于开票金额',{icon:5});
+					return false;
+				}
+				$("#inputForm").attr("action","${ctx}/workinvoice/workInvoice/saveReceipt");
+				  $("#inputForm").submit();
+				  return true;
+			  }
+		  }
+		}
+		$(document).ready(function() {
+			$("#name").focus();
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+
+			laydate.render({
+				elem: '#receiptDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+				event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+				type : 'date'
+				, trigger: 'click'
+			});
+		});
+
+
+
+		function addRow(list, idx, tpl, row){
+			var idx1 = $("#workReceiptList tr").length;
+			bornTemplete(list, idx, tpl, row, idx1);
+		}
+
+		function bornTemplete(list, idx, tpl, row, idx1){
+			$(list).append(Mustache.render(tpl, {
+				idx: idx, delBtn: true, row: row,
+				order:idx1 + 1
+			}));
+			$(list+idx).find("select").each(function(){
+				$(this).val($(this).attr("data-value"));
+			});
+			$(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+				var ss = $(this).attr("data-value").split(',');
+				for (var i=0; i<ss.length; i++){
+					if($(this).val() == ss[i]){
+						$(this).attr("checked","checked");
+					}
+				}
+			});
+
+			laydate.render({
+				elem : (list+idx+"_receiptDate"),
+				event: 'focus',
+				type : 'date'
+				, trigger: 'click',
+				trigger: 'click'
+			});
+		}
+		function delRow(obj, prefix){
+			var id = $(prefix+"_id");
+			var delFlag = $(prefix+"_delFlag");
+			if (id.val() == ""){
+				$(obj).parent().parent().remove();
+			}else if(delFlag.val() == "0"){
+				delFlag.val("1");
+				$(obj).html("&divide;").attr("title", "撤回删除");
+				$(obj).parent().parent().addClass("error");
+				$(obj).parent().parent().addClass("hide");
+			}else if(delFlag.val() == "1"){
+				delFlag.val("0");
+				$(obj).html("&times;").attr("title", "删除");
+				$(obj).parent().parent().removeClass("error");
+			}
+
+		}
+	</script>
+</head>
+<body >
+<div class="single-form view-form">
+	<div class="container">
+		<form:form id="inputForm" modelAttribute="workInvoice" action="${ctx}/workinvoice/workInvoice/saveReceipt" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+
+			<div class="form-group layui-row first lw14">
+				<div class="form-group-label"><h2>基本信息</h2></div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>项目名称:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.project.projectName}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>发票申请编号:</label>
+					<div class="layui-input-block">
+						<div class="input-group">
+							<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.number}"/>
+							<span class="input-group-btn">
+							<label class="form-status"><c:choose><c:when test="${ empty workInvoice.invoiceState}">新添</c:when><c:otherwise>${fns:getDictLabel(workInvoice.invoiceState, 'audit_state','')}</c:otherwise>	</c:choose></label>
+						</span>
+						</div>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>合同名称:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.project.workContractInfo.name}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>项目编号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.project.projectId}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>委托方:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.project.workContractInfo.client.name}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">报告号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workInvoice.project.reportData.number}"/>
+					</div>
+				</div>
+				<%--<div class="layui-item layui-col-sm6">--%>
+					<%--<label class="layui-form-label"><span class="require-item">*</span>所属部门:</label>--%>
+					<%--<div class="layui-input-block">--%>
+						<%--<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.office.name}"/>--%>
+					<%--</div>--%>
+				<%--</div>--%>
+			</div>
+			<div class="form-group layui-row first lw14">
+				<div class="form-group-label"><h2>发票详情</h2></div>
+				<%--<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>上级/本公司开票:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="<c:choose><c:when test="${workInvoice.ext eq '0'}">本公司开票	</c:when><c:when test="${workInvoice.ext eq '1'}">上级公司开票</c:when></c:choose>"/>
+					</div>
+				</div>--%>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>发票类型:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="<c:choose><c:when test="${workInvoice.invoiceType eq '1'}">专票</c:when><c:when test="${workInvoice.invoiceType eq '2'}">普票</c:when></c:choose>"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>实际开票单位:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.client.name}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">纳税人识别号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.orUnicode}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">地址:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.address}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">电话:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.telephone}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">开户银行:</label>
+					<div class="layui-input-block  ">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.bank}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">银行账号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.bankNumber}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>开票金额(元):</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"  id="invoiceMoney" class="form-control layui-input" value="<fmt:formatNumber value="${workInvoice.money}" pattern="#,#00.00"/>"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">开票内容要求:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.content}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">开票人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.drawerName}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">开票时间:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${workInvoice.invoiceDate}" pattern="yyyy-MM-dd"/>"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm12">
+					<label class="layui-form-label">领票时间:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${workInvoice.takeDate}" pattern="yyyy-MM-dd"/>"/>
+					</div>
+				</div>
+			</div>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>发票明细</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container">
+					<table id="contentTable" class="table table-bordered table-condensed details">
+						<thead>
+						<tr>
+							<th><span class="require-item">*</span>发票代码</th>
+							<th><span class="require-item">*</span>发票号</th>
+							<th><span class="require-item">*</span>开票金额</th>
+							<th><span class="require-item">*</span>税率</th>
+							<th><span class="require-item">*</span>金额</th>
+							<th><span class="require-item">*</span>税额</th>
+							<th><span class="require-item">*</span>累计登记金额</th>
+							<th><span class="require-item">*</span>发票状态</th><%--正常--%>
+							<th><span class="require-item">*</span>被退标记</th>
+							<%--<th><span class="require-item">*</span>被退票号</th>
+							<th><span class="require-item">*</span>开票日期</th>--%>
+						</tr>
+						</thead>
+						<tbody id="workAccountList">
+						<c:if test="${not empty workInvoice.workAccountList}">
+						<c:forEach items="${workInvoice.workAccountList}" var="workAccount" varStatus="index">
+							<tr id="workAccountList${index.index}">
+								<td title="${workAccount.code}">
+										${workAccount.code}
+								</td>
+								<td title="${workAccount.number}">
+										${workAccount.number}
+								</td>
+
+								<td title="<fmt:formatNumber value="${workAccount.totalMoney}" pattern="#,#00.00"/>">
+									<fmt:formatNumber value="${workAccount.totalMoney}" pattern="#,#00.00"/>
+								</td>
+								<td title="${workAccount.tax}">
+										${workAccount.tax}
+								</td>
+								<td title="<fmt:formatNumber value="${workAccount.taxMoney}" pattern="#,#00.00"/>">
+									<fmt:formatNumber value="${workAccount.taxMoney}" pattern="#,#00.00"/>
+								</td>
+								<td title="<fmt:formatNumber value="${workAccount.taxRate}" pattern="#,#00.00"/>">
+									<fmt:formatNumber value="${workAccount.taxRate}" pattern="#,#00.00"/>
+								</td>
+								<td title="<fmt:formatNumber value="${workAccount.incomeMoney}" pattern="#,#00.00"/>">
+									<fmt:formatNumber value="${workAccount.incomeMoney}" pattern="#,#00.00"/>
+								</td>
+								<td title="${workAccount.state}">
+										${workAccount.state}
+								</td>
+								<td title="${workAccount.backSign}">
+										${workAccount.backSign}
+								</td>
+								<%--<td title="${workAccount.backNumber}">
+										${workAccount.backNumber}
+								</td>
+								<td title="<fmt:formatDate value="${workInvoice.invoiceDate}" pattern="yyyy-MM-dd"/>">
+									<fmt:formatDate value="${workInvoice.invoiceDate}" pattern="yyyy-MM-dd"/>
+								</td>--%>
+							</tr>
+						</c:forEach>
+						</c:if>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>收款明细</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container">
+					<div class="layui-item nav-btns" style="padding-left:0px;">
+						<a class="nav-btn nav-btn-add"
+						   onclick="addRow('#workReceiptList', workClientBankRowIdx, workClientBankTpl);workClientBankRowIdx = workClientBankRowIdx + 1;"
+						   title="新增"><i class="fa fa-plus"></i> 新增</a>
+					</div>
+					<table id="receiptTable" class="table table-bordered table-condensed details">
+						<thead>
+						<tr>
+							<th><span class="require-item">*</span>汇款单位</th>
+							<th><span class="require-item">*</span>汇款金额</th>
+							<th width="160px"><span class="require-item">*</span>汇款时间</th>
+							<th width="100px">操作</th>
+						</tr>
+						</thead>
+						<tbody id="workReceiptList">
+						</tbody>
+					</table>
+					<script type="text/template" id="workClientBankTpl">//<!--
+                                <tr id="workReceiptList{{idx}}">
+                                    <td class="hide">
+                                        <input id="workReceiptList{{idx}}_id" name="workReceiptList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+                                        <input id="workReceiptList{{idx}}_delFlag" name="workReceiptList[{{idx}}].delFlag" type="hidden" value="0"/>
+                                    </td>
+                                    <td>
+                                        <input id="workReceiptList{{idx}}_companyName" name="workReceiptList[{{idx}}].companyName" value="{{row.companyName}}" style="text-align: center" class="form-control required"/>
+                                    </td>
+                                    <td>
+                                        <input id="workReceiptList{{idx}}_money" name="workReceiptList[{{idx}}].money" value="{{row.money}}" style="text-align: center" class="form-control number required"/>
+                                    </td>
+
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="workReceiptList{{idx}}_receiptDate" name="workReceiptList[{{idx}}].receiptDate" type="text" value="{{row.receiptDate}}" style="text-align: center" class="form-control required datetime"/>
+                                    </td>
+
+                                    <td class="text-center op-td" width="10">
+                                        {{#delBtn}}<span class="op-btn op-btn-delete" onclick="delRow(this, '#workReceiptList{{idx}}')" title="删除"><i class="fa fa-trash"></i>&nbsp;删除</span>{{/delBtn}}
+                                    </td>
+                                </tr>//-->
+					</script>
+				</div>
+			</div>
+			<div class="form-group layui-row page-end"></div>
+		</form:form>
+	</div>
+</div>
+<script type="text/javascript">
+	var workClientBankRowIdx = 0,
+			workClientBankTpl = $("#workClientBankTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
+	$(document).ready(function () {
+		var dataBank = ${fns:toJson(workInvoice.workReceiptList)};
+		for (var i = 0; i < dataBank.length; i++) {
+			addRow('#workReceiptList', workClientBankRowIdx, workClientBankTpl, dataBank[i]);
+			workClientBankRowIdx = workClientBankRowIdx + 1;
+		}
+	});
+
+</script>
+</body>
+</html>

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

@@ -98,12 +98,12 @@
 			</div>
 			<div class="form-group layui-row first lw14">
 				<div class="form-group-label"><h2>发票详情</h2></div>
-				<div class="layui-item layui-col-sm6">
+				<%--<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>上级/本公司开票:</label>
 					<div class="layui-input-block">
 						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="<c:choose><c:when test="${workInvoice.ext eq '0'}">本公司开票	</c:when><c:when test="${workInvoice.ext eq '1'}">上级公司开票</c:when></c:choose>"/>
 					</div>
-				</div>
+				</div>--%>
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>发票类型:</label>
 					<div class="layui-input-block">
@@ -147,7 +147,7 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
-					<label class="layui-form-label"><span class="require-item">*</span>价税合计(元):</label>
+					<label class="layui-form-label"><span class="require-item">*</span>开票金额(元):</label>
 					<div class="layui-input-block">
 						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="<fmt:formatNumber value="${workInvoice.money}" pattern="#,#00.00"/>"/>
 					</div>
@@ -185,7 +185,7 @@
 						<tr>
 							<th><span class="require-item">*</span>发票代码</th>
 							<th><span class="require-item">*</span>发票号</th>
-							<th><span class="require-item">*</span>价税合计</th>
+							<th><span class="require-item">*</span>开票金额</th>
 							<th><span class="require-item">*</span>税率</th>
 							<th><span class="require-item">*</span>金额</th>
 							<th><span class="require-item">*</span>税额</th>
@@ -241,6 +241,38 @@
 					</table>
 				</div>
 			</div>
+			<div class="form-group layui-row">
+			<div class="form-group-label"><h2>发票明细</h2></div>
+			<div class="layui-item layui-col-xs12 form-table-container">
+				<table id="receiptTable" class="table table-bordered table-condensed details">
+					<thead>
+					<tr>
+						<th><span class="require-item">*</span>汇款单位</th>
+						<th><span class="require-item">*</span>汇款金额</th>
+						<th width="160px"><span class="require-item">*</span>汇款时间</th>
+					</tr>
+					</thead>
+					<tbody id="workReceiptList">
+					<c:if test="${not empty workInvoice.workReceiptList}">
+						<c:forEach items="${workInvoice.workReceiptList}" var="receipt" varStatus="index">
+							<tr id="workAccountList${index.index}">
+								<td title="${receipt.companyName}">
+										${receipt.companyName}
+								</td>
+
+								<td title="<fmt:formatNumber value="${receipt.money}" pattern="#,#00.00"/>">
+									<fmt:formatNumber value="${receipt.money}" pattern="#,#00.00"/>
+								</td>
+								<td title="${receipt.receiptDate}">
+										${receipt.receiptDate}
+								</td>
+							</tr>
+						</c:forEach>
+					</c:if>
+					</tbody>
+				</table>
+			</div>
+		</div>
 			<div class="form-group layui-row page-end"></div>
 		</form:form>
 	</div>