user5 10 місяців тому
батько
коміт
89b2025995
17 змінених файлів з 575 додано та 61 видалено
  1. 9 0
      src/main/java/com/jeeplus/modules/workinvoice/entity/WorkInvoice.java
  2. 12 5
      src/main/resources/mappings/modules/workinvoice/WorkInvoiceDao.xml
  3. 8 1
      src/main/webapp/webpage/modules/filialeWorkInvoice/filialeConditionWorkInvoiceAudit.jsp
  4. 8 1
      src/main/webapp/webpage/modules/filialeWorkInvoice/filialeWorkInvoiceAudit.jsp
  5. 8 1
      src/main/webapp/webpage/modules/filialeWorkInvoice/filialeWorkInvoiceAuditEnd.jsp
  6. 8 1
      src/main/webapp/webpage/modules/workinvoice/conditionWorkInvoiceAudit.jsp
  7. 50 10
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAudit.jsp
  8. 7 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAuditEnd.jsp
  9. 38 9
      src/main/webapp/webpage/modules/workinvoice/workInvoiceExamineAudit.jsp
  10. 42 13
      src/main/webapp/webpage/modules/workinvoice/workInvoiceExamineAuditEnd.jsp
  11. 126 7
      src/main/webapp/webpage/modules/workinvoice/workInvoiceExamineModify.jsp
  12. 78 3
      src/main/webapp/webpage/modules/workinvoice/workInvoiceModify.jsp
  13. 8 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAudit.jsp
  14. 8 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAuditEnd.jsp
  15. 78 3
      src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectModify.jsp
  16. 79 3
      src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoForm.jsp
  17. 8 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceView.jsp

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

@@ -103,6 +103,7 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 
 	private String newDrawer;    		//开票人状态
 	private String newDrawerId;    		//开票人id
+	private String idCard;    		//开票人身份证号
 	private String newDrawerName;    	//开票人名称
 	private String actualDrawerId;    		//实际开票人id
 	private String actualDrawerEmailAddress;    		//实际开票人邮箱
@@ -938,4 +939,12 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	public void setRedNotStatusList(List<String> redNotStatusList) {
 		this.redNotStatusList = redNotStatusList;
 	}
+
+	public String getIdCard() {
+		return idCard;
+	}
+
+	public void setIdCard(String idCard) {
+		this.idCard = idCard;
+	}
 }

+ 12 - 5
src/main/resources/mappings/modules/workinvoice/WorkInvoiceDao.xml

@@ -72,7 +72,8 @@
 		a.cancellation_state as "cancellationState",
 		a.red_invoice_flag as "redInvoiceFlag",
 		a.red_invoice_relevancy_id as "redInvoiceRelevancyId",
-		a.red_invoice_relevancy_number as "redInvoiceRelevancyNumber"
+		a.red_invoice_relevancy_number as "redInvoiceRelevancyNumber",
+		a.id_card as "idCard"
 	</sql>
 
 	<sql id="newWorkInvoiceColumns">
@@ -139,7 +140,8 @@
 		a.electronic_invoice_flag as "electronicInvoiceFlag",
 		a.red_invoice_flag as "redInvoiceFlag",
 		a.red_invoice_relevancy_id as "redInvoiceRelevancyId",
-		a.red_invoice_relevancy_number as "redInvoiceRelevancyNumber"
+		a.red_invoice_relevancy_number as "redInvoiceRelevancyNumber",
+		a.id_card as "idCard"
 	</sql>
 
 	<sql id="workInvoiceJoins">
@@ -231,7 +233,8 @@
 		acu.name as "accountCheckingUserName",
 		a.red_invoice_flag as "redInvoiceFlag",
 		a.red_invoice_relevancy_id as "redInvoiceRelevancyId",
-		a.red_invoice_relevancy_number as "redInvoiceRelevancyNumber"
+		a.red_invoice_relevancy_number as "redInvoiceRelevancyNumber",
+		a.id_card as "idCard"
 	</sql>
 
 	<resultMap type="WorkInvoice" id="InvoiceMap">
@@ -276,6 +279,7 @@
 		<result property="accountCheckingUserId" column="accountCheckingUserId"/>
 		<result property="areaId" column="area.id"/>
 		<result property="accountCheckingUserName" column="accountCheckingUserName"/>
