Browse Source

项目合同等驳回后首页待办可直接删除或作废操作

user5 4 years ago
parent
commit
0349b3ab90

+ 9 - 0
src/main/java/com/jeeplus/modules/oa/service/OaNotifyService.java

@@ -1586,4 +1586,13 @@ public class OaNotifyService extends CrudService<OaNotifyDao, OaNotify> {
             dao.updateOaNotifyView(oaNotifyView);
         }
     }
+
+    /**
+     * 删除公告通知
+     * @param oaNotify
+     */
+    @Transactional(readOnly = false)
+    public void delete(OaNotify oaNotify){
+        super.delete(oaNotify);
+    }
 }

+ 2 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java

@@ -2036,8 +2036,8 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
                             notifyRole = "审批通过";
                             workActivityProcess.setIsApproval("1");
                             //处理上报数据
-                            Map<String,String> map  = RuralProjectReportedUtil.reportedDataManage(reported);
-                            String mapStr = MapToXmlUtil.getMapToXML(map);
+                            //Map<String,String> map  = RuralProjectReportedUtil.reportedDataManage(reported);
+                            //String mapStr = MapToXmlUtil.getMapToXML(map);
                             //进行上报
                             /*String client = RuralProjectReportedUtil.client(mapStr);
                             if(!"Success".equals(client)){

+ 6 - 0
src/main/java/com/jeeplus/modules/workprojectnotify/dao/WorkProjectNotifyDao.java

@@ -84,4 +84,10 @@ public interface WorkProjectNotifyDao extends CrudDao<WorkProjectNotify> {
      * @param workProjectNotify
      */
     void readNotify(WorkProjectNotify workProjectNotify);
+
+    /**
+     * 删除流程信息
+     * @param workProjectNotify
+     */
+    void deleteByNotifyId(WorkProjectNotify workProjectNotify);
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/workprojectnotify/service/WorkProjectNotifyService.java

@@ -263,4 +263,13 @@ public class WorkProjectNotifyService extends CrudService<WorkProjectNotifyDao,
 		dao.readNotify(workProjectNotify);
 	}
 
+	/**
+	 * 删除流程待办信息
+	 * @param workProjectNotify
+	 */
+	@Transactional(readOnly = false)
+	public void deleteByNotifyId(WorkProjectNotify workProjectNotify){
+		dao.deleteByNotifyId(workProjectNotify);
+	}
+
 }

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

@@ -935,7 +935,7 @@ public class WorkProjectNotifyController extends BaseController {
 			workProjectNotifyService.readNotify(workProjectNotifyService.get(id));
 		}
 		map.put("code",1);
-		map.put("msg","通知信息批量只读成功");
+		map.put("msg","通知信息标记为已读成功");
 		return map;
 	}
 
@@ -958,7 +958,7 @@ public class WorkProjectNotifyController extends BaseController {
 			}
 		}
 		map.put("code",1);
-		map.put("msg","通知信息全部读成功");
+		map.put("msg","通知信息全部标记已读成功");
 		return map;
 	}
 
@@ -3285,23 +3285,141 @@ public class WorkProjectNotifyController extends BaseController {
 	}
 
 	/**
-	 * 删除项目
+	 * 作废项目
+	 * @param workProjectNotify
+	 * @return
 	 */
-	@RequestMapping(value = "deleteNotify")
+	@RequestMapping(value = "cancellationNotify")
 	@ResponseBody
