Browse Source

开票功能添加实际开票人信息

user5 3 years ago
parent
commit
a29fbc2742

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

@@ -101,6 +101,8 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	private String newDrawer;    		//开票人状态
 	private String newDrawerId;    		//开票人id
 	private String newDrawerName;    	//开票人名称
+	private String actualDrawerId;    		//实际开票人id
+	private String actualDrawerName;    	//实际开票人名称
 	@Override
 	@ExcelField(title="经办人", fieldType=User.class, value="createBy.name", align=2, sort=7)
 	public User getCreateBy() {
@@ -699,4 +701,20 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	public void setNewDrawer(String newDrawer) {
 		this.newDrawer = newDrawer;
 	}
+
+	public String getActualDrawerId() {
+		return actualDrawerId;
+	}
+
+	public void setActualDrawerId(String actualDrawerId) {
+		this.actualDrawerId = actualDrawerId;
+	}
+
+	public String getActualDrawerName() {
+		return actualDrawerName;
+	}
+
+	public void setActualDrawerName(String actualDrawerName) {
+		this.actualDrawerName = actualDrawerName;
+	}
 }

+ 5 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceTwoController.java

@@ -283,6 +283,11 @@ public class WorkInvoiceTwoController extends BaseController {
 		if(StringUtils.isNotBlank(workInvoice.getId())){
 			workInvoiceService.queryDetails(workInvoice);
 		}
+		if(StringUtils.isBlank(workInvoice.getActualDrawerId())){
+			User user = UserUtils.getUser();
+			workInvoice.setActualDrawerId(user.getId());
+			workInvoice.setActualDrawerName(user.getName());
+		}
 		String tabId = request.getParameter("tabId");
 		if("1".equals(tabId)){
 			List<MainDictDetail> billingContentList = DictUtils.getMainDictList("billing_content");

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

@@ -67,7 +67,9 @@
 		acu.name as "accountCheckingUserName",
 		a.new_drawer_id as "newDrawerId",
 		(select name from sys_user where id = a.new_drawer_id) as "newDrawerName",
-		a.new_drawer as "newDrawer"
+		a.new_drawer as "newDrawer",
+		a.actual_drawer_id as "actualDrawerId",
+		(select name from sys_user where id = a.actual_drawer_id) as "actualDrawerName"
 	</sql>
 
 	<sql id="workInvoiceJoins">
@@ -1300,7 +1302,8 @@
 			area_id,
 			area_parent_id,
 			new_drawer_id,
-			new_drawer
+			new_drawer,
+			actual_drawer_id
 		) VALUES (
 			#{id},
 			#{number},
@@ -1344,7 +1347,8 @@
 			#{area.id},
 			(select parent_ids from sys_area where id = #{area.id}),
 		    #{newDrawerId},
-		    #{newDrawer}
+		    #{newDrawer},
+		    #{actualDrawerId}
 		)
 	</insert>
 
@@ -1387,7 +1391,8 @@
 			area_id = #{area.id},
 			area_parent_id = (select parent_ids from sys_area where id = #{area.id}),
 			new_drawer_id = #{newDrawerId},
-			new_drawer = #{newDrawer}
+			new_drawer = #{newDrawer},
+			actual_drawer_id = #{actualDrawerId}
 		WHERE id = #{id}
 	</update>
 	<update id="updateDate">

+ 106 - 0
src/main/webapp/WEB-INF/tags/sys/treeselectNewDrawer.tag

@@ -0,0 +1,106 @@
+<%@ tag language="java" pageEncoding="UTF-8"%>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ attribute name="id" type="java.lang.String" required="true" description="编号"%>
+<%@ attribute name="name" type="java.lang.String" required="true" description="隐藏域名称(ID)"%>
+<%@ attribute name="value" type="java.lang.String" required="true" description="隐藏域值(ID)"%>
+<%@ attribute name="labelName" type="java.lang.String" required="true" description="输入框名称(Name)"%>
+<%@ attribute name="labelValue" type="java.lang.String" required="true" description="输入框值(Name)"%>
+<%@ attribute name="title" type="java.lang.String" required="true" description="选择框标题"%>
+<%@ attribute name="url" type="java.lang.String" required="true" description="树结构数据地址"%>
+<%@ attribute name="checked" type="java.lang.Boolean" required="false" description="是否显示复选框,如果不需要返回父节点,请设置notAllowSelectParent为true"%>
+<%@ attribute name="extId" type="java.lang.String" required="false" description="排除掉的编号(不能选择的编号)"%>
+<%@ attribute name="isAll" type="java.lang.Boolean" required="false" description="是否列出全部数据,设置true则不进行数据权限过滤(目前仅对Office有效)"%>
+<%@ attribute name="notAllowSelectRoot" type="java.lang.Boolean" required="false" description="不允许选择根节点"%>
+<%@ attribute name="notAllowSelectParent" type="java.lang.Boolean" required="false" description="不允许选择父节点"%>
+<%@ attribute name="module" type="java.lang.String" required="false" description="过滤栏目模型(只显示指定模型,仅针对CMS的Category树)"%>
+<%@ attribute name="selectScopeModule" type="java.lang.Boolean" required="false" description="选择范围内的模型(控制不能选择公共模型,不能选择本栏目外的模型)(仅针对CMS的Category树)"%>
+<%@ attribute name="allowClear" type="java.lang.Boolean" required="false" description="是否允许清除"%>
+<%@ attribute name="allowInput" type="java.lang.Boolean" required="false" description="文本框可填写"%>
+<%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式"%>
+<%@ attribute name="cssStyle" type="java.lang.String" required="false" description="css样式"%>
+<%@ attribute name="smallBtn" type="java.lang.Boolean" required="false" description="缩小按钮显示"%>
+<%@ attribute name="hideBtn" type="java.lang.Boolean" required="false" description="是否显示按钮"%>
+<%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%>
+<%@ attribute name="dataMsgRequired" type="java.lang.String" required="false" description=""%>
+<%@ attribute name="rule" type="java.lang.String" required="false" description="考勤规则模块用"%>
+	<input id="${id}Id" name="${name}" class="${cssClass}" type="hidden" value="${value}" />
+	<div class="input-group">
+		<input id="${id}Name" placeholder="请选择${title}" name="${labelName}" ${allowInput?'':'readonly="readonly"'}  type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"
+		class="${cssClass}" style="${cssStyle}"/>
+       		 <span class="input-group-btn">
+	       		 <button type="button"  id="${id}Button1" class="btn <c:if test="${fn:contains(cssClass, 'input-sm')}"> btn-sm </c:if><c:if test="${fn:contains(cssClass, 'input-lg')}"> btn-lg </c:if>  btn-primary ${disabled} ${hideBtn ? 'hide' : ''}"><i class="fa fa-search"></i>
+	             </button>
+       		 </span>
+
+    </div>
+	 <label id="${id}Name-error" class="error" for="${id}Name" style="display:none"></label>
+<script type="text/javascript">
+	$("#${id}Button1, #${id}Name").click(function(){
+		// 是否限制选择,如果限制,设置为disabled
+		if ($("#${id}Button1").hasClass("disabled")){
+			return true;
+		}
+		// 正常打开
+		top.layer.open({
+		    type: 2,
+		    area: ['300px', '420px'],
+		    title:"选择${title}",
+		    ajaxData:{selectIds: $("#${id}Id").val()},
+		    content: "${ctx}/tag/treeselect?url="+encodeURIComponent("${url}")+"&module=${module}&checked=${checked}&extId=${extId}&isAll=${isAll}&unit=${unit}" ,
+		    btn: ['确定', '关闭']
+    	       ,yes: function(index, layero){ //或者使用btn1
+						var tree = layero.find("iframe")[0].contentWindow.tree;//h.find("iframe").contents();
+						var ids = [], names = [], nodes = [];
+						if ("${checked}" == "true"){
+							nodes = tree.getCheckedNodes(true);
+						}else{
+							nodes = tree.getSelectedNodes();
+						}
+						for(var i=0; i<nodes.length; i++) {//<c:if test="${checked && notAllowSelectParent}">
+							if (nodes[i].isParent){
+								continue; // 如果为复选框选择,则过滤掉父节点
+							}//</c:if><c:if test="${notAllowSelectRoot}">
+							if (nodes[i].level == 0){
+								//top.$.jBox.tip("不能选择根节点("+nodes[i].name+")请重新选择。");
+								// top.layer.msg("不能选择根节点("+nodes[i].name+")请重新选择。", {icon: 0});
+								// return false;
+							}//</c:if><c:if test="${notAllowSelectParent}">
+							if (nodes[i].isParent){
+								//top.$.jBox.tip("不能选择父节点("+nodes[i].name+")请重新选择。");
+								//layer.msg('有表情地提示');
+								// top.layer.msg("不能选择父节点("+nodes[i].name+")请重新选择。", {icon: 0});
+								// return false;
+							}//</c:if><c:if test="${not empty module && selectScopeModule}">
+							if (nodes[i].module == ""){
+								//top.$.jBox.tip("不能选择公共模型("+nodes[i].name+")请重新选择。");
+								// top.layer.msg("不能选择公共模型("+nodes[i].name+")请重新选择。", {icon: 0});
+								// return false;
+							}else if (nodes[i].module != "${module}"){
+								//top.$.jBox.tip("不能选择当前栏目以外的栏目模型,请重新选择。");
+								// top.layer.msg("不能选择当前栏目以外的栏目模型,请重新选择。", {icon: 0});
+								// return false;
+							}//</c:if>
+							ids.push(nodes[i].id);
+							names.push(nodes[i].name);//<c:if test="${!checked}">
+							break; // 如果为非复选框选择,则返回第一个选择  </c:if>
+						}
+						$("#${id}Id").val(ids.join(",").replace(/u_/ig,"")).change();
+						$("#${id}Name").val(names.join(",")).change();
+						$("#${id}Name").focus();
+						var rule="${rule}";
+						var id="${id}";
+						if(rule=='rule'){
+                            var _placeName =  id.split("_")[0]+"_placeName";
+                            var _itude =  id.split("_")[0]+"_itude";
+                            $("#"+_placeName).val("");
+                            $("#"+_itude).val("");
+						}
+						top.layer.close(index);
+				    	       },
+    	cancel: function(index){ //或者使用btn2
+    	           //按钮【按钮二】的回调
+    	       }
+		});
+
+	});
+</script>

+ 7 - 7
src/main/webapp/WEB-INF/tags/sys/treeselectact.tag

@@ -28,9 +28,9 @@
 		class="${cssClass}" style="${cssStyle}"/>
        		 <span class="input-group-btn">
 	       		 <button type="button"  id="${id}Button" class="btn <c:if test="${fn:contains(cssClass, 'input-sm')}"> btn-sm </c:if><c:if test="${fn:contains(cssClass, 'input-lg')}"> btn-lg </c:if>  btn-primary ${disabled} ${hideBtn ? 'hide' : ''}"><i class="fa fa-search"></i>
-	             </button> 
+	             </button>
        		 </span>
-       		
+
     </div>
 	 <label id="${id}Name-error" class="error" for="${id}Name" style="display:none"></label>
 <script type="text/javascript">
@@ -39,9 +39,9 @@
 		if ($("#${id}Button").hasClass("disabled")){
 			return true;
 		}
-		// 正常打开	
+		// 正常打开
 		top.layer.open({
-		    type: 2, 
+		    type: 2,
 		    area: ['300px', '420px'],
 		    title:"选择${title}",
 		    ajaxData:{selectIds: $("#${id}Id").val()},
@@ -92,7 +92,7 @@
     	cancel: function(index){ //或者使用btn2
     	           //按钮【按钮二】的回调
     	       }
-		}); 
-	
+		});
+
 	});