+		<result property="idCard" column="idCard"/>
 		<association property="client" javaType="com.jeeplus.modules.workclientinfo.entity.WorkClientInfo">
 			<id property="id" column="clientId" />
 			<result property="name" column="clientName"/>
@@ -1846,7 +1850,8 @@
 			actual_drawer_id,
 			red_invoice_flag,
 			red_invoice_relevancy_id,
-			red_invoice_relevancy_number
+			red_invoice_relevancy_number,
+			id_card
 		) VALUES (
 			#{id},
 			#{number},
@@ -1895,7 +1900,8 @@
 		    #{actualDrawerId},
 		    #{redInvoiceFlag},
 		    #{redInvoiceRelevancyId},
-		    #{redInvoiceRelevancyNumber}
+		    #{redInvoiceRelevancyNumber},
+		    #{idCard}
 		)
 	</insert>
 
@@ -1954,6 +1960,7 @@
 			,red_invoice_flag = #{redInvoiceFlag}
 			,red_invoice_relevancy_id = #{redInvoiceRelevancyId}
 			,red_invoice_relevancy_number = #{redInvoiceRelevancyNumber}
+			,id_card = #{idCard}
 		WHERE id = #{id}
 	</update>
 	<update id="updateDate">

+ 8 - 1
src/main/webapp/webpage/modules/filialeWorkInvoice/filialeConditionWorkInvoiceAudit.jsp

@@ -228,7 +228,14 @@
 			<div class="layui-item layui-col-sm6 count2">
 				<label class="layui-form-label">姓名:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+				</div>
+			</div>
+
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">身份证号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">

+ 8 - 1
src/main/webapp/webpage/modules/filialeWorkInvoice/filialeWorkInvoiceAudit.jsp

@@ -471,7 +471,14 @@
 				<div class="layui-item layui-col-sm6 count2">
 					<label class="layui-form-label">姓名:</label>
 					<div class="layui-input-block">
-						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+					</div>
+				</div>
+
+				<div class="layui-item layui-col-sm6 count2">
+					<label class="layui-form-label">身份证号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">

+ 8 - 1
src/main/webapp/webpage/modules/filialeWorkInvoice/filialeWorkInvoiceAuditEnd.jsp

@@ -611,7 +611,14 @@
 			<div class="layui-item layui-col-sm6 count2">
 				<label class="layui-form-label">姓名:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+				</div>
+			</div>
+
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">身份证号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">

+ 8 - 1
src/main/webapp/webpage/modules/workinvoice/conditionWorkInvoiceAudit.jsp

@@ -228,7 +228,14 @@
 			<div class="layui-item layui-col-sm6 count2">
 				<label class="layui-form-label">姓名:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+				</div>
+			</div>
+
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">身份证号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">

+ 50 - 10
src/main/webapp/webpage/modules/workinvoice/workInvoiceAudit.jsp

@@ -50,6 +50,16 @@
 					}
 				}
 			});
+
+			var radioVal = '${workInvoice.newDrawer}';
+			//专票必填
+			if(radioVal == 1){
+				$(".count2").hide();
+				$(".count1").show();
+			}else if(radioVal == 2){
+				$(".count1").hide();
+				$(".count2").show();
+			}
 		});
 	</script>
 </head>
@@ -113,54 +123,84 @@
 		</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>
+				<label class="layui-form-label"><span class="require-item" style=" font-weight: bold;">*<c:choose><c:when test="${workInvoice.invoiceType eq '2'}">发票类型:</c:when></c:choose></span><c:choose><c:when test="${workInvoice.invoiceType eq '1'}">发票类型:</c:when></c:choose></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>"/>
+					<input htmlEscape="false" readonly="true" id="invoiceType"  class="form-control layui-input" <c:choose><c:when test="${workInvoice.invoiceType eq '2'}"> style=" font-weight: bold;color: red;" </c:when></c:choose> 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>
+				<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>"/>
+					<input htmlEscape="false" readonly="true" id="newDrawer"  class="form-control layui-input" value="<c:choose><c:when test="${workInvoice.newDrawer eq '1'}">企业开票</c:when><c:when test="${workInvoice.newDrawer eq '2'}">个人开票</c:when></c:choose>"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label double-line">发票申请编号:</label>
+				<div class="layui-input-block">
+					<div class="input-group">
+						<form:input path="number" htmlEscape="false" readonly="true"   class="form-control layui-input"/>
+						<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 count1">
 				<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">
