Jelajahi Sumber

添加发票 是否接口开票功能

徐滕 3 minggu lalu
induk
melakukan
dfa30e6527
18 mengubah file dengan 439 tambahan dan 57 penghapusan
  1. 28 0
      src/main/java/com/jeeplus/modules/workinvoice/entity/WorkInvoice.java
  2. 61 51
      src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceService.java
  3. 2 0
      src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceTwoController.java
  4. 25 0
      src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java
  5. 37 4
      src/main/resources/mappings/modules/workinvoice/WorkInvoiceDao.xml
  6. 14 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAllForm.jsp
  7. 11 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAllList.jsp
  8. 16 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAllModify.jsp
  9. 14 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoForm.jsp
  10. 11 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoList.jsp
  11. 73 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceAuditEnd.jsp
  12. 15 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceModify.jsp
  13. 75 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAuditEnd.jsp
  14. 1 1
      src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectModify.jsp
  15. 14 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoForm.jsp
  16. 11 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoList.jsp
  17. 15 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoModify.jsp
  18. 16 0
      src/main/webapp/webpage/modules/workinvoice/workInvoiceView.jsp

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

@@ -131,6 +131,7 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	private Integer redInvoiceFlag; //是否红字发票
 	private Integer redInvoiceFlag; //是否红字发票
 	private String redInvoiceRelevancyId;	//红字发票关联其他发票id
 	private String redInvoiceRelevancyId;	//红字发票关联其他发票id
 	private String redInvoiceRelevancyNumber;	//红字发票关联其他发票编号
 	private String redInvoiceRelevancyNumber;	//红字发票关联其他发票编号
+	private Integer redIsOmsBilling;	//红字发票是否是接口开票(1:是,0:不是)
 	private Integer relatedInvoice;	//是否关联发票
 	private Integer relatedInvoice;	//是否关联发票
 	private String situationDetail;	//情况说明
 	private String situationDetail;	//情况说明
 	private String redFlushReason;	//红冲原因
 	private String redFlushReason;	//红冲原因
@@ -162,6 +163,9 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	private String retryInvoiceJson;//将对应的9998错误redis中数据进行存储到数据库中,放置redis数据崩溃丢失
 	private String retryInvoiceJson;//将对应的9998错误redis中数据进行存储到数据库中,放置redis数据崩溃丢失
 	private String redDownloadInvoiceJson;//将对应的红票redis中数据进行存储到数据库中,放置redis数据崩溃丢失
 	private String redDownloadInvoiceJson;//将对应的红票redis中数据进行存储到数据库中,放置redis数据崩溃丢失
 
 
+	private Integer isSmsNotice;//是否需要短信通知(1:需要,0:不需要)
+	private Integer isOmsBilling;//是否接口开票(1:是,0:不是)
+
 
 
 
 
 	public String getIsSzCloud() {
 	public String getIsSzCloud() {
@@ -979,6 +983,14 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 		this.redInvoiceRelevancyNumber = redInvoiceRelevancyNumber;
 		this.redInvoiceRelevancyNumber = redInvoiceRelevancyNumber;
 	}
 	}
 
 
+	public Integer getRedIsOmsBilling() {
+		return redIsOmsBilling;
+	}
+
+	public void setRedIsOmsBilling(Integer redIsOmsBilling) {
+		this.redIsOmsBilling = redIsOmsBilling;
+	}
+
 	public List<String> getRedNotStatusList() {
 	public List<String> getRedNotStatusList() {
 		return redNotStatusList;
 		return redNotStatusList;
 	}
 	}
@@ -1138,4 +1150,20 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	public void setRedDownloadInvoiceJson(String redDownloadInvoiceJson) {
 	public void setRedDownloadInvoiceJson(String redDownloadInvoiceJson) {
 		this.redDownloadInvoiceJson = redDownloadInvoiceJson;
 		this.redDownloadInvoiceJson = redDownloadInvoiceJson;
 	}
 	}
+
+	public Integer getIsSmsNotice() {
+		return isSmsNotice;
+	}
+
+	public void setIsSmsNotice(Integer isSmsNotice) {
+		this.isSmsNotice = isSmsNotice;
+	}
+
+	public Integer getIsOmsBilling() {
+		return isOmsBilling;
+	}
+
+	public void setIsOmsBilling(Integer isOmsBilling) {
+		this.isOmsBilling = isOmsBilling;
+	}
 }
 }

+ 61 - 51
src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceService.java

@@ -1860,7 +1860,9 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 							//notifyRole = "财务主任审批";
 							//notifyRole = "财务主任审批";
 							notifyRole = "审批通过";
 							notifyRole = "审批通过";
 							workActivityProcess.setIsApproval("1");
 							workActivityProcess.setIsApproval("1");