-</script>
+</script>

+ 7 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllForm.jsp

@@ -1008,6 +1008,13 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<sys:treeselectNewDrawer id="actualDrawer" name="actualDrawerId" value="${workInvoice.actualDrawerId}" labelName="actualDrawerName" labelValue="${workInvoice.actualDrawerName}"
+												 cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+					</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  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 7 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllModify.jsp

@@ -902,6 +902,13 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<sys:treeselectNewDrawer id="actualDrawer" name="actualDrawerId" value="${workInvoice.actualDrawerId}" labelName="actualDrawerName" labelValue="${workInvoice.actualDrawerName}"
+												 cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+					</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  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 6 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllReceiptForm.jsp

@@ -335,6 +335,12 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workInvoice.accountCheckingUserName}" style="background-color: #f1f1f1"/>

+ 7 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoForm.jsp

@@ -977,6 +977,13 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<sys:treeselectNewDrawer id="actualDrawer" name="actualDrawerId" value="${workInvoice.actualDrawerId}" labelName="actualDrawerName" labelValue="${workInvoice.actualDrawerName}"
+												 cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+					</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  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 6 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoModify.jsp

@@ -481,6 +481,12 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >

+ 6 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoReceiptForm.jsp

@@ -335,6 +335,12 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workInvoice.accountCheckingUserName}" style="background-color: #f1f1f1"/>