-	public Map<String,String> deleteNotify(WorkProjectNotify workProjectNotify, RedirectAttributes redirectAttributes) {
+	public Map<String,String> cancellationNotify(WorkProjectNotify workProjectNotify) {
 		Map map = new HashMap();
 		if (workProjectNotify.getType().equals("39")) {    //项目登记
 			RuralProjectRecords projectRecords = ruralProjectRecordsService.get(workProjectNotify.getNotifyId());
 			int status = projectRecords.getProjectStatus();
 			if(status== ProjectStatusEnum.TSTORE.getValue()||status== ProjectStatusEnum.REJECTED.getValue()||status== ProjectStatusEnum.RECALL.getValue()){
+				//作废项目信息
 				ruralProjectRecordsService.delete(projectRecords);
+				//删除流程待办信息
+				workProjectNotifyService.deleteByNotifyId(workProjectNotify);
 				map.put("code",1);
 				map.put("msg","作废项目成功");
 			}else{
 				map.put("code",0);
 				map.put("msg","作废项目失败,只有“暂存”、“驳回”、“撤回”状态的项目才能作废");
 			}
+		}else if (workProjectNotify.getType().equals("16")) {    //合同 作废
+			WorkContractInfo workContractInfo = workContractInfoService.get(workProjectNotify.getNotifyId());
+			int status = Integer.parseInt(workContractInfo.getContractState());
+			if(status== ProjectStatusEnum.TSTORE.getValue()||status== ProjectStatusEnum.REJECTED.getValue()||status== ProjectStatusEnum.RECALL.getValue()){
+				//作废合同信息
+				workContractInfoService.delete(workContractInfo);
+				//删除流程待办信息
+				workProjectNotifyService.deleteByNotifyId(workProjectNotify);
+				map.put("code",1);
+				map.put("msg","合同信息作废成功");
+			}else{
+				map.put("code",0);
+				map.put("msg","合同信息作废失败,只有“暂存”、“驳回”、“撤回”状态的合同信息才能作废");
+			}
+		}
+		return map;
+	}
+
+	/**
+	 * 信息删除
+	 * @param workProjectNotify
+	 * @return
+	 */
+	@RequestMapping(value = "deleteNotify")
+	@ResponseBody
+	public Map<String,String> deleteNotify(WorkProjectNotify workProjectNotify) {
+		Map map = new HashMap();
+		if (workProjectNotify.getType().equals("92")) {    //项目新增报告 删除
+			ProjectReportData projectReportData = projectReportDataService.getOnRural(workProjectNotify.getNotifyId());
+			RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(projectReportData.getProject().getId());
+			Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(ruralProjectRecords.getId());
+			int status = Integer.parseInt(projectReportData.getStatus());
+			if(status== ProjectStatusEnum.TSTORE.getValue()||status== ProjectStatusEnum.REJECTED.getValue()||status== ProjectStatusEnum.RECALL.getValue()){
+				//修改工作内容中的信息(将工作内容的info_id清空)
+				ruralProjectMessageService.updateProjectcontentinfo(projectcontentinfo1);
+				//删除报告信息
+				ruralProjectMessageService.deleteReport(projectReportData);
+				//删除流程表信息
+				workProjectNotifyService.deleteActivityProcess(projectReportData.getProcessInstanceId());
+				//删除流程人员表信息
+				workProjectNotifyService.deleteActivityProcessUser(projectReportData.getProcessInstanceId());
+				//删除流程待办信息
+				workProjectNotifyService.deleteByNotifyId(workProjectNotify);
+				map.put("code",1);
+				map.put("msg","新增报告删除成功");
+			}else{
+				map.put("code",0);
+				map.put("msg","新增报告删除失败,只有“暂存”、“驳回”、“撤回”状态的报告才能删除");
+			}
+		}else if (workProjectNotify.getType().equals("89")) {    //公告删除
+			OaNotify oaNotify = oaNotifyService.get(workProjectNotify.getNotifyId());
+			int status = Integer.parseInt(oaNotify.getStatus());
+			if(status== ProjectStatusEnum.TSTORE.getValue()||status== ProjectStatusEnum.REJECTED.getValue()||status== ProjectStatusEnum.RECALL.getValue()){
+				//删除公告信息
+				oaNotifyService.delete(oaNotify);
+				//删除流程表信息
+				workProjectNotifyService.deleteActivityProcess(oaNotify.getProcessInstanceId());
+				//删除流程人员表信息
+				workProjectNotifyService.deleteActivityProcessUser(oaNotify.getProcessInstanceId());
+				//删除流程待办信息
+				workProjectNotifyService.deleteByNotifyId(workProjectNotify);
+				map.put("code",1);
+				map.put("msg","公告信息删除成功");
+			}else{
+				map.put("code",0);
+				map.put("msg","公告信息删除失败,只有“暂存”、“驳回”、“撤回”状态的公告信息才能删除");
+			}
+		}else if (workProjectNotify.getType().equals("21")) {    //发票删除
+			WorkInvoice workInvoice = workInvoiceService.get(workProjectNotify.getNotifyId());
+			int status = Integer.parseInt(workInvoice.getInvoiceState());
+			if(status== ProjectStatusEnum.TSTORE.getValue()||status== ProjectStatusEnum.REJECTED.getValue()||status== ProjectStatusEnum.RECALL.getValue()){
+				//删除发票信息
+				workInvoiceService.delete(workInvoice);
+				//删除流程待办信息
+				workProjectNotifyService.deleteByNotifyId(workProjectNotify);
+				map.put("code",1);
+				map.put("msg","发票信息删除成功");
+			}else{
+				map.put("code",0);
+				map.put("msg","发票信息删除失败,只有“暂存”、“驳回”、“撤回”状态的发票信息才能删除");
+			}
+		}else if (workProjectNotify.getType().equals("13")) {    //报销删除
+			WorkReimbursement workReimbursement = workReimbursementService.get(workProjectNotify.getNotifyId());
+			int status = Integer.parseInt(workReimbursement.getStatus());
+			if(status== ProjectStatusEnum.TSTORE.getValue()||status== ProjectStatusEnum.REJECTED.getValue()||status== ProjectStatusEnum.RECALL.getValue()){
+				//删除报销信息
+				workReimbursementService.delete(workReimbursement);
+				//删除流程待办信息
+				workProjectNotifyService.deleteByNotifyId(workProjectNotify);
+				map.put("code",1);
+				map.put("msg","报销信息删除成功");
+			}else{
+				map.put("code",0);
+				map.put("msg","报销信息删除失败,只有“暂存”、“驳回”、“撤回”状态的报销信息才能删除");
+			}
+		}else if (workProjectNotify.getType().equals("139")) {    //报销删除
+			ProjectFollowReport followReport = projectImplementEarlyService.getFollowById(workProjectNotify.getNotifyId());
+			int status = followReport.getStatus();
+			if(status== ProjectStatusEnum.TSTORE.getValue()||status== ProjectStatusEnum.REJECTED.getValue()||status== ProjectStatusEnum.RECALL.getValue()){
+				//删除咨询成果
+				projectImplementEarlyService.deleteFollow(followReport);
+				//删除流程表信息
+				workProjectNotifyService.deleteActivityProcess(followReport.getProcessInstanceId());
+				//删除流程人员表信息
+				workProjectNotifyService.deleteActivityProcessUser(followReport.getProcessInstanceId());
+				//删除流程待办信息
+				workProjectNotifyService.deleteByNotifyId(workProjectNotify);
+				map.put("code",1);
+				map.put("msg","咨询成果信息删除成功");
+			}else{
+				map.put("code",0);
+				map.put("msg","咨询成果信息删除失败,只有“暂存”、“驳回”、“撤回”状态的咨询成果信息才能删除");
+			}
 		}
 		return map;
 	}

+ 4 - 0
src/main/resources/mappings/modules/workprojectnotify/WorkProjectNotifyDao.xml

@@ -569,6 +569,10 @@
 		delete from work_activity_process_user where process_id = #{processInstanceId}
 	</delete>
 
+	<delete id="deleteByNotifyId">
+		delete from work_project_notify where notify_id = #{notifyId}
+	</delete>
+
 
 
 

+ 1 - 1
src/main/webapp/static/common/jeeplus.js

@@ -467,7 +467,7 @@ function getReportedState(id)
         case "4":result.label = "reject";result.status="驳回";break;
         case "5":result.label = "signed";result.status="已上报";break;
         case "6":result.label = "signed";result.status="超期未上报";result.action = false;break;
-        case "7":result.label = "signed";result.status="超期上报";result.action = false;break;
+        case "7":result.label = "signed";result.status="超期上报";break;
         default:
             result.label = "unknown";result.status="未知";break;
     }