-
+							if(1 == workInvoice.getIsOmsBilling()){
+								OMS_ENABLED = false;
+							}
 							if(OMS_ENABLED){
 							if(OMS_ENABLED){
 								//需要判定,此处 如果开票金额为正数,则表示是开蓝票,如果是负数,则表示是开红票
 								//需要判定,此处 如果开票金额为正数,则表示是开蓝票,如果是负数,则表示是开红票
 								if(workInvoice.getMoney()>0){
 								if(workInvoice.getMoney()>0){
@@ -2661,6 +2663,10 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 						notifyRole = "审批通过";
 						notifyRole = "审批通过";
 						workActivityProcess.setIsApproval("1");
 						workActivityProcess.setIsApproval("1");
 
 
+						if(1 == workInvoice.getIsOmsBilling()){
+							OMS_ENABLED = false;
+						}
+
 						if(OMS_ENABLED){
 						if(OMS_ENABLED){
 							//需要判定,此处 如果开票金额为正数,则表示是开蓝票,如果是负数,则表示是开红票
 							//需要判定,此处 如果开票金额为正数,则表示是开蓝票,如果是负数,则表示是开红票
 							if(workInvoice.getMoney()>0){
 							if(workInvoice.getMoney()>0){
@@ -4338,65 +4344,69 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			}
 			}
 		}
 		}
 
 
-		//发起短信通知,用于通知开票人
-		AjaxJson j = new AjaxJson();
-		//查询开票人员的手机号
-		User user = userDao.get(workInvoice.getCreateBy().getId());
-		//user.setMobile("18164266544");
-		if (StringUtils.isNotBlank(user.getMobile()) && mobilePattern.matcher(user.getMobile().trim()).matches() ) {
-			//验证手机号是否已经注册
-			if(userDao.validateMobile("mobile") == null){
-				HashMap<String,Object> result = null;
-				try{
-					//调用工具类返回结果
-					result = ALiYunSmsUtil.omsWorkInvoiceSms(user.getMobile(), workInvoice.getNumber(), "成功");
-					Integer statusCode = (Integer) result.get("statusCode");
-					if (200 == statusCode) {
-						System.out.println("进入获取密码修改短信通知接口2。获取阿里云短信通知成功");
-						j.setSuccess(true);
-						j.setErrorCode("-1");
-						j.setMsg("短信发送成功!");
-
-					}else if(10001 == statusCode){
+		//如果用户需要被短信通知,则此处给短信通知
+		if(null != workInvoice.getIsSmsNotice() && workInvoice.getIsSmsNotice() == 1){
+			//发起短信通知,用于通知开票人
+			AjaxJson j = new AjaxJson();
+			//查询开票人员的手机号
+			User user = userDao.get(workInvoice.getCreateBy().getId());
+			//user.setMobile("18164266544");
+			if (StringUtils.isNotBlank(user.getMobile()) && mobilePattern.matcher(user.getMobile().trim()).matches() ) {
+				//验证手机号是否已经注册
+				if(userDao.validateMobile("mobile") == null){
+					HashMap<String,Object> result = null;
+					try{
+						//调用工具类返回结果
+						result = ALiYunSmsUtil.omsWorkInvoiceSms(user.getMobile(), workInvoice.getNumber(), "成功");
+						Integer statusCode = (Integer) result.get("statusCode");
+						if (200 == statusCode) {
+							System.out.println("进入获取密码修改短信通知接口2。获取阿里云短信通知成功");
+							j.setSuccess(true);
+							j.setErrorCode("-1");
+							j.setMsg("短信发送成功!");
+
+						}else if(10001 == statusCode){
 
 
+							j.setSuccess(false);
+							j.setErrorCode("2");
+							String message = (String) result.get("message");
+							//j.setMsg("短信发送失败,错误代码:"+result+",请联系管理员。");
+							j.setMsg(message);
+							j.put("ErrorXml",result);
+						}else if(10002 == statusCode){
+							j.setSuccess(false);
+							j.setErrorCode("2");
+							j.put("message","账户短信量余额不足,请联系管理员进行充值!");
+							j.put("ErrorXml",result);
+						}else if(10003 == statusCode){
+							j.setSuccess(false);
+							j.setErrorCode("2");
+							j.put("message","手机号获取验证码次数已达每日上限!");
+							j.put("ErrorXml",result);
+						}else{
+							j.setSuccess(false);
+							j.setErrorCode("2");
+							j.put("message","短信发送失败,错误代码:101,请联系管理员!");
+							j.put("ErrorXml",result);
+						}
+					}catch (Exception e){
+						System.out.println("阿里云发送短信失败。失败原因为:" + e.getMessage());
+						logger.error("调用短信接口发生错误", e);  // 记录详细日志
+						e.printStackTrace();
+						logger.info("5");
 						j.setSuccess(false);
 						j.setSuccess(false);
-						j.setErrorCode("2");
-						String message = (String) result.get("message");
-						//j.setMsg("短信发送失败,错误代码:"+result+",请联系管理员。");
-						j.setMsg(message);
-						j.put("ErrorXml",result);
-					}else if(10002 == statusCode){
-						j.setSuccess(false);
-						j.setErrorCode("2");
-						j.put("message","账户短信量余额不足,请联系管理员进行充值!");
-						j.put("ErrorXml",result);
-					}else if(10003 == statusCode){
-						j.setSuccess(false);
-						j.setErrorCode("2");
-						j.put("message","手机号获取验证码次数已达每日上限!");
-						j.put("ErrorXml",result);
-					}else{
-						j.setSuccess(false);
-						j.setErrorCode("2");
-						j.put("message","短信发送失败,错误代码:101,请联系管理员!");
-						j.put("ErrorXml",result);
+						j.setErrorCode("101");
+						j.setMsg("短信发送失败!");
 					}
 					}
-				}catch (Exception e){
-					System.out.println("阿里云发送短信失败。失败原因为:" + e.getMessage());
-					logger.error("调用短信接口发生错误", e);  // 记录详细日志
-					e.printStackTrace();
-					logger.info("5");
-					j.setSuccess(false);
-					j.setErrorCode("101");
-					j.setMsg("短信发送失败!");
-				}
-				finally {
+					finally {
 
 
+					}
 				}
 				}
 			}
 			}
 		}
 		}
 
 
 
 
+
 		isSuccess = true;
 		isSuccess = true;
 
 
 
 

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

@@ -315,6 +315,8 @@ public class WorkInvoiceTwoController extends BaseController {
 		String view = "workInvoiceTwoForm";
 		String view = "workInvoiceTwoForm";
 		if(StringUtils.isNotBlank(workInvoice.getId())){
 		if(StringUtils.isNotBlank(workInvoice.getId())){
 			workInvoiceService.queryDetails(workInvoice);
 			workInvoiceService.queryDetails(workInvoice);
+		}else{
+			workInvoice.setIsSmsNotice(0);
 		}
 		}
 		if(StringUtils.isBlank(workInvoice.getActualDrawerId())){
 		if(StringUtils.isBlank(workInvoice.getActualDrawerId())){
 			User user = UserUtils.getUser();
 			User user = UserUtils.getUser();

+ 25 - 0
src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java

@@ -2287,6 +2287,14 @@ public class WorkProjectNotifyController extends BaseController {
 					if(StringUtils.isNotBlank(workInvoice.getId()) && 1 == workInvoice.getRedInvoiceFlag() && StringUtils.isNotBlank(workInvoice.getRedInvoiceRelevancyId())){
 					if(StringUtils.isNotBlank(workInvoice.getId()) && 1 == workInvoice.getRedInvoiceFlag() && StringUtils.isNotBlank(workInvoice.getRedInvoiceRelevancyId())){
 						String invoiceNumberStr = workInvoiceService.getInvoiceNumberStr(workInvoice.getRedInvoiceRelevancyId());
 						String invoiceNumberStr = workInvoiceService.getInvoiceNumberStr(workInvoice.getRedInvoiceRelevancyId());
 						workInvoice.setInvoiceNumberStr(invoiceNumberStr);
 						workInvoice.setInvoiceNumberStr(invoiceNumberStr);
+						//还需要判定被红冲的发票的开票是手动开票还是系统自动开票,如果是手动开票的话,需要手动进行红冲
+						//获取红字发票的信息
+						WorkInvoice redWorkInvoice = workInvoiceService.get(workInvoice.getRedInvoiceRelevancyId());
+						if(null != redWorkInvoice){
+							workInvoice.setRedIsOmsBilling(redWorkInvoice.getIsOmsBilling());
+						}
+					}else if(StringUtils.isNotBlank(workInvoice.getId()) && 1 == workInvoice.getRedInvoiceFlag() && StringUtils.isBlank(workInvoice.getRedInvoiceRelevancyId())){
+						workInvoice.setRedIsOmsBilling(1);
 					}
 					}
 					workInvoice.setAct(getByAct(workInvoice.getProcessInstanceId()));
 					workInvoice.setAct(getByAct(workInvoice.getProcessInstanceId()));
 					String taskDefKey = workInvoice.getAct().getTaskDefKey();
 					String taskDefKey = workInvoice.getAct().getTaskDefKey();
@@ -2335,6 +2343,9 @@ public class WorkProjectNotifyController extends BaseController {
 								"scbzr".equals(taskDefKey))) {
 								"scbzr".equals(taskDefKey))) {
 							return "modules/workinvoice/workInvoiceAudit";
 							return "modules/workinvoice/workInvoiceAudit";
 						} else if (StringUtils.isNotBlank(taskDefKey) && "fpgly".equals(taskDefKey)) {
 						} else if (StringUtils.isNotBlank(taskDefKey) && "fpgly".equals(taskDefKey)) {
+							if(null == workInvoice.getIsOmsBilling()){
+								workInvoice.setIsOmsBilling(0);
+							}
 							workInvoice.setDrawerName(UserUtils.getUser().getName());
 							workInvoice.setDrawerName(UserUtils.getUser().getName());
 							workInvoice.setInvoiceDate(new Date());
 							workInvoice.setInvoiceDate(new Date());
 							model.addAttribute("workInvoice", workInvoice);
 							model.addAttribute("workInvoice", workInvoice);
@@ -11008,6 +11019,15 @@ public class WorkProjectNotifyController extends BaseController {
 		if(StringUtils.isNotBlank(workInvoice.getId()) && 1 == workInvoice.getRedInvoiceFlag() && StringUtils.isNotBlank(workInvoice.getRedInvoiceRelevancyId())){
 		if(StringUtils.isNotBlank(workInvoice.getId()) && 1 == workInvoice.getRedInvoiceFlag() && StringUtils.isNotBlank(workInvoice.getRedInvoiceRelevancyId())){
 			String invoiceNumberStr = workInvoiceService.getInvoiceNumberStr(workInvoice.getRedInvoiceRelevancyId());
 			String invoiceNumberStr = workInvoiceService.getInvoiceNumberStr(workInvoice.getRedInvoiceRelevancyId());
 			workInvoice.setInvoiceNumberStr(invoiceNumberStr);
 			workInvoice.setInvoiceNumberStr(invoiceNumberStr);
+
+			//还需要判定被红冲的发票的开票是手动开票还是系统自动开票,如果是手动开票的话,需要手动进行红冲
+			//获取红字发票的信息
+			WorkInvoice redWorkInvoice = workInvoiceService.get(workInvoice.getRedInvoiceRelevancyId());
+			if(null != redWorkInvoice){
+				workInvoice.setRedIsOmsBilling(redWorkInvoice.getIsOmsBilling());
+			}
+		}else if(StringUtils.isNotBlank(workInvoice.getId()) && 1 == workInvoice.getRedInvoiceFlag() && StringUtils.isBlank(workInvoice.getRedInvoiceRelevancyId())){
+			workInvoice.setRedIsOmsBilling(1);
 		}
 		}
 
 
 		workInvoice.setAct(getByAct(workInvoice.getProcessInstanceId()));
 		workInvoice.setAct(getByAct(workInvoice.getProcessInstanceId()));
@@ -11084,6 +11104,11 @@ public class WorkProjectNotifyController extends BaseController {
 					"scbzr".equals(taskDefKey)) || "zjl".equals(taskDefKey)) {
 					"scbzr".equals(taskDefKey)) || "zjl".equals(taskDefKey)) {
 				return "modules/workinvoice/workInvoiceNotProjectAudit";
 				return "modules/workinvoice/workInvoiceNotProjectAudit";
 			} else if (StringUtils.isNotBlank(taskDefKey) && "fpgly".equals(taskDefKey)) {
 			} else if (StringUtils.isNotBlank(taskDefKey) && "fpgly".equals(taskDefKey)) {
+
+				if(null == workInvoice.getIsOmsBilling()){
+					workInvoice.setIsOmsBilling(0);
+				}
+
 				workInvoice.setDrawerName(UserUtils.getUser().getName());
 				workInvoice.setDrawerName(UserUtils.getUser().getName());
 				workInvoice.setInvoiceDate(new Date());
 				workInvoice.setInvoiceDate(new Date());
 				model.addAttribute("workInvoice", workInvoice);
 				model.addAttribute("workInvoice", workInvoice);

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

@@ -85,7 +85,9 @@
 		a.oms_xml_url as "omsXmlUrl",
 		a.oms_xml_url as "omsXmlUrl",
 		a.order_for_goods_result_str as "orderForGoodsResultStr",
 		a.order_for_goods_result_str as "orderForGoodsResultStr",
 		a.confirmation_slip_result_str as "confirmationSlipResultStr",
 		a.confirmation_slip_result_str as "confirmationSlipResultStr",
-		a.red_flush_reason as "redFlushReason"
+		a.red_flush_reason as "redFlushReason",
+		a.is_sms_notice as "isSmsNotice",
+		a.is_oms_billing as "isOmsBilling"
 	</sql>
 	</sql>
 
 
 	<sql id="newWorkInvoiceColumns">
 	<sql id="newWorkInvoiceColumns">
@@ -153,7 +155,19 @@
 		a.red_invoice_flag as "redInvoiceFlag",
 		a.red_invoice_flag as "redInvoiceFlag",
 		a.red_invoice_relevancy_id as "redInvoiceRelevancyId",
 		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"
+		a.id_card as "idCard",
+		a.oms_access_token_error as "omsAccessTokenError",
+		a.oms_access_token as "omsAccessToken",
+		a.oms_error_message as "omsErrorMessage",
+		a.oms_ein_vno as "omsEinVno",
+		a.oms_ofd_url as "omsOfdUrl",
+		a.oms_pdf_url as "omsPdfUrl",
+		a.oms_xml_url as "omsXmlUrl",
+		a.order_for_goods_result_str as "orderForGoodsResultStr",
+		a.confirmation_slip_result_str as "confirmationSlipResultStr",
+		a.red_flush_reason as "redFlushReason",
+		a.is_sms_notice as "isSmsNotice",
+		a.is_oms_billing as "isOmsBilling"
 	</sql>
 	</sql>
 
 
 	<sql id="workInvoiceJoins">
 	<sql id="workInvoiceJoins">
@@ -734,6 +748,10 @@
 				<if test="dbName == 'mysql'">concat('%',#{newDrawer},'%')</if>
 				<if test="dbName == 'mysql'">concat('%',#{newDrawer},'%')</if>
 			</if>
 			</if>
 
 
+			<if test="isOmsBilling != null">
+				AND a.is_oms_billing = #{isOmsBilling}
+			</if>
+
 
 
 			${sqlMap.dsf}
 			${sqlMap.dsf}
 		</where>
 		</where>
@@ -1324,6 +1342,9 @@
 				<if test="dbName == 'mssql'">'%'+#{reportNumber}+'%'</if>
 				<if test="dbName == 'mssql'">'%'+#{reportNumber}+'%'</if>
 				<if test="dbName == 'mysql'">concat('%',#{reportNumber},'%')</if>
 				<if test="dbName == 'mysql'">concat('%',#{reportNumber},'%')</if>
 			</if>
 			</if>
+			<if test="isOmsBilling != null">
+				AND a.is_oms_billing = #{isOmsBilling}
+			</if>
 
 
 
 
 			${sqlMap.dsf}
 			${sqlMap.dsf}
@@ -1746,6 +1767,10 @@
 			<if test="(accountCheckingUserId != null and accountCheckingUserId != '') or (accountCheckingUserName != null and accountCheckingUserName != '')">
 			<if test="(accountCheckingUserId != null and accountCheckingUserId != '') or (accountCheckingUserName != null and accountCheckingUserName != '')">
 				AND (a.account_checking_user_id = #{accountCheckingUserId} or sua.name like concat('%',#{accountCheckingUserName},'%'))
 				AND (a.account_checking_user_id = #{accountCheckingUserId} or sua.name like concat('%',#{accountCheckingUserName},'%'))
 			</if>
 			</if>
+
+			<if test="isOmsBilling != null">
+				AND a.is_oms_billing = #{isOmsBilling}
+			</if>
 			${sqlMap.dsf}
 			${sqlMap.dsf}
 		</where>
 		</where>
 		<choose>
 		<choose>
@@ -1995,7 +2020,8 @@
 			situation_detail,
 			situation_detail,
 			red_flush_reason,
 			red_flush_reason,
 			id_card,
 			id_card,
-			is_sz_cloud
+			is_sz_cloud,
+			is_sms_notice
 		) VALUES (
 		) VALUES (
 			#{id},
 			#{id},
 			#{number},
 			#{number},
@@ -2049,7 +2075,8 @@
 			#{situationDetail},
 			#{situationDetail},
 		    #{redFlushReason},
 		    #{redFlushReason},
 		    #{idCard},
 		    #{idCard},
-		    #{isSzCloud}
+		    #{isSzCloud},
+		    #{isSmsNotice}
 		)
 		)
 	</insert>
 	</insert>
 
 
@@ -2112,6 +2139,12 @@
 		    ,situation_detail  = #{situationDetail}
 		    ,situation_detail  = #{situationDetail}
 		    ,red_flush_reason  = #{redFlushReason}
 		    ,red_flush_reason  = #{redFlushReason}
 			,id_card = #{idCard}
 			,id_card = #{idCard}
+			<if test="null != isSmsNotice">
+				,is_sms_notice = #{isSmsNotice}
+			</if>
+			<if test="null != isOmsBilling">
+				,is_oms_billing = #{isOmsBilling}
+			</if>
 		WHERE id = #{id}
 		WHERE id = #{id}
 	</update>
 	</update>
 	<update id="updateDate">
 	<update id="updateDate">

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

@@ -171,6 +171,13 @@
 				}
 				}
 			}
 			}
 
 
+			var isSmsNotice = '${workInvoice.isSmsNotice}';//后端获取值
+			if(undefined == isSmsNotice || null == isSmsNotice || '' == isSmsNotice || isSmsNotice == "0"){
+				document.getElementsByName("isSmsNotice")[1].checked = true;
+			}else{
+				document.getElementsByName("isSmsNotice")[0].checked = true;
+			}
+
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			if(redFlushReason == "01"){
 			if(redFlushReason == "01"){
 				document.getElementsByName("redFlushReason")[0].checked = true;
 				document.getElementsByName("redFlushReason")[0].checked = true;
@@ -1391,6 +1398,13 @@
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 					</div>
 					</div>
 				</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">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="是" value="1">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="否" value="0">
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm12 with-textarea">
 				<div class="layui-item layui-col-sm12 with-textarea">
 					<label class="layui-form-label double-line">备注:</label>
 					<label class="layui-form-label double-line">备注:</label>
 					<div class="layui-input-block">
 					<div class="layui-input-block">

+ 11 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllList.jsp

@@ -634,6 +634,17 @@
 							</div>
 							</div>
 						</div>
 						</div>
 
 
+						<div class="layui-item query athird">
+							<label class="layui-form-label">是否接口开票:</label>
+							<div class="layui-input-block with-icon">
+								<select id="isOmsBilling" name="isOmsBilling" class="form-control simple-select">
+									<option value=""></option>
+									<option value="0" <c:if test="${workInvoiceShow.isOmsBilling=='0'}">selected</c:if>>是</option>
+									<option value="1" <c:if test="${workInvoiceShow.isOmsBilling=='1'}">selected</c:if>>否</option>
+								</select>
+							</div>
+						</div>
+
 
 
 					</div>
 					</div>
 				</form:form>
 				</form:form>

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

@@ -258,6 +258,15 @@
 			});
 			});
 
 
 
 
+
+			var isSmsNotice = '${workInvoice.isSmsNotice}';//后端获取值
+			if(undefined == isSmsNotice || null == isSmsNotice || '' == isSmsNotice || isSmsNotice == "0"){
+				document.getElementsByName("isSmsNotice")[1].checked = true;
+			}else{
+				document.getElementsByName("isSmsNotice")[0].checked = true;
+			}
+
+
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
@@ -1316,6 +1325,13 @@
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 					</div>
 					</div>
 				</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">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="是" value="1">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="否" value="0">
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm12 with-textarea">
 				<div class="layui-item layui-col-sm12 with-textarea">
 					<label class="layui-form-label double-line">备注:</label>
 					<label class="layui-form-label double-line">备注:</label>
 					<div class="layui-input-block">
 					<div class="layui-input-block">

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

@@ -177,6 +177,13 @@
 				}
 				}
 			}
 			}
 
 
+			var isSmsNotice = '${workInvoice.isSmsNotice}';//后端获取值
+			if(undefined == isSmsNotice || null == isSmsNotice || '' == isSmsNotice || isSmsNotice == "0"){
+				document.getElementsByName("isSmsNotice")[1].checked = true;
+			}else{
+				document.getElementsByName("isSmsNotice")[0].checked = true;
+			}
+
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			if(redFlushReason == "01"){
 			if(redFlushReason == "01"){
 				document.getElementsByName("redFlushReason")[0].checked = true;
 				document.getElementsByName("redFlushReason")[0].checked = true;
@@ -1431,6 +1438,13 @@
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 					</div>
 					</div>
 				</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">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="是" value="1">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="否" value="0">
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm12 with-textarea">
 				<div class="layui-item layui-col-sm12 with-textarea">
 					<label class="layui-form-label double-line">备注:</label>
 					<label class="layui-form-label double-line">备注:</label>
 					<div class="layui-input-block">
 					<div class="layui-input-block">

+ 11 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoList.jsp

@@ -717,6 +717,17 @@
 										<form:input path="reportNumber" htmlEscape="false"  class=" form-control layui-input"/>
 										<form:input path="reportNumber" htmlEscape="false"  class=" form-control layui-input"/>
 									</div>
 									</div>
 								</div>
 								</div>
+
+								<div class="layui-item query athird">
+									<label class="layui-form-label">是否接口开票:</label>
+									<div class="layui-input-block with-icon">
+										<select id="isOmsBilling" name="isOmsBilling" class="form-control simple-select">
+											<option value=""></option>
+											<option value="0" <c:if test="${workInvoiceShow.isOmsBilling=='0'}">selected</c:if>>是</option>
+											<option value="1" <c:if test="${workInvoiceShow.isOmsBilling=='1'}">selected</c:if>>否</option>
+										</select>
+									</div>
+								</div>
 					</div>
 					</div>
 				</form:form>
 				</form:form>
 			</div>
 			</div>

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

@@ -70,8 +70,43 @@
 				  var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取红票标识
 				  var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取红票标识
 				  if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 				  if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 					  // 非红票分支:无任何校验(发票号+表格)
 					  // 非红票分支:无任何校验(发票号+表格)
+					  var isOmsBilling = $('input:radio[name="isOmsBilling"]:checked').val();// 红冲原因值
+					  if (relatedInvoice === "0") {
+						  needCheckTable = true;
+					  }
+
+					// ========== 新增核心:只要isOmsBilling=1,强制开启表格校验 ==========
+					  if (isOmsBilling === "1") {
+						  needCheckTable = true;
+					  }
+
+					  // 【最终】仅当表格校验开关为true时,执行表格非空校验
+					  if (needCheckTable) {
+						  var $tableTrs = $("#workAccountList tr");// 获取表格所有行
+						  var rowCount = $tableTrs.length;
+						  if (rowCount > 0) {
+							  var isEmpty = false;
+							  var emptyRow = 0;
+							  // 逐行遍历校验:第三个td→第一个input,去空格判空
+							  $tableTrs.each(function(index, tr) {
+								  var inputVal = $.trim($(tr).find("td:eq(2) input:first").val());
+								  if (!inputVal) {
+									  isEmpty = true;
+									  emptyRow = index + 1;// 行号从1开始,方便用户定位
+									  return false;// 找到空值立即终止遍历,提升效率
+								  }
+							  });
+							  // 表格有空值:弹框提示并终止后续逻辑
+							  if (isEmpty) {
+								  top.layer.alert('您这是手动开票,发票明细表第'+ emptyRow +'行的发票号不能为空,请填写!', {icon: 0});
+								  return;
+							  }
+						  }
+					  }
+
 				  }else{
 				  }else{
 					  // 红票分支:初始化变量
 					  // 红票分支:初始化变量
+					  var redIsOmsBilling = $("#redIsOmsBilling").val();// 被红冲的票是不是经过接口开出来的(如果不是,则需要手动进行开票)
 					  var relatedInvoice = $('input:radio[name="relatedInvoice"]:checked').val();// 红冲原因值
 					  var relatedInvoice = $('input:radio[name="relatedInvoice"]:checked').val();// 红冲原因值
 					  var needCheckTable = false; // 【核心】表格校验开关,默认不校验
 					  var needCheckTable = false; // 【核心】表格校验开关,默认不校验
 					  var invoiceNum = ""; // 初始化发票号变量,解决作用域问题
 					  var invoiceNum = ""; // 初始化发票号变量,解决作用域问题
@@ -108,6 +143,9 @@
 					  if (relatedInvoice === "0") {
 					  if (relatedInvoice === "0") {
 						  needCheckTable = true;
 						  needCheckTable = true;
 					  }
 					  }
+					  if (redIsOmsBilling === "1") {
+						  needCheckTable = true;
+					  }
 
 
 					  // 【最终】仅当表格校验开关为true时,执行表格非空校验
 					  // 【最终】仅当表格校验开关为true时,执行表格非空校验
 					  if (needCheckTable) {
 					  if (needCheckTable) {
@@ -177,6 +215,31 @@
 			}
 			}
 
 
 
 
+			var isOmsBilling = '${workInvoice.isOmsBilling}';//后端获取值
+			if(undefined == isOmsBilling || null == isOmsBilling || '' == isOmsBilling || isOmsBilling == "0"){
+				document.getElementsByName("isOmsBilling")[1].checked = true;
+			}else{
+				document.getElementsByName("isOmsBilling")[0].checked = true;
+			}
+
+
+			var redIsOmsBilling = '${workInvoice.redIsOmsBilling}';//后端获取值
+			if(undefined !== redIsOmsBilling && redIsOmsBilling === "1"){
+				// 1. 获取所有isOmsBilling单选框
+				var radioList = document.getElementsByName("isOmsBilling");
+
+				// 2. 修正选中项:redIsOmsBilling=1 应该选中“是”(下标0),而非“否”(下标1)
+				radioList[0].checked = true;
+
+				// 3. 禁用整个单选框组(所有选项都不可点击)
+				for (var i = 0; i < radioList.length; i++) {
+					radioList[i].disabled = true;
+					// 兼容layui样式:禁用后添加灰色样式,提升用户体验
+					radioList[i].parentNode.classList.add("layui-disabled");
+				}
+			}
+
+
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
@@ -638,6 +701,7 @@
 		<form:hidden path="act.procInsId"/>
 		<form:hidden path="act.procInsId"/>
 		<form:hidden path="act.procDefId"/>
 		<form:hidden path="act.procDefId"/>
 		<form:hidden id="flag" path="act.flag"/>
 		<form:hidden id="flag" path="act.flag"/>
+		<input type="hidden" id="redIsOmsBilling" value="${workInvoice.redIsOmsBilling}">
 		<c:set var="status" value="${workInvoice.act.status}" />
 		<c:set var="status" value="${workInvoice.act.status}" />
 		<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
 		<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
 		<div class="form-group layui-row first lw14">
 		<div class="form-group layui-row first lw14">
@@ -819,6 +883,15 @@
 					<input id="invoiceNumberStr" name="invoiceNumberStr" htmlEscape="false" readonly="true" class="form-control layui-input" value="${workInvoice.invoiceNumberStr}"/>
 					<input id="invoiceNumberStr" name="invoiceNumberStr" htmlEscape="false" readonly="true" class="form-control layui-input" value="${workInvoice.invoiceNumberStr}"/>
 				</div>
 				</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 type="radio" name="isOmsBilling" lay-filter="isOmsBillingRadio" title="是" value="1">
+					<input type="radio" name="isOmsBilling" lay-filter="isOmsBillingRadio" title="否" value="0">
+				</div>
+			</div>
+
 			<%--<div class="layui-item layui-col-sm12">
 			<%--<div class="layui-item layui-col-sm12">
 				<label class="layui-form-label">开票内容要求:</label>
 				<label class="layui-form-label">开票内容要求:</label>
 				<div class="layui-input-block">
 				<div class="layui-input-block">

+ 15 - 1
src/main/webapp/webpage/modules/workinvoice/workInvoiceModify.jsp

@@ -291,12 +291,19 @@
 			}
 			}
 
 
 
 
+			var isSmsNotice = '${workInvoice.isSmsNotice}';//后端获取值
+			if(undefined == isSmsNotice || null == isSmsNotice || '' == isSmsNotice || isSmsNotice == "0"){
+				document.getElementsByName("isSmsNotice")[1].checked = true;
+			}else{
+				document.getElementsByName("isSmsNotice")[0].checked = true;
+			}
+
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
 				$(".relatedInvoice").hide();
 				$(".relatedInvoice").hide();
 				$(".redInvoice").hide();
 				$(".redInvoice").hide();
-				$(".redFlushReason").show();
+				$(".redFlushReason").hide();
 				$(".situationDetail").hide();
 				$(".situationDetail").hide();
 			}else{
 			}else{
 				document.getElementsByName("redInvoiceFlag")[0].checked = true;
 				document.getElementsByName("redInvoiceFlag")[0].checked = true;
@@ -1394,6 +1401,13 @@
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 					</div>
 					</div>
 				</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">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="是" value="1">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="否" value="0">
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm12 with-textarea">
 				<div class="layui-item layui-col-sm12 with-textarea">
 					<label class="layui-form-label double-line">备注:</label>
 					<label class="layui-form-label double-line">备注:</label>
 					<div class="layui-input-block">
 					<div class="layui-input-block">

+ 75 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceNotProjectAuditEnd.jsp

@@ -70,8 +70,42 @@
 				  var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取红票标识
 				  var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取红票标识
 				  if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 				  if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 					  // 非红票分支:无任何校验(发票号+表格)
 					  // 非红票分支:无任何校验(发票号+表格)
+					  var isOmsBilling = $('input:radio[name="isOmsBilling"]:checked').val();// 红冲原因值
+					  if (relatedInvoice === "0") {
+						  needCheckTable = true;
+					  }
+
+					  // ========== 新增核心:只要isOmsBilling=1,强制开启表格校验 ==========
+					  if (isOmsBilling === "1") {
+						  needCheckTable = true;
+					  }
+
+					  // 【最终】仅当表格校验开关为true时,执行表格非空校验
+					  if (needCheckTable) {
+						  var $tableTrs = $("#workAccountList tr");// 获取表格所有行
+						  var rowCount = $tableTrs.length;
+						  if (rowCount > 0) {
+							  var isEmpty = false;
+							  var emptyRow = 0;
+							  // 逐行遍历校验:第三个td→第一个input,去空格判空
+							  $tableTrs.each(function(index, tr) {
+								  var inputVal = $.trim($(tr).find("td:eq(2) input:first").val());
+								  if (!inputVal) {
+									  isEmpty = true;
+									  emptyRow = index + 1;// 行号从1开始,方便用户定位
+									  return false;// 找到空值立即终止遍历,提升效率
+								  }
+							  });
+							  // 表格有空值:弹框提示并终止后续逻辑
+							  if (isEmpty) {
+								  top.layer.alert('您这是手动开票,发票明细表第'+ emptyRow +'行的发票号不能为空,请填写!', {icon: 0});
+								  return;
+							  }
+						  }
+					  }
 				  }else{
 				  }else{
 					  // 红票分支:初始化变量
 					  // 红票分支:初始化变量
+					  var redIsOmsBilling = $("#redIsOmsBilling").val();// 被红冲的票是不是经过接口开出来的(如果不是,则需要手动进行开票)
 					  var relatedInvoice = $('input:radio[name="relatedInvoice"]:checked').val();// 红冲原因值
 					  var relatedInvoice = $('input:radio[name="relatedInvoice"]:checked').val();// 红冲原因值
 					  var needCheckTable = false; // 【核心】表格校验开关,默认不校验
 					  var needCheckTable = false; // 【核心】表格校验开关,默认不校验
 					  var invoiceNum = ""; // 初始化发票号变量,解决作用域问题
 					  var invoiceNum = ""; // 初始化发票号变量,解决作用域问题
@@ -109,6 +143,10 @@
 						  needCheckTable = true;
 						  needCheckTable = true;
 					  }
 					  }
 
 