+			<div class="layui-item layui-col-sm6 count1">
 				<label class="layui-form-label">纳税人识别号:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.orUnicode}"/>
+					<input htmlEscape="false" readonly="true" id="orUnicode"   class="form-control layui-input" value="${workInvoice.orUnicode}"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<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">
+			<div class="layui-item layui-col-sm6 count1">
 				<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">
+			<div class="layui-item layui-col-sm6 count1">
 				<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">
+			<div class="layui-item layui-col-sm6 count1">
 				<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 count2">
+				<label class="layui-form-label">姓名:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">身份证号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
+				</div>
+			</div>
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">收款类型:</label>
 				<div class="layui-input-block">

+ 7 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceAuditEnd.jsp

@@ -659,7 +659,13 @@
 			<div class="layui-item layui-col-sm6 count2">
 				<label class="layui-form-label">姓名:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">身份证号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">

+ 38 - 9
src/main/webapp/webpage/modules/workinvoice/workInvoiceExamineAudit.jsp

@@ -81,6 +81,16 @@
 				var d=this.length-endStr.length;
 				return (d>=0&&this.lastIndexOf(endStr)==d)
 			}
+
+			var radioVal = '${workInvoice.newDrawer}';
+			//专票必填
+			if(radioVal == 1){
+				$(".count2").hide();
+				$(".count1").show();
+			}else if(radioVal == 2){
+				$(".count1").hide();
+				$(".count2").show();
+			}
 		});
 
 		function addRow(list, idx, tpl, row,flag){
@@ -488,13 +498,19 @@
                         </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" style=" font-weight: bold;">*<c:choose><c:when test="${workInvoice.invoiceType eq '2'}">发票类型:</c:when></c:choose></span><c:choose><c:when test="${workInvoice.invoiceType eq '1'}">发票类型:</c:when></c:choose></label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true" id="invoiceType"  class="form-control layui-input" <c:choose><c:when test="${workInvoice.invoiceType eq '2'}"> style=" font-weight: bold;color: red;" </c:when></c:choose> 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" id="invoiceType"  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>"/>
+						<input htmlEscape="false" readonly="true" id="newDrawer"  class="form-control layui-input" value="<c:choose><c:when test="${workInvoice.newDrawer eq '1'}">企业开票</c:when><c:when test="${workInvoice.newDrawer eq '2'}">个人开票</c:when></c:choose>"/>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
-					<label class="layui-form-label">发票申请编号:</label>
+					<label class="layui-form-label double-line">发票申请编号:</label>
 					<div class="layui-input-block">
 						<div class="input-group">
 							<form:input path="number" htmlEscape="false" readonly="true"   class="form-control layui-input"/>
@@ -504,42 +520,55 @@
 						</div>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6">
+				<div class="layui-item layui-col-sm6 count1">
 					<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">
+				<div class="layui-item layui-col-sm6 count1">
 					<label class="layui-form-label">纳税人识别号:</label>
 					<div class="layui-input-block">
 						<input htmlEscape="false" readonly="true" id="orUnicode"   class="form-control layui-input" value="${workInvoice.orUnicode}"/>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6">
+				<div class="layui-item layui-col-sm6 count1">
 					<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">
+				<div class="layui-item layui-col-sm6 count1">
 					<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">
+				<div class="layui-item layui-col-sm6 count1">
 					<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">
+				<div class="layui-item layui-col-sm6 count1">
 					<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 count2">
+					<label class="layui-form-label">姓名:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 count2">
+					<label class="layui-form-label">身份证号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">收款类型:</label>
 					<div class="layui-input-block">

+ 42 - 13
src/main/webapp/webpage/modules/workinvoice/workInvoiceExamineAuditEnd.jsp

@@ -119,6 +119,16 @@
                 var d=this.length-endStr.length;
                 return (d>=0&&this.lastIndexOf(endStr)==d)
             }