+ 65 - 1
src/main/webapp/webpage/modules/sys/sysHome.jsp

@@ -175,6 +175,62 @@
                 }
             });
         }
+
+        function deleteDialogres(title,url,deleteUrl,width,height,target) {
+            parent.index = "";
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url ,
+                skin: 'three-btns',
+                btn: ['重新申请','删除', '关闭'],
+                btn1: function (index, layero) {
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if (target) {
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    } else {
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if (iframeWin.contentWindow.doSubmit(3)) {
+                        top.layer.close(index);//关闭对话框。
+                        setTimeout(function () {
+                            top.layer.close(index)
+                        }, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    top.layer.confirm("确认删除", {icon: 3, title:'系统提示'}, function(index){
+                        $.ajax({
+                            type:'post',
+                            url:deleteUrl,
+                            success:function(data){
+                                top.layer.closeAll();//关闭所有对话框。
+                                if(data.code == 1){
+                                    top.layer.msg(data.msg, {icon: 1});
+                                }else{
+                                    top.layer.msg(data.msg, {icon: 0});
+                                }
+                                window.location.reload();
+                            }
+                        })
+                    });
+                    return false;
+                },cancel: function(index){
+                }
+            });
+        }
         function openDialogresExample(title,url,width,height,target) {
             parent.index = "";
             if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
@@ -845,8 +901,16 @@
                 </c:when>
                 <c:when test="${workProjectNotify.remarks eq '重新申请'  && workProjectNotify.status != 1}">
                     <c:choose>
+                        <%--作废--%>
                         <c:when test="${workProjectNotify.type eq 39 && (workProjectNotify.projectType eq 1 || workProjectNotify.projectType eq 2)}">
-                            xml = "<a  href=\"javascript:void(0)\" onclick=\"projectDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id=${workProjectNotify.id}','${ctx}/workprojectnotify/workProjectNotify/deleteNotify?id=${workProjectNotify.id}','95%','95%')\">";
+                            xml = "<a  href=\"javascript:void(0)\" onclick=\"projectDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id=${workProjectNotify.id}','${ctx}/workprojectnotify/workProjectNotify/cancellationNotify?id=${workProjectNotify.id}','95%','95%')\">";
+                        </c:when>
+                        <c:when test="${workProjectNotify.type eq 16}">
+                            xml = "<a  href=\"javascript:void(0)\" onclick=\"projectDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id=${workProjectNotify.id}','${ctx}/workprojectnotify/workProjectNotify/cancellationNotify?id=${workProjectNotify.id}','95%','95%')\">";
+                        </c:when>
+                        <%--删除--%>
+                        <c:when test="${workProjectNotify.type eq 92 || workProjectNotify.type eq 89 || workProjectNotify.type eq 21 || workProjectNotify.type eq 13 || workProjectNotify.type eq 139}">
+                            xml = "<a  href=\"javascript:void(0)\" onclick=\"deleteDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id=${workProjectNotify.id}','${ctx}/workprojectnotify/workProjectNotify/deleteNotify?id=${workProjectNotify.id}','95%','95%')\">";
                         </c:when>
                         <c:otherwise>
                             xml = "<a  href=\"javascript:void(0)\" onclick=\"openDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id=${workProjectNotify.id}','95%','95%')\">";

+ 66 - 0
src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyList.jsp

@@ -413,6 +413,62 @@
 				}
 			});
 		}