+					  if (redIsOmsBilling === "1") {
+						  needCheckTable = true;
+					  }
+
 					  // 【最终】仅当表格校验开关为true时,执行表格非空校验
 					  // 【最终】仅当表格校验开关为true时,执行表格非空校验
 					  if (needCheckTable) {
 					  if (needCheckTable) {
 						  var $tableTrs = $("#workAccountList tr");// 获取表格所有行
 						  var $tableTrs = $("#workAccountList tr");// 获取表格所有行
@@ -165,6 +203,33 @@
 				document.getElementsByName("redFlushReason")[1].checked = true;
 				document.getElementsByName("redFlushReason")[1].checked = true;
 			}
 			}
 
 
+
+
+			var isOmsBilling = '${workInvoice.isOmsBilling}';//后端获取值
+			if(undefined == isOmsBilling || null == isOmsBilling || '' == isOmsBilling || isOmsBilling == "0"){
+				document.getElementsByName("isOmsBilling")[1].checked = true;
+			}else{
+				document.getElementsByName("isOmsBilling")[0].checked = true;
+			}
+
+			var redIsOmsBilling = '${workInvoice.redIsOmsBilling}';//后端获取值
+			if(undefined !== redIsOmsBilling && redIsOmsBilling === "1"){
+				// 1. 获取所有isOmsBilling单选框
+				var radioList = document.getElementsByName("isOmsBilling");
+
+				// 2. 修正选中项:redIsOmsBilling=1 应该选中“是”(下标0),而非“否”(下标1)
+				radioList[0].checked = true;
+
+				// 3. 禁用整个单选框组(所有选项都不可点击)
+				for (var i = 0; i < radioList.length; i++) {
+					radioList[i].disabled = true;
+					// 兼容layui样式:禁用后添加灰色样式,提升用户体验
+					radioList[i].parentNode.classList.add("layui-disabled");
+				}
+			}
+
+
+
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
@@ -630,6 +695,7 @@
 		<form:hidden path="act.procInsId"/>
 		<form:hidden path="act.procInsId"/>
 		<form:hidden path="act.procDefId"/>
 		<form:hidden path="act.procDefId"/>
 		<form:hidden id="flag" path="act.flag"/>
 		<form:hidden id="flag" path="act.flag"/>