+
+			var radioVal = '${workInvoice.newDrawer}';
+			//专票必填
+			if(radioVal == 1){
+				$(".count2").hide();
+				$(".count1").show();
+			}else if(radioVal == 2){
+				$(".count1").hide();
+				$(".count2").show();
+			}
 		});
 
         function addRow(list, idx, tpl, row,flag){
@@ -519,20 +529,26 @@
 		</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-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" style=" font-weight: bold;">*<c:choose><c:when test="${workInvoice.invoiceType eq '2'}">发票类型:</c:when></c:choose></span><c:choose><c:when test="${workInvoice.invoiceType eq '1'}">发票类型:</c:when></c:choose></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>"/>
+					<input htmlEscape="false" readonly="true" id="invoiceType"  class="form-control layui-input" <c:choose><c:when test="${workInvoice.invoiceType eq '2'}"> style=" font-weight: bold;color: red;" </c:when></c:choose> 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>
 			<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" id="invoiceType"  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>"/>
+					<input htmlEscape="false" readonly="true" id="newDrawer"  class="form-control layui-input" value="<c:choose><c:when test="${workInvoice.newDrawer eq '1'}">企业开票</c:when><c:when test="${workInvoice.newDrawer eq '2'}">个人开票</c:when></c:choose>"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
-				<label class="layui-form-label">发票申请编号:</label>
+				<label class="layui-form-label double-line">发票申请编号:</label>
 				<div class="layui-input-block">
 					<div class="input-group">
 						<form:input path="number" htmlEscape="false" readonly="true"   class="form-control layui-input"/>
@@ -542,42 +558,55 @@
 					</div>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<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">
+			<div class="layui-item layui-col-sm6 count1">
 				<label class="layui-form-label">纳税人识别号:</label>
 				<div class="layui-input-block">
 					<input htmlEscape="false" readonly="true" id="orUnicode"   class="form-control layui-input" value="${workInvoice.orUnicode}"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6">
+			<div class="layui-item layui-col-sm6 count1">
 				<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">
+			<div class="layui-item layui-col-sm6 count1">
 				<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">
+			<div class="layui-item layui-col-sm6 count1">
 				<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">
+			<div class="layui-item layui-col-sm6 count1">
 				<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 count2">
+				<label class="layui-form-label">姓名:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">身份证号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
+				</div>
+			</div>
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">收款类型:</label>
 				<div class="layui-input-block">

+ 126 - 7
src/main/webapp/webpage/modules/workinvoice/workInvoiceExamineModify.jsp

@@ -38,6 +38,20 @@
 					}
 				}
 
+				var newDrawer=$('input:radio[name="newDrawer"]:checked').val();
+				if(null == newDrawer || undefined == newDrawer || '' == newDrawer){
+					parent.layer.msg("请选择开票类型",{icon:0});
+					return false;
+				}
+				if (newDrawer != 2) {
+				} else {
+					var idCard = $("#idCard").val();
+					if(!submitValidateIDCard(idCard)){
+						layer.msg("身份证号不正确,请重新输入",{icon:2});
+						return false;
+					}
+				}
+
 
 				var money = $("#money").val();
 				var redInvoice=$('input:radio[name="redInvoiceFlag"]:checked').val();
@@ -112,6 +126,19 @@
 					form.render();
 				})
 
+
+				form.on('radio(newDrawerRadio)',function (event) {
+					var radioVal = $(this).val();
+					if(radioVal == 1 || radioVal == 1){
+						$(".count2").hide();
+						$(".count1").show();
+					}else if(radioVal == 2 || radioVal == 2){
+						$(".count1").hide();
+						$(".count2").show();
+					}
+					form.render();
+				})
+
 			});
 
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
@@ -201,6 +228,19 @@
 			$("#attachment_btn").click(function () {
 				$("#attachment_file").click();
 			});