+
+		function deleteDialogres(title,url,deleteUrl,width,height,target) {
+			parent.index = "";
+			if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+				width='auto';
+				height='auto';
+			}else{//如果是PC端,根据用户设置的width和height显示。
+
+			}
+			top.layer.open({
+				type: 2,
+				area: [width, height],
+				title: title,
+				maxmin: true, //开启最大化最小化按钮
+				content: url ,
+				skin: 'three-btns',
+				btn: ['重新申请','删除', '关闭'],
+				btn1: function (index, layero) {
+					var body = top.layer.getChildFrame('body', index);
+					var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+					var inputForm = body.find('#inputForm');
+					var top_iframe;
+					if (target) {
+						top_iframe = target;//如果指定了iframe,则在改frame中跳转
+					} else {
+						top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					}
+					inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					if (iframeWin.contentWindow.doSubmit(3)) {
+						top.layer.close(index);//关闭对话框。
+						setTimeout(function () {
+							top.layer.close(index)
+						}, 100);//延时0.1秒,对应360 7.1版本bug
+					}
+				},
+				btn2:function(index,layero){
+					top.layer.confirm("确认删除", {icon: 3, title:'系统提示'}, function(index){
+						$.ajax({
+							type:'post',
+							url:deleteUrl,
+							success:function(data){
+								top.layer.closeAll();//关闭所有对话框。
+								if(data.code == 1){
+									top.layer.msg(data.msg, {icon: 1});
+								}else{
+									top.layer.msg(data.msg, {icon: 0});
+								}
+								window.location.reload();
+							}
+						})
+					});
+					return false;
+				},cancel: function(index){
+				}
+			});
+		}
 	</script>
 	<style>
 		body{
@@ -648,7 +704,17 @@
                     }
                     else if(d.remarks == "重新申请" && d.status != "1")
                     {
+						<%--作废--%>
 						if(d.type == "39" && (d.projectType == "1" || d.projectType == "2")){
+							return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"projectDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','${ctx}/workprojectnotify/workProjectNotify/cancellationNotify?id="+d.id+"','95%','95%')\">" +
+									"<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+									"</a>";
+						}else if(d.type == "16"){
+							return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"projectDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','${ctx}/workprojectnotify/workProjectNotify/cancellationNotify?id="+d.id+"','95%','95%')\">" +
+									"<span title=\""+ d.title +"\">"+ d.title +"</span>" +
+									"</a>";
+						<%--删除--%>
+						}else if(d.type == "92" || d.type == "89"  || d.type == "21"  || d.type == "13"  || d.type == "139" ){
 							return "<a class=\"attention-info\"  href=\"javascript:void(0)\" onclick=\"projectDialogres('重新申请', '${ctx}/workprojectnotify/workProjectNotify/form?id="+d.id+"','${ctx}/workprojectnotify/workProjectNotify/deleteNotify?id="+d.id+"','95%','95%')\">" +
 									"<span title=\""+ d.title +"\">"+ d.title +"</span>" +
 									"</a>";

+ 4 - 4
src/main/webapp/webpage/modules/workprojectnotify/workProjectNotifyShowList.jsp

@@ -172,8 +172,8 @@
 		<div class="full-width fl">
 			<div class="contentShadow layui-form contentDetails">
 				<div class="nav-btns">
-					<button id="readRows" class="nav-btn nav-btn-edit"><i class="fa fa-eye"> 批量只读</i></button>
-					<button id="readAll" class="nav-btn nav-btn-delete"><i class="fa fa-eye"> 全部只读</i></button>
+					<button id="readAll" class="nav-btn nav-btn-delete"><i class="fa fa-eye"> 全部标记已读</i></button>
+					<button id="readRows" class="nav-btn nav-btn-edit"><i class="fa fa-eye"> 标记为已读</i></button>
 					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
 					<div style="clear: both;"></div>
 				</div>
@@ -312,7 +312,7 @@
 				top.layer.alert('请至少选择一条数据!', {icon: 0, title:'警告'});
 				return;
 			}
-			top.layer.confirm('确认要将标记信息只读吗?', {icon: 3, title:'系统提示'}, function(index){
+			top.layer.confirm('确认要将信息标记为已读吗?', {icon: 3, title:'系统提示'}, function(index){
 				$.ajax({
 					type:'post',
 					url:"/a/workprojectnotify/workProjectNotify/readRows?ids="+ids,
@@ -333,7 +333,7 @@
 		function readAll(){
 			var content = $("#content").val();
 			var type = $("#type").val();
-			top.layer.confirm('确认要将所有信息标记只读吗?', {icon: 3, title:'系统提示'}, function(index){
+			top.layer.confirm('确认要将所有信息全部标记已读吗?', {icon: 3, title:'系统提示'}, function(index){
 				$.ajax({
 					type:'post',
 					url:"/a/workprojectnotify/workProjectNotify/readAll",