+		<input type="hidden" id="redIsOmsBilling" value="${workInvoice.redIsOmsBilling}">
 		<c:set var="status" value="${workInvoice.act.status}" />
 		<c:set var="status" value="${workInvoice.act.status}" />
 		<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
 		<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
 		<div class="form-group layui-row first lw14">
 		<div class="form-group layui-row first lw14">
@@ -806,6 +872,15 @@
 					<input id="invoiceNumberStr" name="invoiceNumberStr" htmlEscape="false" readonly="true" class="form-control layui-input" value="${workInvoice.invoiceNumberStr}"/>
 					<input id="invoiceNumberStr" name="invoiceNumberStr" htmlEscape="false" readonly="true" class="form-control layui-input" value="${workInvoice.invoiceNumberStr}"/>
 				</div>
 				</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 type="radio" name="isOmsBilling" lay-filter="isOmsBillingRadio" title="是" value="1">
+					<input type="radio" name="isOmsBilling" lay-filter="isOmsBillingRadio" title="否" value="0">
+				</div>
+			</div>
 			<%--<div class="layui-item layui-col-sm12">
 			<%--<div class="layui-item layui-col-sm12">
 				<label class="layui-form-label">开票内容要求:</label>
 				<label class="layui-form-label">开票内容要求:</label>
 				<div class="layui-input-block">
 				<div class="layui-input-block">

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

