sangwenwei 1 gadu atpakaļ
vecāks
revīzija
8e4aff8b2c

+ 7 - 0
src/main/java/com/jeeplus/modules/workinvoice/dao/WorkInvoiceDao.java

@@ -47,6 +47,13 @@ public interface WorkInvoiceDao extends CrudDao<WorkInvoice> {
 	public int updateProcessInstanceId(WorkInvoice workInvoice);
 
 	/**
+	 * 更新作废流程实例ID
+	 * @param
+	 * @return
+	 */
+	public int updateCancellationProcessInstanceId(WorkInvoice workInvoice);
+
+	/**
 	 * 修改日期信息
 	 * @param workInvoice
 	 * @return

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

@@ -111,9 +111,27 @@ public class WorkInvoice extends ActEntity<WorkInvoice> {
 	private Integer workReceiptCount;    	//收款数据量
 	private Double receiptMoneyD; //已收款金额
 	private Double notReceiptMoneyD; //未收款金额
+	private String cancellationProcessInstanceId; //作废流程实例id
+	private String cancellationState; //作废状态
 
 	private Integer electronicInvoiceFlag ;	//是否已经上传电子发票信息(0:未上传;1:已上传)
 
+	public String getCancellationProcessInstanceId() {
+		return cancellationProcessInstanceId;
+	}
+
+	public void setCancellationProcessInstanceId(String cancellationProcessInstanceId) {
+		this.cancellationProcessInstanceId = cancellationProcessInstanceId;
+	}
+
+	public String getCancellationState() {
+		return cancellationState;
+	}
+
+	public void setCancellationState(String cancellationState) {
+		this.cancellationState = cancellationState;
+	}
+
 	@Override
 	@ExcelField(title="经办人", fieldType=User.class, value="createBy.name", align=2, sort=7)
 	public User getCreateBy() {

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

@@ -1687,14 +1687,14 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 	 */
 	@Transactional(readOnly = false)
 	public void conditionCancelInvalidate(WorkInvoice workInvoice) {
-		String invalidateProcessInstanceId = workInvoice.getProcessInstanceId();
+		String invalidateProcessInstanceId = workInvoice.getCancellationProcessInstanceId();
 		try {
 			//将流程图中尚未走到的task的流程追踪信息逻辑删除,添加一条"撤销"流程追踪信息
 			WorkActivityProcess process = new WorkActivityProcess();
-			process.setProcessInstanceId(workInvoice.getProcessInstanceId());
+			process.setProcessInstanceId(workInvoice.getCancellationProcessInstanceId());
 			process.setIsApproval("0");
 			WorkActivityProcess workActivityProcess = new WorkActivityProcess();
-			workActivityProcess.setProcessInstanceId(workInvoice.getProcessInstanceId());
+			workActivityProcess.setProcessInstanceId(workInvoice.getCancellationProcessInstanceId());
 			List<WorkActivityProcess> processList = workActivityProcessService.findList(workActivityProcess);
 			WorkProjectNotify notify = new WorkProjectNotify();
 			notify.setNotifyId(workInvoice.getId());
@@ -1721,7 +1721,7 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 			}
 			//结束该流程,设为"撤销"状态
 			actTaskService.endProcessInstance(invalidateProcessInstanceId, "发票作废-撤销");
-			workInvoice.setInvoiceState("11");
+			workInvoice.setCancellationState("11");
 			workInvoice.preUpdate();
 			workInvoiceDao.update(workInvoice);
 		} catch (ActivitiObjectNotFoundException e) {

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

@@ -2898,14 +2898,14 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	 */
 	@Transactional(readOnly = false)
 	public void conditionCancelInvalidate(WorkInvoice workInvoice) {
-		String invalidateProcessInstanceId = workInvoice.getProcessInstanceId();
+		String invalidateProcessInstanceId = workInvoice.getCancellationProcessInstanceId();
 		try {
 			//将流程图中尚未走到的task的流程追踪信息逻辑删除,添加一条"撤销"流程追踪信息
 			WorkActivityProcess process = new WorkActivityProcess();
-			process.setProcessInstanceId(workInvoice.getProcessInstanceId());
+			process.setProcessInstanceId(workInvoice.getCancellationProcessInstanceId());
 			process.setIsApproval("0");
 			WorkActivityProcess workActivityProcess = new WorkActivityProcess();
-			workActivityProcess.setProcessInstanceId(workInvoice.getProcessInstanceId());
+			workActivityProcess.setProcessInstanceId(workInvoice.getCancellationProcessInstanceId());
 			List<WorkActivityProcess> processList = workActivityProcessService.findList(workActivityProcess);
 			WorkProjectNotify notify = new WorkProjectNotify();
 			notify.setNotifyId(workInvoice.getId());
@@ -2932,7 +2932,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			}
 			//结束该流程,设为"撤销"状态
 			actTaskService.endProcessInstance(invalidateProcessInstanceId, "发票作废-撤销");
-			workInvoice.setInvoiceState("11");
+			workInvoice.setCancellationState("11");
 			workInvoice.preUpdate();
 			workInvoiceDao.update(workInvoice);
 		} catch (ActivitiObjectNotFoundException e) {
@@ -2990,7 +2990,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	 * @param variables
 	 */
 	@Transactional(readOnly = false)
-	public String cancellationBranch(WorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
+	public String cancellationBranch(WorkInvoice workInvoice,Map<String, Object> variables,String cancellationProcessInstanceId) {
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), WorkInvoice.SERIAL_BIZCODE));
@@ -3041,7 +3041,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 				if (a.getRole()!=null && StringUtils.isNotBlank(a.getRole().getEnname())){
 					List enusers = UserUtils.getByRoleActivityEnnames(a.getRole().getEnname(),office.getId(),"5",workInvoice.getCreateBy());
 					if (enusers.size()==0){
-						workInvoice.setInvoiceState("1");//暂存
+						workInvoice.setCancellationState("1");//暂存
 						this.save(workInvoice);
 						return "流程审批人不能为空,角色"+a.getRole().getName()+"下无用户,请联系管理员!";
 					}
@@ -3091,14 +3091,14 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
 		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 		workInvoice.setProcessInstance(processInstance);
-		if (StringUtils.isNotBlank(processInstanceId)) {
-			workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
-			workActivityProcessService.deleteProcessInstanceId(processInstanceId);
-			workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
+		if (StringUtils.isNotBlank(cancellationProcessInstanceId)) {
+			workActivityProcessService.updateProcessInstanceId(processInstance.getId(),cancellationProcessInstanceId);
+			workActivityProcessService.deleteProcessInstanceId(cancellationProcessInstanceId);
+			workActivityProcessService.deleteProcessIdAuditUsers(cancellationProcessInstanceId);
 		}
 		// 更新流程实例ID
-		workInvoice.setProcessInstanceId(processInstance.getId());
-		workInvoiceDao.updateProcessInstanceId(workInvoice);
+		workInvoice.setCancellationProcessInstanceId(processInstance.getId());
+		workInvoiceDao.updateCancellationProcessInstanceId(workInvoice);
 		//通知添加流程实例ID
 		workProjectNotify.setProcessInstanceId(processInstance.getId());
 		workProjectNotifyService.save(workProjectNotify);
@@ -3146,14 +3146,14 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			updateWorkInvoiceInfo(workInvoice);
 		}
 		String comment = "";
-		if (workInvoice.getInvoiceState().equals("9")){
+		if (workInvoice.getCancellationState().equals("9")){
 			comment = ("yes".equals(workInvoice.getAct().getFlag())?"[重新申请] ":"[已撤销] ");
 		}else {
 			comment = ("yes".equals(workInvoice.getAct().getFlag())?"[同意] ":"[驳回] ")+workInvoice.getAct().getComment();
 		}
 		//yes 的时候状态为审核通过 否则为未通过
 		//6 作废审批中 9 作废驳回
-		workInvoice.setInvoiceState(("yes".equals(workInvoice.getAct().getFlag()) ? "6" : "9"));
+		workInvoice.setCancellationState(("yes".equals(workInvoice.getAct().getFlag()) ? "6" : "9"));
 		Map<String, Object> vars = Maps.newHashMap();
 		//业务逻辑对应的条件表达式
 		String exp = "";
@@ -3161,7 +3161,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		String notifyRole = "";
 		int key = 0;
 		String enname = "";
-		List<Activity> activitieList = activityService.getByProcessInstanceId(workInvoice.getProcessInstanceId());
+		List<Activity> activitieList = activityService.getByProcessInstanceId(workInvoice.getCancellationProcessInstanceId());
 		WorkActivityMenu workActivityMenu = new WorkActivityMenu();
 		if (activitieList != null && activitieList.size() != 0) {
 			Iterator<Activity> iterator = activitieList.iterator();
@@ -3177,7 +3177,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 
 		WorkActivityProcess workActivityProcess = new WorkActivityProcess();
 		WorkActivityProcess selectProcess = new WorkActivityProcess();
-		selectProcess.setProcessInstanceId(workInvoice.getProcessInstanceId());
+		selectProcess.setProcessInstanceId(workInvoice.getCancellationProcessInstanceId());
 		List<WorkActivityProcess> workActivityProcesses = workActivityProcessService.findList(selectProcess);
 		List<Activity> activities = workActivityMenu.getActivities();
 		if (StringUtils.isNotBlank(workActivityMenu.getProcessType()) && !workActivityMenu.getProcessType().equals("newWorkInvoiceBranch")) {
@@ -3192,7 +3192,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 					}
 					exp = "pass";
 					if (!"yes".equals(workInvoice.getAct().getFlag())) {
-						workInvoice.setInvoiceState("9");
+						workInvoice.setCancellationState("9");
 						workActivityProcess.setIsApproval("2");
 						String returnBack = "-1";
 						for (Activity activity : activities) {
@@ -3216,7 +3216,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 					workActivityProcess.setId("");
 					workActivityProcess.setCount(0);
 					if (!"yes".equals(workInvoice.getAct().getFlag())) {
-						workInvoice.setInvoiceState("3");
+						workInvoice.setCancellationState("3");
 						workActivityProcess.setIsApproval("2");
 					} else {
 						workActivityProcess.setIsApproval("1");
@@ -3239,7 +3239,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 					taskCount = "1";
 					exp = "pass";
 					if ("yes".equals(workInvoice.getAct().getFlag()) &&("0").equals(workInvoice.getExt())) {
-						workActivityProcessService.insertAuditsByType(auditUsers,workInvoice.getProcessInstanceId(),2,1);
+						workActivityProcessService.insertAuditsByType(auditUsers,workInvoice.getCancellationProcessInstanceId(),2,1);
 						//分公司流程
 						//notifyRole = "财务主任审批";
 						notifyRole = "审批通过";
@@ -3270,7 +3270,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 					workActivityProcess.setCount(0);
 					enname = "cwygevod";
 					if (!"yes".equals(workInvoice.getAct().getFlag())) {
-						workInvoice.setInvoiceState("3");
+						workInvoice.setCancellationState("3");
 					}
 					break;
 				} else if ("apply_end".equals(taskDefKey)) {
@@ -3284,7 +3284,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		// 提交流程任务
 		vars.put(exp, "yes".equals(workInvoice.getAct().getFlag()) ? true : false);
 		vars.put("passs", true);
-		workActivityProcessService.updateProcess(workActivityProcess,workActivityMenu,key,taskCount,workInvoice.getProcessInstanceId(),taskDefKey,"modifyApply",workInvoice.getAct().getFlag(),comment, activities);
+		workActivityProcessService.updateProcess(workActivityProcess,workActivityMenu,key,taskCount,workInvoice.getCancellationProcessInstanceId(),taskDefKey,"modifyApply",workInvoice.getAct().getFlag(),comment, activities);
 		// 提交流程任务
 		actTaskService.complete(workInvoice.getAct().getTaskId(), workInvoice.getAct().getProcInsId(), workInvoice.getAct().getComment(), vars);
 		boolean state = actTaskService.isProcessEnd(workInvoice.getAct().getProcInsId());
@@ -3295,7 +3295,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			title = "实际开票单位:"+workInvoice.getClient().getName();
 			users.add(workInvoice.getCreateBy());
 			if ("yes".equals(workInvoice.getAct().getFlag())) {
-				workInvoice.setInvoiceState("7");
+				workInvoice.setCancellationState("7");
 				WorkProjectNotify notify = new WorkProjectNotify();
 				notify.setNotifyId(workInvoice.getId());
 				userList = workProjectNotifyService.readByNotifyId(notify);
@@ -3315,8 +3315,8 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 				WorkProjectNotify notify = new WorkProjectNotify();
 				notify.setNotifyId(workInvoice.getId());
 				userList = workProjectNotifyService.readByNotifyId(notify);
-				if (StringUtils.isNotBlank(workInvoice.getInvoiceState()) && !workInvoice.getInvoiceState().equals("3")){
-					workInvoice.setInvoiceState("9");
+				if (StringUtils.isNotBlank(workInvoice.getCancellationState()) && !workInvoice.getCancellationState().equals("3")){
+					workInvoice.setCancellationState("9");
 					workProjectNotifyService
 							.save(UtilNotify
 									.saveNotify(workInvoice.getId(),

+ 31 - 18
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceTwoController.java

@@ -579,19 +579,22 @@ public class WorkInvoiceTwoController extends BaseController {
 		if("1".equals(tabId)){
 			view = "workInvoiceView";
 		}else if("3".equals(tabId)){
-			ProcessInstance processInstance = actTaskService.getProcIns(workInvoice.getProcessInstanceId());
-			if (processInstance!=null) {
-				Task taskInfok = actTaskService.getCurrentTaskInfo(processInstance);
-				Act act = new Act();
-				act.setTaskId(taskInfok.getId());
-				act.setTaskName(taskInfok.getName());
-				act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
-				act.setProcDefId(taskInfok.getProcessDefinitionId());
-				act.setProcInsId(taskInfok.getProcessInstanceId());
-				act.setTask(taskInfok);
-				workInvoice.setAct(act);
-				view = "conditionWorkInvoiceTwoModify";
+			if (StringUtils.isNotBlank(workInvoice.getCancellationProcessInstanceId())){
+				ProcessInstance processInstance = actTaskService.getProcIns(workInvoice.getCancellationProcessInstanceId());
+				if (processInstance!=null) {
+					Task taskInfok = actTaskService.getCurrentTaskInfo(processInstance);
+					Act act = new Act();
+					act.setTaskId(taskInfok.getId());
+					act.setTaskName(taskInfok.getName());
+					act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
+					act.setProcDefId(taskInfok.getProcessDefinitionId());
+					act.setProcInsId(taskInfok.getProcessInstanceId());
+					act.setTask(taskInfok);
+					workInvoice.setAct(act);
+					view = "conditionWorkInvoiceTwoModify";
+				}
 			}
+
 		}
 		// 环节编号
 		String taskDefKey = workInvoice.getAct().getTaskDefKey();
@@ -634,13 +637,13 @@ public class WorkInvoiceTwoController extends BaseController {
 
 		User user = workInvoice.getCreateBy();
 		User loginUser = UserUtils.getUser();
-		String invoiceState = workInvoice.getInvoiceState();
+		String invoiceState = workInvoice.getCancellationState();
 		if(null != loginUser && (loginUser.getOffice().getName().equals("财务部") || loginUser.getId().equals(workInvoice.getCreateBy().getId()))){
 		//启动流程
-		workInvoice.setInvoiceState("6");
-		String processInstanceId ="";
+		workInvoice.setCancellationState("6");
+		String cancellationProcessInstanceId ="";
 		if (user!=null && StringUtils.isNotBlank(user.getId()) && StringUtils.isNotBlank(invoiceState) && "9".equals(invoiceState)){
-			processInstanceId = workInvoiceService.get(workInvoice.getId()).getProcessInstanceId();
+			cancellationProcessInstanceId = workInvoiceService.get(workInvoice.getId()).getCancellationProcessInstanceId();
 		}
 		try {
 			Map<String, Object> variables = Maps.newHashMap();
@@ -654,9 +657,9 @@ public class WorkInvoiceTwoController extends BaseController {
 			//1总公司0分公司
 			if("1".equals(workInvoice.getExt())){
 				//str = workInvoiceService.save(workInvoice, variables,processInstanceId);
-				str = workInvoiceService.cancellationBranch(workInvoice, variables,processInstanceId);
+				str = workInvoiceService.cancellationBranch(workInvoice, variables,cancellationProcessInstanceId);
 			}else if("0".equals(workInvoice.getExt())){
-				str = workInvoiceService.cancellationBranch(workInvoice, variables,processInstanceId);
+				str = workInvoiceService.cancellationBranch(workInvoice, variables,cancellationProcessInstanceId);
 			}
 			if(StringUtils.isNotBlank(workInvoice.getExt())){
 				if (StringUtils.isNotBlank(str)){
@@ -1336,6 +1339,16 @@ public class WorkInvoiceTwoController extends BaseController {
 	}
 
 	/**
+	 * 读取单个作废实体流程
+	 * @return
+	 */
+	@RequestMapping(value = "getCancellationProcess")
+	public String getCancellationProcess(WorkInvoice workInvoice,Model model) {
+		model.addAttribute("processInstanceId", workInvoice.getCancellationProcessInstanceId());
+		return "modules/workinvoice/workInvoiceTask";
+	}
+
+	/**
 	 * 撤销
 	 */
 	@RequestMapping("cancelInvalidate")

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

@@ -2336,7 +2336,7 @@ public class WorkProjectNotifyController extends BaseController {
 						workInvoice.setBank(bankName);
 					}
 					workInvoice.setHome("home");
-					workInvoice.setAct(getByAct(workInvoice.getProcessInstanceId()));
+					workInvoice.setAct(getByAct(workInvoice.getCancellationProcessInstanceId()));
 					String taskDefKey = workInvoice.getAct().getTaskDefKey();
 					model.addAttribute("workInvoice", workInvoice);
 					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {

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

@@ -67,7 +67,9 @@
 		a.new_drawer as "newDrawer",
 		a.actual_drawer_email_address as "actualDrawerEmailAddress",
 		a.actual_drawer_id as "actualDrawerId",
-		a.electronic_invoice_flag as "electronicInvoiceFlag"
+		a.electronic_invoice_flag as "electronicInvoiceFlag",
+		a.cancellation_process_instance_id as "cancellationProcessInstanceId",
+		a.cancellation_state as "cancellationState"
 	</sql>
 
 	<sql id="newWorkInvoiceColumns">
@@ -492,7 +494,7 @@
 				<if test="dbName == 'mysql'">concat('%',#{number},'%')</if>
 			</if>
 			<if test="invoiceState != null and invoiceState != ''">
-				AND a.invoice_state = #{invoiceState}
+				AND a.invoice_state = #{invoiceState} or a.cancellation_state = #{invoiceState}
 			</if>
 			<if test="beginContractDate != null and endContractDate != null and beginContractDate != '' and endContractDate != ''">
 				AND a.invoice_date BETWEEN #{beginContractDate} AND #{endContractDate}
@@ -1224,7 +1226,7 @@
 				<if test="dbName == 'mysql'">concat('%',#{number},'%')</if>
 			</if>
 			<if test="invoiceState != null and invoiceState != ''">
-				AND a.invoice_state = #{invoiceState}
+				AND a.invoice_state = #{invoiceState} or a.cancellation_state = #{invoiceState}
 			</if>
 			<if test="beginContractDate != null and endContractDate != null and beginContractDate != '' and endContractDate != ''">
 				AND a.invoice_date BETWEEN #{beginContractDate} AND #{endContractDate}
@@ -1550,6 +1552,12 @@
 		WHERE id = #{id}
 	</update>
 
+	<update id="updateCancellationProcessInstanceId">
+		UPDATE work_invoice SET
+			cancellation_process_instance_id = #{cancellationProcessInstanceId}
+		WHERE id = #{id}
+	</update>
+
 	<insert id="insert">
 		INSERT INTO work_invoice(
 			id,
@@ -1689,7 +1697,9 @@
 			new_drawer_id = #{newDrawerId},
 			actual_drawer_email_address = #{actualDrawerEmailAddress},
 			new_drawer = #{newDrawer},
-			actual_drawer_id = #{actualDrawerId}
+			actual_drawer_id = #{actualDrawerId},
+			cancellation_process_instance_id = #{cancellationProcessInstanceId},
+			cancellation_state = #{cancellationState}
 		WHERE id = #{id}
 	</update>
 	<update id="updateDate">
@@ -1715,7 +1725,8 @@
 	<!--逻辑删除-->
 	<update id="cancellationDelete">
 		UPDATE work_invoice SET
-			invoice_state=5
+			cancellation_process_instance_id='',
+			cancellation_state = 0
 		WHERE id = #{id}
 	</update>
 

+ 24 - 0
src/main/webapp/static/common/jeeplus.js

@@ -616,6 +616,30 @@ function getWorkInvoiceAuditState(id)
     return result;
 }
 
+function getCancellationAuditState(id)
+{
+    var result ={};
+    result.action = true;
+    switch(id)
+    {
+        case "0":result.label = "tempstore";result.status="未作废";result.action = false;break;
+        case "1":result.label = "tempstore";result.status="暂存";result.action = false;break;
+        case "2":result.label = "auditing";result.status="审批中";break;
+        case "3":result.label = "cancel";result.status="撤回";break;
+        case "4":result.label = "reject";result.status="驳回";break;
+        case "5":result.label = "signed";result.status="已完成";break;
+        case "6":result.label = "auditing";result.status="作废中";break;
+        case "7":result.label = "signed";result.status="作废";break;
+        case "9":result.label = "reject";result.status="作废驳回";break;
+        case "8":result.label = "changing";result.status="变更中";break;
+        case "10":result.label = "signed";result.status="无复核";result.action = false;break;
+        case "11":result.label = "cancel";result.status="作废撤回";break;
+        default:
+            result.label = "unknown";result.status="未作废";break;
+    }
+    return result;
+}
+
 function getReportIssueState(id)
 {
     var result ={};

+ 21 - 8
src/main/webapp/webpage/modules/workinvoice/workInvoiceTwoList.jsp

@@ -833,7 +833,19 @@
                             var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         return xml;
                     }}
-                ,{field:'op',align:'center',title:"操作",fixed: 'right',width:140,templet:function(d){
+                ,{align:'center', title: '作废状态', fixed: 'right', width:70,templet:function(d){
+						<%--var st = getAuditState(d.status);--%>
+
+						<%--var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/workinvoice/workInvoice/getProcessOne?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";--%>
+						<%--return xml;--%>
+						var st = getCancellationAuditState(d.cancellationStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogListView('发票作废流程追踪', '${ctx}/workinvoiceTwo/workinvoiceTwo/getCancellationProcess?id=" + d.id + "','"+ d.id +"','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >"+ st.status + "</span>";
+						return xml;
+					}}
+				,{field:'op',align:'center',title:"操作",fixed: 'right',width:140,templet:function(d){
                         ////对操作进行初始化
                         var xml="<div class=\"layui-btn-group\">";
 
@@ -873,7 +885,7 @@
 						if(d.cancellationFlag != undefined && d.cancellationFlag =="1")
 						{
 							xml +="<a href=\"javascript:void(0)\" onclick=\"openElectronicInvoiceDialogreplay('上传电子发票', '${ctx}/workinvoiceTwo/workinvoiceTwo/electronicInvoiceForm?id=" + d.id + "','95%','95%')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 上传电子发票</a>";
-							//xml +="<a href=\"javascript:void(0)\" onclick=\"openDialogreplay('作废发票', '${ctx}/workinvoiceTwo/workinvoiceTwo/cancellationForm?id=" + d.id + "&tabId=3','95%','95%')\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 作废</a>";
+							xml +="<a href=\"javascript:void(0)\" onclick=\"openDialogreplay('作废发票', '${ctx}/workinvoiceTwo/workinvoiceTwo/cancellationForm?id=" + d.id + "&tabId=3','95%','95%')\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 作废</a>";
 						}
 						if(d.conditionCanedit != undefined && d.conditionCanedit =="1")
 						{
@@ -919,6 +931,7 @@
                     ,"responsibleName":"${workInvoice.createBy.name}"
                     ,"receiptMoney":"${workInvoice.receiptMoney}"
                     ,"status":"${workInvoice.invoiceState}"
+                    ,"cancellationStatus":"${workInvoice.cancellationState}"
 					,"notifyFlag":"${workInvoice.notifyFlag}"
 					,"notifyId":"${workInvoice.notifyId}"
 					,"widNumber":"${workInvoice.widNumber}"
@@ -932,21 +945,21 @@
                     ,"receiptMoneyDate":"<fmt:formatDate value="${workInvoice.receiptMoneyDate}" pattern="yyyy-MM-dd"/>"
                     <c:if test="${workInvoice.invoiceState == 1 && fns:getUser().id == workInvoice.createBy.id}"><shiro:hasPermission name="workinvoice:workInvoice:edit">,"canedit1":"1"</shiro:hasPermission></c:if><%--暂存-修改--%>
                     <c:if test="${workInvoice.invoiceState == '4' && fns:getUser().id == workInvoice.createBy.id}">,"canedit2":"1"</c:if><%--驳回--修改--%>
-                    <c:if test="${workInvoice.invoiceState == '9' && fns:getUser().id == workInvoice.createBy.id}">,"conditionCanedit":"1"</c:if><%--驳回--修改--%>
-                    <c:if test="${workInvoice.invoiceState == '11' && fns:getUser().id == workInvoice.createBy.id}">,"conditionCanedit3":"1"</c:if><%--作废撤回--修改--%>
+                    <c:if test="${(workInvoice.invoiceState == '9' || workInvoice.cancellationState == '9') && fns:getUser().id == workInvoice.createBy.id}">,"conditionCanedit":"1"</c:if><%--驳回--修改--%>
+                    <c:if test="${(workInvoice.cancellationState == '11' || workInvoice.invoiceState == '11') && fns:getUser().id == workInvoice.createBy.id}">,"conditionCanedit3":"1"</c:if><%--作废撤回--修改--%>
                     <c:if test="${workInvoice.invoiceState == '3' && fns:getUser().id == workInvoice.createBy.id}">,"canedit3":"1"</c:if><%--撤回--修改--%>
                     <c:if test="${fns:getUser().id == workInvoice.createBy.id}"><c:if test="${workInvoice.invoiceState == '1' or workInvoice.invoiceState == '3' or workInvoice.invoiceState == '4'}"><shiro:hasPermission name="workinvoice:workInvoice:del">,"candelete":"1"</shiro:hasPermission></c:if></c:if>
-                    <c:if test="${fns:getUser().id == workInvoice.createBy.id}"><c:if test="${workInvoice.invoiceState == '9' || workInvoice.invoiceState == '11' }">,"conditionCandelete":"1"</c:if></c:if>
+                    <c:if test="${fns:getUser().id == workInvoice.createBy.id}"><c:if test="${workInvoice.invoiceState == '9' || workInvoice.invoiceState == '11' || workInvoice.cancellationState == '9' || workInvoice.cancellationState == '11' }">,"conditionCandelete":"1"</c:if></c:if>
                     <c:if test="${workInvoice.invoiceState == '2' && fns:getUser().id == workInvoice.createBy.id}">,"cancancel":"1"</c:if>
-                    <c:if test="${workInvoice.invoiceState == '6' && fns:getUser().id == workInvoice.createBy.id}">,"conditionCancancel":"1"</c:if>
-					<c:if test="${workInvoice.invoiceState == '5' && fns:getUser().id == workInvoice.createBy.id}">,"cancellationFlag":"1"</c:if>
+                    <c:if test="${(workInvoice.cancellationState == '6' ||workInvoice.invoiceState == '6') && fns:getUser().id == workInvoice.createBy.id}">,"conditionCancancel":"1"</c:if>
+					<c:if test="${workInvoice.invoiceState == '5' && (workInvoice.cancellationState == '' or workInvoice.cancellationState == undefined or  workInvoice.cancellationState == '0') && fns:getUser().id == workInvoice.createBy.id}">,"cancellationFlag":"1"</c:if>
 
 
 					<shiro:hasPermission name="workinvoice:workInvoice:alteredit">
                     <c:if test="${workInvoice.invoiceState == '5'}">,"canalter":"1"</c:if>
                     </shiro:hasPermission>
 					,"cancellation":<c:choose>
-							<c:when test="${workInvoice.invoiceState == '7'}">"是"</c:when>
+							<c:when test="${workInvoice.cancellationState == '7' or workInvoice.invoiceState == '7'}">"是"</c:when>
 					<c:otherwise>"否"</c:otherwise>
 					</c:choose>
 					<shiro:hasPermission name="ruralProject:ruralProjectView:workInvoiceView">