+
+
+			var newDrawerRadio = '${workInvoice.newDrawer}';//后端获取值
+			if(undefined == newDrawerRadio || null == newDrawerRadio || '' == newDrawerRadio || newDrawerRadio == "1"){
+				document.getElementsByName("newDrawer")[0].checked = true;
+				$(".count2").hide();
+				$(".count1").show();
+			}else{
+				document.getElementsByName("newDrawer")[1].checked = true;
+				$(".count1").hide();
+				$(".count2").show();
+			}
+
         });
         function setValuee(obj){
             $.ajax({
@@ -760,6 +800,58 @@
 				obj.value = obj.value.replace(reg, regStrs[i][1]);
 			}
 		}
+		function validateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				layer.msg("身份证号不正确,请重新输入",{icon:2});
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					layer.msg("身份证号不正确,请重新输入",{icon:2});
+					return false;
+				}
+			}
+		}
+		function submitValidateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					return false;
+				}
+			}
+			return true
+		}
+
+		function validateChecksum(idCard) {
+			const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 加权因子
+			const checksumDigits = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; // 校验码
+
+			// 计算加权和
+			let sum = 0;
+			for (let i = 0; i < 17; i++) {
+				sum += parseInt(idCard[i]) * weights[i];
+			}
+
+			// 计算校验码
+			const checkDigit = checksumDigits[sum % 11];
+
+			// 比较身份证号的最后一位与计算的校验码
+			return checkDigit === idCard[17].toUpperCase();
+		}
 	</script>
 </head>
 <body>
@@ -889,6 +981,13 @@
 					</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 type="radio" name="newDrawer" lay-filter="newDrawerRadio" title="企业开票" value="1">
+						<input type="radio" name="newDrawer" lay-filter="newDrawerRadio" title="个人开票" value="2">
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 count1">
 					<label class="layui-form-label"><span class="require-item">*</span>实际开票单位:</label>
 					<div class="layui-input-block readOnlyFFF with-icon">
 						<sys:gridselect url="${ctx}/workinvoice/workInvoice/selectclient" id="client" name="client.id"  value="${workInvoice.client.id}"  title="选择开票单位" labelName="workInvoice.client.name"
@@ -896,34 +995,54 @@
 						</td>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6">
+				<div class="layui-item layui-col-sm6 count1">
 					<label class="layui-form-label"><span class="require-item invoicetype">*</span>纳税人识别号:</label>
 					<div class="layui-input-block">
 						<form:input id="orUnicode" path="orUnicode" placeholder="请输入纳税人识别码" htmlEscape="false"    class="form-control isUscCode layui-input"/>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6">
+				<div class="layui-item layui-col-sm6 count1">
 					<label class="layui-form-label"><span class="require-item invoicetype">*</span>注册地址:</label>
 					<div class="layui-input-block">
 						<form:input id="address" path="address" placeholder="请输入注册地址" htmlEscape="false"    class="form-control layui-input"/>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6">
+				<div class="layui-item layui-col-sm6 count1">
 					<label class="layui-form-label"><span class="require-item invoicetype">*</span>电话:</label>
 					<div class="layui-input-block">
 						<form:input id="telephone" path="telephone" placeholder="请输入电话" htmlEscape="false"    class="form-control isTel layui-input"/>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6">
+				<div class="layui-item layui-col-sm6 count1">
 					<label class="layui-form-label"><span class="require-item invoicetype">*</span>开户银行:</label>
 					<div class="layui-input-block">
-						<form:input id ="bank"  path="bank" htmlEscape="false" placeholder="请输入开户银行"  class="form-control layui-input"/>
+						<select id="bank" name="bank" value="${workInvoice.bank}" lay-filter="bankFilter"></select>
+						<span id="bankRemarks" class="spanzj" style="color:red;"></span>
+							<%--<form:input id ="bank"  path="bank" htmlEscape="false" placeholder="请输入开户银行"  class="form-control layui-input"/>--%>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6">
+				<div class="layui-item layui-col-sm6 count1">
 					<label class="layui-form-label"><span class="require-item invoicetype">*</span>银行账号:</label>
 					<div class="layui-input-block">
-						<form:input id="bankNumber" path="bankNumber" htmlEscape="false" placeholder="请输入银行账号"  class="form-control layui-input"/>
+						<form:input id="bankNumber" path="bankNumber" htmlEscape="false" readonly="true" placeholder="请输入银行账号"  class="form-control number layui-input"/>
+					</div>
+				</div>
+				<div class="layui-form-item count2">
+					<div class="layui-item layui-col-sm6">
+						<label class="layui-form-label"><span class="require-item">*</span>姓名:</label>
+						<div class="layui-input-block">
+							<form:input id="newDrawerId" path="newDrawerId" htmlEscape="false"  placeholder="请输入姓名"  class="form-control layui-input"/>
+
+								<%--<sys:treeselect id="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
+                                                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">
+							<form:input path="idCard" htmlEscape="false" onchange="validateIDCard(this.value);" class="form-control idCard layui-input required"/>
+						</div>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">