@@ -266,8 +266,8 @@
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
 				document.getElementsByName("redInvoiceFlag")[1].checked = true;
 				$(".relatedInvoice").hide();
 				$(".relatedInvoice").hide();
-				$(".redFlushReason").show();
 				$(".redInvoice").hide();
 				$(".redInvoice").hide();
+				$(".redFlushReason").hide();
 				$(".situationDetail").hide();
 				$(".situationDetail").hide();
 			}else{
 			}else{
 				document.getElementsByName("redInvoiceFlag")[0].checked = true;
 				document.getElementsByName("redInvoiceFlag")[0].checked = true;

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

@@ -197,6 +197,13 @@
 				}
 				}
 			}
 			}
 
 
+			var isSmsNotice = '${workInvoice.isSmsNotice}';//后端获取值
+			if(undefined == isSmsNotice || null == isSmsNotice || '' == isSmsNotice || isSmsNotice == "0"){
+				document.getElementsByName("isSmsNotice")[1].checked = true;
+			}else{
+				document.getElementsByName("isSmsNotice")[0].checked = true;
+			}
+
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			if(redFlushReason == "01"){
 			if(redFlushReason == "01"){
 				document.getElementsByName("redFlushReason")[0].checked = true;
 				document.getElementsByName("redFlushReason")[0].checked = true;
@@ -1490,6 +1497,13 @@
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 					</div>
 					</div>
 				</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">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="是" value="1">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="否" value="0">
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm12 with-textarea">
 				<div class="layui-item layui-col-sm12 with-textarea">
 					<label class="layui-form-label double-line">备注:</label>
 					<label class="layui-form-label double-line">备注:</label>
 					<div class="layui-input-block">
 					<div class="layui-input-block">

+ 11 - 0
src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoList.jsp

@@ -761,6 +761,17 @@
 								<form:input path="reportNumber" htmlEscape="false"  class=" form-control layui-input"/>
 								<form:input path="reportNumber" htmlEscape="false"  class=" form-control layui-input"/>
 							</div>
 							</div>
 						</div>
 						</div>
+
+						<div class="layui-item query athird">
+							<label class="layui-form-label">是否接口开票:</label>
+							<div class="layui-input-block with-icon">
+								<select id="isOmsBilling" name="isOmsBilling" class="form-control simple-select">
+									<option value=""></option>
+									<option value="0" <c:if test="${workInvoiceShow.isOmsBilling=='0'}">selected</c:if>>是</option>
+									<option value="1" <c:if test="${workInvoiceShow.isOmsBilling=='1'}">selected</c:if>>否</option>
+								</select>
+							</div>
+						</div>
 					</div>
 					</div>
 				</form:form>
 				</form:form>
 			</div>
 			</div>

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

@@ -287,6 +287,13 @@
 				}
 				}
 			}
 			}
 
 