+ 6 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAuditEnd.jsp

@@ -626,6 +626,12 @@
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">实际开票人:</label>
+				<div class="layui-input-block  with-icon">
+					<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">对账人:</label>
 				<div class="layui-input-block  with-icon">
 					<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >

+ 7 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceModify.jsp

@@ -986,6 +986,13 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<sys:treeselectNewDrawer id="actualDrawer" name="actualDrawerId" value="${workInvoice.actualDrawerId}" labelName="actualDrawerName" labelValue="${workInvoice.actualDrawerName}"
+												 cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+					</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  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 6 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceModifyInfo.jsp

@@ -600,6 +600,12 @@
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">实际开票人:</label>
+				<div class="layui-input-block  with-icon">
+					<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">对账人:</label>
 				<div class="layui-input-block  with-icon">
 					<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >

+ 7 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoForm.jsp

@@ -1013,6 +1013,13 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<sys:treeselectNewDrawer id="actualDrawer" name="actualDrawerId" value="${workInvoice.actualDrawerId}" labelName="actualDrawerName" labelValue="${workInvoice.actualDrawerName}"
+										cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+					</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  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 7 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoModify.jsp

@@ -964,6 +964,13 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<sys:treeselectNewDrawer id="actualDrawer" name="actualDrawerId" value="${workInvoice.actualDrawerId}" labelName="actualDrawerName" labelValue="${workInvoice.actualDrawerName}"
+												 cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+					</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  with-icon">
 						<sys:treeselect id="master" name="accountCheckingUserId" value="${workInvoice.accountCheckingUserId}" labelName="accountCheckingUserName" labelValue="${workInvoice.accountCheckingUserName}"

+ 6 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceView.jsp

@@ -206,6 +206,12 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">实际开票人:</label>
+					<div class="layui-input-block  with-icon">
+						<input type="text"  readonly="true" value="${workInvoice.actualDrawerName}"  class="form-control layui-input" style="background-color: #f1f1f1" >
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">对账人:</label>
 					<div class="layui-input-block  with-icon">
 						<input type="text"  readonly="true" value="${workInvoice.accountCheckingUserName}"  class="form-control layui-input" style="background-color: #f1f1f1" >