+ 78 - 3
src/main/webapp/webpage/modules/workinvoice/workInvoiceModify.jsp

@@ -38,6 +38,20 @@
 					}
 				}
 
+				var newDrawer=$('input:radio[name="newDrawer"]:checked').val();
+				if(null == newDrawer || undefined == newDrawer || '' == newDrawer){
+					parent.layer.msg("请选择开票类型",{icon:0});
+					return false;
+				}
+				if (newDrawer != 2) {
+				} else {
+					var idCard = $("#idCard").val();
+					if(!submitValidateIDCard(idCard)){
+						layer.msg("身份证号不正确,请重新输入",{icon:2});
+						return false;
+					}
+				}
+
 				var invoiceType=$('input:radio[name="invoiceType"]:checked').val();
 				if(invoiceType == 1){
 					var bank = $("#bank").val();
@@ -919,6 +933,58 @@
 				obj.value = obj.value.replace(reg, regStrs[i][1]);
 			}
 		}
+		function validateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				layer.msg("身份证号不正确,请重新输入",{icon:2});
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					layer.msg("身份证号不正确,请重新输入",{icon:2});
+					return false;
+				}
+			}
+		}
+		function submitValidateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					return false;
+				}
+			}
+			return true
+		}
+
+		function validateChecksum(idCard) {
+			const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 加权因子
+			const checksumDigits = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; // 校验码
+
+			// 计算加权和
+			let sum = 0;
+			for (let i = 0; i < 17; i++) {
+				sum += parseInt(idCard[i]) * weights[i];
+			}
+
+			// 计算校验码
+			const checkDigit = checksumDigits[sum % 11];
+
+			// 比较身份证号的最后一位与计算的校验码
+			return checkDigit === idCard[17].toUpperCase();
+		}
 	</script>
 </head>
 <body>
@@ -1096,9 +1162,18 @@
 				<div class="layui-form-item count2">
 					<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="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
-											cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+						<div class="layui-input-block">
+							<form:input id="newDrawerId" path="newDrawerId" htmlEscape="false"  placeholder="请输入姓名"  class="form-control layui-input"/>
+
+								<%--<sys:treeselect id="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
+                                                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">
+							<form:input path="idCard" htmlEscape="false" onchange="validateIDCard(this.value);" class="form-control idCard layui-input required"/>
 						</div>
 					</div>
 				</div>

+ 8 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAudit.jsp

@@ -596,7 +596,14 @@
 				<div class="layui-item layui-col-sm6 count2">
 					<label class="layui-form-label">姓名:</label>
 					<div class="layui-input-block">
-						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+					</div>
+				</div>
+
+				<div class="layui-item layui-col-sm6 count2">
+					<label class="layui-form-label">身份证号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">

+ 8 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAuditEnd.jsp

@@ -640,7 +640,14 @@
 			<div class="layui-item layui-col-sm6 count2">
 				<label class="layui-form-label">姓名:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+				</div>
+			</div>
+
+			<div class="layui-item layui-col-sm6 count2">
+				<label class="layui-form-label">身份证号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"   class="form-control layui-input" value="${workInvoice.idCard}"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">

+ 78 - 3
src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectModify.jsp

@@ -38,6 +38,20 @@
 					}
 				}
 
+				var newDrawer=$('input:radio[name="newDrawer"]:checked').val();
+				if(null == newDrawer || undefined == newDrawer || '' == newDrawer){
+					parent.layer.msg("请选择开票类型",{icon:0});
+					return false;
+				}
+				if (newDrawer != 2) {
+				} else {
+					var idCard = $("#idCard").val();
+					if(!submitValidateIDCard(idCard)){
+						layer.msg("身份证号不正确,请重新输入",{icon:2});
+						return false;
+					}
+				}
+
 
 				var money = $("#money").val();
 				var redInvoice=$('input:radio[name="redInvoiceFlag"]:checked').val();
@@ -904,6 +918,58 @@
 				obj.value = obj.value.replace(reg, regStrs[i][1]);
 			}
 		}