+			var isSmsNotice = '${workInvoice.isSmsNotice}';//后端获取值
+			if(undefined == isSmsNotice || null == isSmsNotice || '' == isSmsNotice || isSmsNotice == "0"){
+				document.getElementsByName("isSmsNotice")[1].checked = true;
+			}else{
+				document.getElementsByName("isSmsNotice")[0].checked = true;
+			}
+
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			if(redFlushReason == "01"){
 			if(redFlushReason == "01"){
 				document.getElementsByName("redFlushReason")[0].checked = true;
 				document.getElementsByName("redFlushReason")[0].checked = true;
@@ -1337,6 +1344,14 @@
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 											cssStyle="background-color:#fff" title="区域" url="/sys/area/treeData" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="false" isAll="true"/>
 					</div>
 					</div>
 				</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">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="是" value="1">
+						<input type="radio" name="isSmsNotice" lay-filter="isSmsNoticeRadio" title="否" value="0">
+					</div>
+				</div>
 				<div class="layui-item layui-col-sm12 with-textarea">
 				<div class="layui-item layui-col-sm12 with-textarea">
 					<label class="layui-form-label double-line">备注:</label>
 					<label class="layui-form-label double-line">备注:</label>
 					<div class="layui-input-block">
 					<div class="layui-input-block">

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

@@ -83,6 +83,14 @@
 				}
 				}
 			}
 			}
 
 