+		function validateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				layer.msg("身份证号不正确,请重新输入",{icon:2});
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					layer.msg("身份证号不正确,请重新输入",{icon:2});
+					return false;
+				}
+			}
+		}
+		function submitValidateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					return false;
+				}
+			}
+			return true
+		}
+
+		function validateChecksum(idCard) {
+			const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 加权因子
+			const checksumDigits = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; // 校验码
+
+			// 计算加权和
+			let sum = 0;
+			for (let i = 0; i < 17; i++) {
+				sum += parseInt(idCard[i]) * weights[i];
+			}
+
+			// 计算校验码
+			const checkDigit = checksumDigits[sum % 11];
+
+			// 比较身份证号的最后一位与计算的校验码
+			return checkDigit === idCard[17].toUpperCase();
+		}
 	</script>
 </head>
 <body>
@@ -1085,9 +1151,18 @@
 				<div class="layui-form-item count2">
 					<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="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
-											cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+						<div class="layui-input-block">
+							<form:input id="newDrawerId" path="newDrawerId" htmlEscape="false"  placeholder="请输入姓名"  class="form-control layui-input"/>
+
+								<%--<sys:treeselect id="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
+                                                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">
+							<form:input path="idCard" htmlEscape="false" onchange="validateIDCard(this.value);" class="form-control idCard layui-input required"/>
 						</div>
 					</div>
 				</div>

+ 79 - 3
src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoForm.jsp

@@ -79,6 +79,20 @@
 						return false;
 					}
 
+					var newDrawer=$('input:radio[name="newDrawer"]:checked').val();
+					if(null == newDrawer || undefined == newDrawer || '' == newDrawer){
+						parent.layer.msg("请选择开票类型",{icon:0});
+						return false;
+					}
+					if (newDrawer != 2) {
+					} else {
+						var idCard = $("#idCard").val();
+						if(!submitValidateIDCard(idCard)){
+							layer.msg("身份证号不正确,请重新输入",{icon:2});
+							return false;
+						}
+					}
+
 					var money = $("#money").val();
 					var redInvoice=$('input:radio[name="redInvoiceFlag"]:checked').val();
 					if(money < 0 && redInvoice == 0){
@@ -1043,6 +1057,59 @@
 				obj.value = obj.value.replace(reg, regStrs[i][1]);
 			}
 		}
+		function validateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				layer.msg("身份证号不正确,请重新输入",{icon:2});
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					layer.msg("身份证号不正确,请重新输入",{icon:2});
+					return false;
+				}
+			}
+		}
+		function submitValidateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					return false;
+				}
+			}
+			return true
+		}
+
+		function validateChecksum(idCard) {
+			const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 加权因子
+			const checksumDigits = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; // 校验码
+
+			// 计算加权和
+			let sum = 0;
+			for (let i = 0; i < 17; i++) {
+				sum += parseInt(idCard[i]) * weights[i];
+			}
+
+			// 计算校验码
+			const checkDigit = checksumDigits[sum % 11];
+
+			// 比较身份证号的最后一位与计算的校验码
+			return checkDigit === idCard[17].toUpperCase();
+		}
+
 	</script>
 </head>
 <body>
@@ -1219,9 +1286,18 @@
 				<div class="layui-form-item count2">
 					<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="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
-											cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+						<div class="layui-input-block">
+							<form:input id="newDrawerId" path="newDrawerId" htmlEscape="false"  placeholder="请输入姓名"  class="form-control layui-input"/>
+
+							<%--<sys:treeselect id="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
+											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">
+							<form:input path="idCard" htmlEscape="false" onchange="validateIDCard(this.value);" class="form-control idCard layui-input required"/>
 						</div>
 					</div>
 				</div>

+ 8 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceView.jsp

@@ -191,7 +191,14 @@
 				<div class="layui-item layui-col-sm6 count2">
 					<label class="layui-form-label">姓名:</label>
 					<div class="layui-input-block">
-						<input htmlEscape="false" readonly="true"   style="background-color: #f1f1f1" class="form-control layui-input" value="${workInvoice.newDrawerName}"/>
+						<input htmlEscape="false" readonly="true"   style="background-color: #f1f1f1" class="form-control layui-input" value="${workInvoice.newDrawerId}"/>
+					</div>
+				</div>
+
+				<div class="layui-item layui-col-sm6 count2">
+					<label class="layui-form-label">身份证号:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true"   style="background-color: #f1f1f1" class="form-control layui-input" value="${workInvoice.idCard}"/>
 					</div>
 				</div>