+			var isSmsNotice = '${workInvoice.isSmsNotice}';//后端获取值
+			if(undefined == isSmsNotice || null == isSmsNotice || '' == isSmsNotice || isSmsNotice == "0"){
+				document.getElementsByName("isSmsNotice")[1].checked = true;
+			}else{
+				document.getElementsByName("isSmsNotice")[0].checked = true;
+			}
+
+
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			var redFlushReason = '${workInvoice.redFlushReason}';//后端获取值
 			if(redFlushReason == "01"){
 			if(redFlushReason == "01"){
 				document.getElementsByName("redFlushReason")[0].checked = true;
 				document.getElementsByName("redFlushReason")[0].checked = true;
@@ -307,6 +315,14 @@
 						<input id="invoiceNumberStr" style="background-color: #f1f1f1" htmlEscape="false" readonly="true" class="form-control layui-input" value="${workInvoice.invoiceNumberStr}"/>
 						<input id="invoiceNumberStr" style="background-color: #f1f1f1" htmlEscape="false" readonly="true" class="form-control layui-input" value="${workInvoice.invoiceNumberStr}"/>
 					</div>
 					</div>
 				</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">
+						<input type="radio" name="isSmsNotice" disabled lay-filter="isSmsNoticeRadio" title="是" value="1">
+						<input type="radio" name="isSmsNotice" disabled lay-filter="isSmsNoticeRadio" title="否" value="0">
+					</div>
+				</div>
 				<%--<div class="layui-item layui-col-sm12">
 				<%--<div class="layui-item layui-col-sm12">
 					<label class="layui-form-label">开票内容要求:</label>
 					<label class="layui-form-label">开票内容要求:</label>
 					<div class="layui-input-block">
 					<div class="layui-input-block">