Browse Source

批量归档等功能代码提交

user5 1 year ago
parent
commit
db82bda739
27 changed files with 416 additions and 90 deletions
  1. 15 0
      src/main/java/com/jeeplus/modules/projectFilingBatch/entity/ProjectFilingBatch.java
  2. 46 20
      src/main/java/com/jeeplus/modules/projectFilingBatch/service/ProjectFilingBatchService.java
  3. 22 4
      src/main/java/com/jeeplus/modules/projectFilingBatch/web/ProjectFilingBatchController.java
  4. 58 31
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  5. 5 8
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java
  6. 4 1
      src/main/java/com/jeeplus/modules/workprojectnotify/dao/WorkProjectNotifyDao.java
  7. 10 0
      src/main/java/com/jeeplus/modules/workprojectnotify/service/WorkProjectNotifyService.java
  8. 6 0
      src/main/java/com/jeeplus/modules/workreimbursement/dao/WorkReimbursementDao.java
  9. 18 0
      src/main/java/com/jeeplus/modules/workreimbursement/entity/WorkReimbursement.java
  10. 9 0
      src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementAllService.java
  11. 21 0
      src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementNewService.java
  12. 28 0
      src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementAllController.java
  13. 10 0
      src/main/resources/logback.xml
  14. 10 4
      src/main/resources/mappings/modules/projectGuidang/ProjectFilingBatchDao.xml
  15. 12 1
      src/main/resources/mappings/modules/workprojectnotify/WorkProjectNotifyDao.xml
  16. 24 1
      src/main/resources/mappings/modules/workreimbursement/WorkReimbursementDao.xml
  17. 3 1
      src/main/resources/mappings/modules/workreimbursement/WorkReimbursementTypeDao.xml
  18. 14 0
      src/main/webapp/static/common/jeeplus.js
  19. 1 1
      src/main/webapp/webpage/include/head.jsp
  20. 19 11
      src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchList.jsp
  21. 1 1
      src/main/webapp/webpage/modules/sys/sysLogin.jsp
  22. 1 1
      src/main/webapp/webpage/modules/sys/sysLogin2.jsp
  23. 11 0
      src/main/webapp/webpage/modules/workReimbursementType/reimbursementTypeList.jsp
  24. 11 1
      src/main/webapp/webpage/modules/workreimbursement/all/workReimbursementAllFormDetail.jsp
  25. 12 2
      src/main/webapp/webpage/modules/workreimbursement/new/workReimbursementNewAudit.jsp
  26. 11 2
      src/main/webapp/webpage/modules/workreimbursement/specific/workReimbursementSpecificAudit.jsp
  27. 34 0
      src/main/webapp/webpage/modules/workreimbursement/workReimbursementAllList.jsp

+ 15 - 0
src/main/java/com/jeeplus/modules/projectFilingBatch/entity/ProjectFilingBatch.java

@@ -2,6 +2,7 @@ package com.jeeplus.modules.projectFilingBatch.entity;
 
 import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.sys.entity.Office;
@@ -44,6 +45,7 @@ public class ProjectFilingBatch extends DataEntity<ProjectFilingBatch> {
     private Date endDate;
     private String createName;
     private String createNameStr;   //创建人
+    private String officeName;   //创建人部门
     private String createId;     //创建人id
     private Integer notifyFlag; //代办判定条件
     private String notifyId; //代办判定条件
@@ -65,6 +67,7 @@ public class ProjectFilingBatch extends DataEntity<ProjectFilingBatch> {
         this.number = number;
     }
 
+    @ExcelField(title="归档状态", align=2, sort=5, dictType="filing_archive_status")
     public Integer getFilingStatus() {
         return filingStatus;
     }
@@ -97,6 +100,7 @@ public class ProjectFilingBatch extends DataEntity<ProjectFilingBatch> {
         this.status = status;
     }
 
+    @ExcelField(title="批次编号", align=2, sort=1)
     public String getFilingBatch() {
         return filingBatch;
     }
@@ -185,6 +189,7 @@ public class ProjectFilingBatch extends DataEntity<ProjectFilingBatch> {
         this.relationdelFlag = relationdelFlag;
     }
 
+    @ExcelField(title="批次名称", align=2, sort=2)
     public String getFilingName() {
         return filingName;
     }
@@ -209,6 +214,7 @@ public class ProjectFilingBatch extends DataEntity<ProjectFilingBatch> {
         this.endDate = endDate;
     }
 
+    @ExcelField(title="创建人", align=2, sort=3)
     public String getCreateName() {
         return createName;
     }
@@ -225,6 +231,15 @@ public class ProjectFilingBatch extends DataEntity<ProjectFilingBatch> {
         this.createNameStr = createNameStr;
     }
 
+    @ExcelField(title="创建人部门", align=2, sort=4)
+    public String getOfficeName() {
+        return officeName;
+    }
+
+    public void setOfficeName(String officeName) {
+        this.officeName = officeName;
+    }
+
     public String getCreateId() {
         return createId;
     }

+ 46 - 20
src/main/java/com/jeeplus/modules/projectFilingBatch/service/ProjectFilingBatchService.java

@@ -105,6 +105,15 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
         for (ProjectFilingBatch guidang:projectGuidangList){
             User user=UserUtils.get(guidang.getCreateBy().getId());
             guidang.setCreateBy(user);
+            if(null != user){
+                if(StringUtils.isNotBlank(user.getName())){
+                    guidang.setCreateName(user.getName());
+                }
+
+                if(null != user.getOffice() && StringUtils.isNotBlank(user.getOffice().getName())){
+                    guidang.setOfficeName(user.getOffice().getName());
+                }
+            }
         }
         page.setList(projectGuidangList);
         return page;
@@ -457,31 +466,35 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
         projectFilingBatch.setOffice(createBy.getOffice());
         projectFilingBatch.setCompany(createBy.getCompany());
         //归档批次表添加操作
-        if(projectFilingBatch.getFilingStatus()== ProjectStatusEnum.INVALID.getValue()){
-            super.save(projectFilingBatch);
-        }else if (oldStatus== ProjectStatusEnum.RECALL.getValue() || oldStatus== ProjectStatusEnum.REJECTED.getValue() || oldStatus== ProjectStatusEnum.TSTORE.getValue()) {
-            //获取归档批次的项目信息
-            List<ProjectFilingBatch> filingBatches=this.findProjectIdByFiling(projectFilingBatch.getId());
-            String prefixStr = "";
-            //通过批次归档id和项目id删除之前的信息
-            for (ProjectFilingBatch filingBatch:filingBatches){
-                prefixStr +=filingBatch.getNumber()+ "、";
-                ProjectFilingbatchRelation filingbatchRelation=new ProjectFilingbatchRelation();
-                filingbatchRelation.setFilingBatch(filingBatch.getId());
-                filingbatchRelation.setProjectId(filingBatch.getProjectId());
-                projectFilingbatchRelationDao.deleteByprojectId(filingbatchRelation);
-            }
-            if (StringUtils.isNotBlank(prefixStr)){
-                prefixStr = prefixStr.substring(0, prefixStr.length()-1);
-            }
-            projectFilingBatch.setReportNumber(prefixStr);
-            super.save(projectFilingBatch);
-        }else{
+        if(StringUtils.isBlank(projectFilingBatch.getFilingBatch()) && projectStatus.getValue() == 2){
             synchronized (SYN_BYTE) {
                 projectFilingBatch.setFilingBatch(serialNumTplService.genSerialNum(createBy.getCompany(), ProjectFilingBatch.ARCHIVE_BATCH_TEMPLATE));
             }
+        }
+
+        /*if(projectFilingBatch.getFilingStatus()== ProjectStatusEnum.INVALID.getValue()){
+            super.save(projectFilingBatch);
+        }else if (oldStatus== ProjectStatusEnum.RECALL.getValue() || oldStatus== ProjectStatusEnum.REJECTED.getValue() || oldStatus== ProjectStatusEnum.TSTORE.getValue()) {
             super.save(projectFilingBatch);
+        }else if(oldStatus == 0 && StringUtils.isBlank(projectFilingBatch.getId())){
+            //如果为0,则为新登记批量归档信息,需先保存批量归档信息后对选择的报告信息进行处理
+            super.save(projectFilingBatch);
+
+        } else{
+            super.save(projectFilingBatch);
+        }*/
+        super.save(projectFilingBatch);
+        //删除原有关联报告信息
+        //获取归档批次的项目信息
+        List<ProjectFilingBatch> filingBatches=this.findProjectIdByFiling(projectFilingBatch.getId());
+        //通过批次归档id和项目id删除之前的信息
+        for (ProjectFilingBatch filingBatch:filingBatches){
+            ProjectFilingbatchRelation filingbatchRelation=new ProjectFilingbatchRelation();
+            filingbatchRelation.setFilingBatch(filingBatch.getId());
+            filingbatchRelation.setProjectId(filingBatch.getProjectId());
+            projectFilingbatchRelationDao.deleteByprojectId(filingbatchRelation);
         }
+
         //获取前端选择的项目信息
         //保存要归档的项目
         if(null!=proId){
@@ -496,6 +509,19 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
                 projectFilingbatchRelationDao.insert(filingbatchRelation);
             }
         }
+
+        filingBatches=this.findProjectIdByFiling(projectFilingBatch.getId());
+        String prefixStr = "";
+
+        //通过批次归档id和项目id删除之前的信息
+        for (ProjectFilingBatch filingBatch:filingBatches){
+            prefixStr +=filingBatch.getNumber()+ "、";
+        }
+        if (StringUtils.isNotBlank(prefixStr)){
+            prefixStr = prefixStr.substring(0, prefixStr.length()-1);
+        }
+        projectFilingBatch.setReportNumber(prefixStr);
+
         //新增项目树形信息
         if (null != proInfos && proInfos.length!=0 ){
             this.insertProInfo(proInfos,flags,proId,projectFilingBatch.getId());

+ 22 - 4
src/main/java/com/jeeplus/modules/projectFilingBatch/web/ProjectFilingBatchController.java

@@ -3,10 +3,8 @@ package com.jeeplus.modules.projectFilingBatch.web;
 import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
-import com.jeeplus.common.utils.JedisUtils;
-import com.jeeplus.common.utils.MyBeanUtils;
-import com.jeeplus.common.utils.StringUtils;
-import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
+import com.jeeplus.common.utils.*;
+import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.act.entity.Act;
@@ -15,6 +13,7 @@ import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
 import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatchImportInfo;
 import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingbatchRelation;
 import com.jeeplus.modules.projectFilingBatch.service.ProjectFilingBatchService;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
@@ -781,4 +780,23 @@ public class ProjectFilingBatchController extends BaseController {
     }
 
 
+
+    /**
+     * 导出excel文件
+     */
+    @RequiresPermissions("projectFilingBatch:projectFilingBatchInfo:export")
+    @RequestMapping(value = "export", method=RequestMethod.POST)
+    public String exportFile(ProjectFilingBatch projectGuidang, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
+        try {
+            String fileName = "项目"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
+            //获取列表数据
+            Page<ProjectFilingBatch> page = projectFilingBatchService.findPage(new Page<ProjectFilingBatch>(request, response,-1), projectGuidang);
+            new ExportExcel("项目", ProjectFilingBatch.class).setDataList(page.getList()).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导出项目记录失败!失败信息:"+e.getMessage());
+        }
+        return "redirect:"+Global.getAdminPath()+"/project/projectRecords/?repage";
+    }
+
 }

+ 58 - 31
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -2209,7 +2209,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		List<RuralProjectRecords> projectRecordsList = dao.getProjectReportedListByAdvent(projectRecords);
 		List<RuralProjectRecords> projectRecordsListNoUrgency = dao.getProjectReportedListByAdventNoUrgency(projectRecords);
 		projectRecordsList.addAll(projectRecordsListNoUrgency);
-		/*for (RuralProjectRecords info: projectRecordsList) {
+		for (RuralProjectRecords info: projectRecordsList) {
 			String notifyStr = null;
 			String titleStr = null;
 			//如果当前时间大于过期时间
@@ -2222,20 +2222,26 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				titleStr = "项目【"+ info.getProjectName()+"】即将上报超期。超期时间:"+info.getAdventDate();
 			}
 
+			//计算两日期之间的天数
+			Integer interval = Integer.valueOf(this.getInterval(java.sql.Date.valueOf(info.getAdventDate()), new Date()));
+
+			String newTitleStr = titleStr;
+			if (interval > 0) {
+				newTitleStr = titleStr + "已超期:" + interval + "天。请尽快上报";
+			}
+
+
 			//查询项目的登记人和责任人的id
 			List<User> projectLeaders = dao.getProjectCreateUserAndChargeUser(info.getId());
 			//List<User> projectLeaders = workProjectUserDao.queryProjectUsers(info.getId(), "1");
 			for (User user: projectLeaders) {
 				//根据标题查询通知信息中是否存在未读的信息,有则进行更新并对重复数量进行+1操作
-				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(titleStr,user.getId());
+				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(notifyStr,user.getId());
 
-				//计算两日期之间的天数
-				Integer interval = Integer.valueOf(this.getInterval(java.sql.Date.valueOf(info.getAdventDate()), new Date()));
-				if(interval > 0){
-					titleStr = titleStr + "已超期:" + interval + "天。请尽快上报";
-				}
 
 				if(null != byTitleAndUnread){
+					//将所有的被通知人的该条通知均调整为已读,然后将最后一条数据进行调整
+					workProjectNotifyService.deleteByNotifyUser(notifyStr,user.getId());
 					byTitleAndUnread.setExigency("1");
 					workProjectNotifyService.updateOverDueInfo(byTitleAndUnread);
 				}else{
@@ -2243,7 +2249,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 							.save(UtilNotify.saveNotify(info.getId(),
 									user,
 									info.getCompany().getId(),
-									titleStr,
+									newTitleStr,
 									notifyStr,
 									"94",
 									"0",
@@ -2254,7 +2260,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 
 			}
 
-		}*/
+		}
 		//获取项目数据(获取已经超期的项目数据,进行修改超期状态)
 		List<RuralProjectRecords> projectNotReportList = dao.getProjectNotReportList(projectRecords);
 		List<RuralProjectRecords> projectNotReportListNoUrgency = dao.getProjectNotReportListNoUrgency(projectRecords);
@@ -3449,7 +3455,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		//获取项目数据(非紧急项目-电子归档)
 		List<RuralProjectRecords> projectRecordsList = dao.getProjectRecordListByAdvent(projectRecords);
 		projectRecordsList.addAll(projectRecordsExamineList);
-		/*for (RuralProjectRecords info: projectRecordsList) {
+		for (RuralProjectRecords info: projectRecordsList) {
 			//判定 若项目类别为 数字化项目审核 则不进行考核
 			if("10".equals(info.getAttachmentProjectSort()) && "2".equals(info.getProjectType())){
 				continue;
@@ -3465,19 +3471,26 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				notifyStr = "项目【"+ info.getProjectName()+"】即将归档超期";
 				titleStr = "项目【"+ info.getProjectName()+"】即将归档超期。超期时间:"+info.getAdventDate();
 			}
+
+
+			//计算两日期之间的天数
+			Integer interval = Integer.valueOf(this.getInterval(java.sql.Date.valueOf(info.getAdventDate()), new Date()));
+
+			String newTitleStr = titleStr;
+			if (interval > 0) {
+				newTitleStr = titleStr + "已超期:" + interval + "天。请尽快归档";
+			}
+
 			//查询项目的登记人和责任人的id
 			List<User> projectLeaders = dao.getProjectCreateUserAndChargeUser(info.getId());
 			//List<User> projectLeaders = workProjectUserDao.queryProjectUsers(info.getId(), "1");
 			for (User user: projectLeaders) {
 				//根据标题查询通知信息中是否存在未读的信息,有则进行更新并对重复数量进行+1操作
-				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(titleStr,user.getId());
-				//计算两日期之间的天数
-				Integer interval = Integer.valueOf(this.getInterval(java.sql.Date.valueOf(info.getAdventDate()), new Date()));
-				if(interval > 0){
-					titleStr = titleStr + "已超期:" + interval + "天。请尽快归档";
-				}
+				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(notifyStr,user.getId());
 
 				if(null != byTitleAndUnread){
+					//将所有的被通知人的该条通知均调整为已读,然后将最后一条数据进行调整
+					workProjectNotifyService.deleteByNotifyUser(notifyStr,user.getId());
 					byTitleAndUnread.setExigency("1");
 					byTitleAndUnread.setTitle(titleStr);
 					workProjectNotifyService.updateOverDueInfo(byTitleAndUnread);
@@ -3486,7 +3499,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 							.save(UtilNotify.saveNotify(info.getId(),
 									user,
 									info.getCompany().getId(),
-									titleStr,
+									newTitleStr,
 									notifyStr,
 									"94",
 									"0",
@@ -3495,7 +3508,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				}
 			}
 
-		}*/
+		}
 		//获取项目数据(获取已经超期的项目数据,进行修改超期状态)
 		List<RuralProjectRecords> projectNotReportExamineList = dao.getProjectNotrecordListExamine(projectRecords);
 		List<RuralProjectRecords> projectNotReportList = dao.getProjectNotrecordList(projectRecords);
@@ -3547,7 +3560,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			List<User> projectLeaders = dao.getProjectCreateUserAndChargeUser(info.getId());
 			for (User user: projectLeaders) {
 				//根据标题查询通知信息中是否存在未读的信息,有则进行更新并对重复数量进行+1操作
-				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(titleStr,user.getId());
+				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(notifyStr,user.getId());
 				//计算两日期之间的天数
 				Integer interval = Integer.valueOf(this.getInterval(java.sql.Date.valueOf(info.getAdventDate()), new Date()));
 				if(interval > 0){
@@ -3555,6 +3568,8 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				}
 
 				if(null != byTitleAndUnread){
+					//将所有的被通知人的该条通知均调整为已读,然后将最后一条数据进行调整
+					workProjectNotifyService.deleteByNotifyUser(notifyStr,user.getId());
 					byTitleAndUnread.setExigency("1");
 					byTitleAndUnread.setTitle(titleStr);
 					workProjectNotifyService.updateOverDueInfo(byTitleAndUnread);
@@ -5601,19 +5616,26 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 					dao.updateProjectPaperFilingOnOverDue(info.getId(),"");
 				}
 			}
+
+
+			//计算两日期之间的天数
+			Integer advent = Integer.valueOf(this.getInterval(java.sql.Date.valueOf(info.getAdventDate()), new Date()));
+
+			String newTitleStr = titleStr;
+			if(advent > 0){
+				newTitleStr = titleStr + "已超期:" + advent + "天。请尽快纸质归档";
+			}
+
+
 			//查询项目的登记人和责任人的id
 			List<User> projectLeaders = dao.getProjectCreateUserAndChargeUser(info.getId());
 			for (User user: projectLeaders) {
 				//根据标题查询通知信息中是否存在未读的信息,有则进行更新并对重复数量进行+1操作
-				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(titleStr,user.getId());
-
-				//计算两日期之间的天数
-				Integer advent = Integer.valueOf(this.getInterval(java.sql.Date.valueOf(info.getAdventDate()), new Date()));
-				if(advent > 0){
-					titleStr = titleStr + "已超期:" + advent + "天。请尽快纸质归档";
-				}
+				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(notifyStr,user.getId());
 
 				if(null != byTitleAndUnread){
+					//将所有的被通知人的该条通知均调整为已读,然后将最后一条数据进行调整
+					workProjectNotifyService.deleteByNotifyUser(notifyStr,user.getId());
 					byTitleAndUnread.setExigency("1");
 					workProjectNotifyService.updateOverDueInfo(byTitleAndUnread);
 				}else{
@@ -5621,7 +5643,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 							.save(UtilNotify.saveNotify(info.getId(),
 									user,
 									info.getCompany().getId(),
-									titleStr,
+									newTitleStr,
 									notifyStr,
 									"94",
 									"0",
@@ -5686,7 +5708,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			/*List<User> projectLeaders = dao.getProjectCreateUserAndChargeUser(info.getId());
 			for (User user: projectLeaders) {
 				//根据标题查询通知信息中是否存在未读的信息,有则进行更新并对重复数量进行+1操作
-				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(titleStr,user.getId());
+				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(notifyStr,user.getId());
 
 				//计算两日期之间的天数
 				Integer advent = Integer.valueOf(this.getInterval(java.sql.Date.valueOf(info.getAdventDate()), new Date()));
@@ -5695,6 +5717,8 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				}
 
 				if(null != byTitleAndUnread){
+					//将所有的被通知人的该条通知均调整为已读,然后将最后一条数据进行调整
+					workProjectNotifyService.deleteByNotifyUser(notifyStr,user.getId());
 					byTitleAndUnread.setExigency("1");
 					workProjectNotifyService.updateOverDueInfo(byTitleAndUnread);
 				}else{
@@ -5761,16 +5785,19 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			//List<User> projectLeaders = workProjectUserDao.queryProjectUsers(info.getId(), "1");
 				//计算两日期之间的天数
 			int interval = Integer.parseInt(info.getAdventDate()) - 60;
+			String newTitleStr = titleStr;
 			if (interval > 0) {
-				titleStr = titleStr + "已超期:" + interval + "天。请尽快质量复核";
+				newTitleStr = titleStr + "已超期:" + interval + "天。请尽快质量复核";
 			}
 
 			for (User user : projectLeaders) {
 				//根据标题查询通知信息中是否存在未读的信息,有则进行更新并对重复数量进行+1操作
-				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(titleStr, user.getId());
+				WorkProjectNotify byTitleAndUnread = workProjectNotifyService.getByTitleAndUnread(notifyStr, user.getId());
 
 
 				if (null != byTitleAndUnread) {
+					//将所有的被通知人的该条通知均调整为已读,然后将最后一条数据进行调整
+					workProjectNotifyService.deleteByNotifyUser(notifyStr,user.getId());
 					byTitleAndUnread.setExigency("1");
 					workProjectNotifyService.updateOverDueInfo(byTitleAndUnread);
 				} else {
@@ -5778,7 +5805,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 							.save(UtilNotify.saveNotify(info.getId(),
 									user,
 									info.getCompany().getId(),
-									titleStr,
+									newTitleStr,
 									notifyStr,
 									"94",
 									"0",

+ 5 - 8
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java

@@ -297,25 +297,22 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
     @Transactional(readOnly = false)
     public Map<String,Object> projectReportedListByAdvent(){
         Map<String,Object> map = new HashMap<>();
-        /*logger.info("-----------项目超期未上报定时任务开始------------------");
+        logger.info("-----------项目超期未上报定时任务开始------------------");
         projectRecordsService.saveProjectReportedListByAdvent();
-        logger.info("------------项目超期未上报定时任务结束------------------");*/
+        logger.info("------------项目超期未上报定时任务结束------------------");
         logger.info("-----------项目超期未归档定时任务开始(电子归档)------------------");
         projectRecordsService.saveProjectRecordListByAdvent();
         logger.info("------------项目超期未归档定时任务结束(电子归档)------------------");
         logger.info("------------项目超期未质量符合定时任务开始--------------------");
         projectRecordsService.getJudgeAdvanceWeekNotice();
         logger.info("------------项目超期未质量符合定时任务结束--------------------");
-        /*logger.info("------------项目超期未质量符合定时任务开始--------------------");
-        projectRecordsService.getJudgeAdvanceWeekNotice();
-        logger.info("------------项目超期未质量符合定时任务结束--------------------");*/
 
-        /*logger.info("-----------项目超期未归档定时任务开始(A类纸质归档)------------------");
-        //projectRecordsService.saveProjectRecordListByPaperFiling();
+        logger.info("-----------项目超期未归档定时任务开始(A类纸质归档)------------------");
+        projectRecordsService.saveProjectRecordListByPaperFiling();
         logger.info("------------项目超期未归档定时任务结束(A类纸质归档)------------------");
         logger.info("-----------项目纸质归档长期未处理通知(开始)------------------");
         projectRecordsService.getPaperArchiveNotify();
-        logger.info("-----------项目纸质归档长期未处理通知(结束)------------------");*/
+        logger.info("-----------项目纸质归档长期未处理通知(结束)------------------");
         logger.info("-----------项目批量归档长期未处理通知(开始)------------------");
         projectRecordsService.getBatchArchiveNotify();
         logger.info("-----------项目批量归档长期未处理通知(结束)------------------");

+ 4 - 1
src/main/java/com/jeeplus/modules/workprojectnotify/dao/WorkProjectNotifyDao.java

@@ -42,7 +42,7 @@ public interface WorkProjectNotifyDao extends CrudDao<WorkProjectNotify> {
      * @param title
      * @return
      */
-    WorkProjectNotify getByTitleAndUnread(@Param("title") String title,@Param("userId")String userId);
+    WorkProjectNotify getByTitleAndUnread(@Param("content") String content,@Param("userId")String userId);
     List<WorkProjectNotify> findListByAPP(WorkProjectNotify workProjectNotify);
 
     //更新阅读状态
@@ -126,4 +126,7 @@ public interface WorkProjectNotifyDao extends CrudDao<WorkProjectNotify> {
      * @return
      */
     WorkProjectNotify getByProcessInstanceId(String  processInstanceId);
+
+
+    void deleteByNotifyUser(@Param("content") String content,@Param("userId")String userId);
 }

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

@@ -72,6 +72,16 @@ public class WorkProjectNotifyService extends CrudService<WorkProjectNotifyDao,
 	public WorkProjectNotify getByTitleAndUnread(String title,String userId) {
 		return dao.getByTitleAndUnread(title,userId);
 	}
+	/**
+	 * 根据标题查询通知信息中是否存在未读的信息(仅获取最近的一条)
+	 * @param title
+	 * @return
+	 */
+
+	@Transactional(readOnly = false)
+	public void deleteByNotifyUser(String title,String userId) {
+		dao.deleteByNotifyUser(title,userId);
+	}
 
 	public List<WorkProjectNotify> findList(WorkProjectNotify workProjectNotify) {
 		//workProjectNotify.getSqlMap().put("dsf", dataScopeFilterOR(workProjectNotify.getCurrentUser(), "o", "u","s", MenuStatusEnum.PROJECT_NOTIFY.getValue()));

+ 6 - 0
src/main/java/com/jeeplus/modules/workreimbursement/dao/WorkReimbursementDao.java

@@ -101,4 +101,10 @@ public interface WorkReimbursementDao extends CrudDao<WorkReimbursement> {
 	 * @return
 	 */
 	WorkReimbursementadminupdatehistory getWorkReimbursementadminupdatehistoryById(String id);
+
+	/**
+	 * 报销单付款/撤回付款
+	 * @param workReimbursement
+	 */
+	void paymentSave(WorkReimbursement workReimbursement);
 }

+ 18 - 0
src/main/java/com/jeeplus/modules/workreimbursement/entity/WorkReimbursement.java

@@ -78,6 +78,8 @@ public class WorkReimbursement extends ActEntity<WorkReimbursement> {
 	private String reimbursementType; // 报销类型
 	private String reimbursementTypeStr; // 报销类型Str
 	private String pageFlag; // 回调页面判定
+	private String paymentStatus; // 付款状态
+	private Date paymentDate; // 付款时间
 
 	public String getComment() {
 		return comment;
@@ -684,4 +686,20 @@ public class WorkReimbursement extends ActEntity<WorkReimbursement> {
 	public void setPageFlag(String pageFlag) {
 		this.pageFlag = pageFlag;
 	}
+
+	public String getPaymentStatus() {
+		return paymentStatus;
+	}
+
+	public void setPaymentStatus(String paymentStatus) {
+		this.paymentStatus = paymentStatus;
+	}
+
+	public Date getPaymentDate() {
+		return paymentDate;
+	}
+
+	public void setPaymentDate(Date paymentDate) {
+		this.paymentDate = paymentDate;
+	}
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementAllService.java

@@ -1531,6 +1531,15 @@ public class WorkReimbursementAllService extends CrudService<WorkReimbursementDa
     }
 
     /**
+     * 报销单付款/撤销付款操作
+     * @param workReimbursement
+     */
+    @Transactional(readOnly = false)
+    public void paymentSave(WorkReimbursement workReimbursement){
+        workReimbursementDao.paymentSave(workReimbursement);
+    }
+
+    /**
      * 查询待办任务
      *
      * @param userId

+ 21 - 0
src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementNewService.java

@@ -1856,6 +1856,11 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
                         enname = "gsld";
                         vars.put("gsldList", auditUsers);
                         vars.put("gsldcount",auditUsers.size());
+                        //如果是财务审核,则默认审核通过时即付款
+                        if("fpglys".equals(taskDefKey)) {
+                            workReimbursement.setPaymentStatus("1");
+                            workReimbursementDao.paymentSave(workReimbursement);
+                        }
                     } else {
                         notifyRole = "调整报销";
                         workActivityProcess.setIsApproval("2");
@@ -2284,6 +2289,11 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
                     if ("yes".equals(workReimbursement.getAct().getFlag())) {
                         notifyRole = "审批通过";
                         workActivityProcess.setIsApproval("1");
+                        //如果是财务审核,则默认审核通过时即付款
+                        if("fpglys".equals(taskDefKey)) {
+                            workReimbursement.setPaymentStatus("1");
+                            workReimbursementDao.paymentSave(workReimbursement);
+                        }
                     } else {
                         notifyRole = "调整报销";
                         workActivityProcess.setIsApproval("2");
@@ -2704,6 +2714,11 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
                         enname = "gsld";
                         vars.put("gsldList", auditUsers);
                         vars.put("gsldcount",auditUsers.size());
+                        //如果是财务审核,则默认审核通过时即付款
+                        if("fpglys".equals(taskDefKey)) {
+                            workReimbursement.setPaymentStatus("1");
+                            workReimbursementDao.paymentSave(workReimbursement);
+                        }
                     } else {
                         notifyRole = "调整报销";
                         workActivityProcess.setIsApproval("2");
@@ -3117,6 +3132,12 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
                     if ("yes".equals(workReimbursement.getAct().getFlag())) {
                         notifyRole = "审批通过";
                         workActivityProcess.setIsApproval("1");
+
+                        //如果是财务审核,则默认审核通过时即付款
+                        if("fpglys".equals(taskDefKey)) {
+                            workReimbursement.setPaymentStatus("1");
+                            workReimbursementDao.paymentSave(workReimbursement);
+                        }
                     } else {
                         notifyRole = "调整报销";
                         workActivityProcess.setIsApproval("2");

+ 28 - 0
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementAllController.java

@@ -1087,4 +1087,32 @@ public class WorkReimbursementAllController extends BaseController {
 		model.addAttribute("page",page);
 		return "modules/sys/gridReimburProjectList";
 	}
+
+
+	/**
+	 * 报销单付款操作
+	 */
+	@RequestMapping(value = "paymentSave")
+	public String paymentSave(WorkReimbursement workReimbursement, Model model, RedirectAttributes redirectAttributes){
+		if (!beanValidator(model, workReimbursement)){
+			return form(workReimbursement, model);
+		}
+		if(StringUtils.isNotBlank(workReimbursement.getPaymentStatus()) && "1".equals(workReimbursement.getPaymentStatus())){//编辑表单保存
+			//判定需要付款的报销信息,验证当前数据库中该信息的付款状态和付款时间是否存在,若存在,则不允许重复付款
+			WorkReimbursement reimbursement = workReimbursementService.get(workReimbursement.getId());
+			if(null != reimbursement.getPaymentDate()){
+				addMessage(redirectAttributes, "报销编号为:" + workReimbursement.getNumber() + " 的报销单已付款,请勿重复付款");
+				return "redirect:" + adminPath +"/workreimbursement/workReimbursementAll/?repage";
+			}else{
+				workReimbursementService.paymentSave(workReimbursement);//保存
+				addMessage(redirectAttributes, "报销编号为:" + workReimbursement.getNumber() + " 的报销单付款成功");
+			}
+		}else if(StringUtils.isNotBlank(workReimbursement.getPaymentStatus()) && "0".equals(workReimbursement.getPaymentStatus())){//新增表单保存
+			workReimbursementService.paymentSave(workReimbursement);//保存
+			addMessage(redirectAttributes, "报销编号为:" + workReimbursement.getNumber() + " 的报销单撤回付款成功");
+		}else{
+			addMessage(redirectAttributes, "报销编号为:" + workReimbursement.getNumber() + " 的报销单付款操作失败,请联系管理员");
+		}
+		return "redirect:" + adminPath +"/workreimbursement/workReimbursementAll/?repage";
+	}
 }

+ 10 - 0
src/main/resources/logback.xml

@@ -33,6 +33,11 @@
                     class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <maxFileSize>${FILESIZE}</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
+            <cleanUpPolicy class="ch.qos.logback.core.rolling.CleanUpPolicies">
+                <cleanUpPolicy>
+                    <maxHistory>${MAXHISTORY}</maxHistory>
+                </cleanUpPolicy>
+            </cleanUpPolicy>
         </rollingPolicy>
     </appender>
 
@@ -52,6 +57,11 @@
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <maxFileSize>${FILESIZE}</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
+            <cleanUpPolicy class="ch.qos.logback.core.rolling.CleanUpPolicies">
+                <cleanUpPolicy>
+                    <maxHistory>${MAXHISTORY}</maxHistory>
+                </cleanUpPolicy>
+            </cleanUpPolicy>
         </rollingPolicy>
     </appender>
 

+ 10 - 4
src/main/resources/mappings/modules/projectGuidang/ProjectFilingBatchDao.xml

@@ -87,16 +87,16 @@
 			<if test="updateDate!=null">
 				update_date = #{updateDate},
 			</if>
-			<if test="updateDate!=null">
+			<if test="delFlag!=null">
 				del_flag=#{delFlag},
 			</if>
-			<if test="updateDate!=null">
+			<if test="filingBatch!=null">
 				filing_batch=#{filingBatch},
 			</if>
-			<if test="updateDate!=null">
+			<if test="processinstanceId!=null">
 				process_instance_id=#{processinstanceId},
 			</if>
-			<if test="updateDate!=null">
+			<if test="filingStatus!=null">
 				filing_status=#{filingStatus}
 			</if>
 			<if test="filingName!=null and filingName != ''">
@@ -118,6 +118,9 @@
 		SELECT count(DISTINCT a.id) FROM project_filingbatch a
 		left join sys_user su on su.id = a.create_by
 		<where>
+			<if test="filingName!=null and filingName!=''">
+				and a.filing_name like concat('%',#{filingName},'%')
+			</if>
 			<if test="filingBatch!=null and filingBatch!=''">
 				and a.filing_batch like concat('%',#{filingBatch},'%')
 			</if>
@@ -148,6 +151,9 @@
 			<if test="filingName!=null and filingName!=''">
 				and a.filing_name like concat('%',#{filingName},'%')
 			</if>
+			<if test="filingBatch!=null and filingBatch!=''">
+				and a.filing_batch like concat('%',#{filingBatch},'%')
+			</if>
 			<if test="filingStatus!=null">
 				and a.filing_status = #{filingStatus}
 			</if>

+ 12 - 1
src/main/resources/mappings/modules/workprojectnotify/WorkProjectNotifyDao.xml

@@ -74,7 +74,7 @@
 		<include refid="workProjectNotifyColumns"/>
 		FROM work_project_notify a
 		<include refid="workProjectNotifyJoins"/>
-		WHERE a.title like concat('%',#{title},'%')  and a.notify_user = #{userId} and a.status = 0 order by update_date desc limit 1
+		WHERE a.content =#{content}  and a.notify_user = #{userId} and a.status = 0 order by update_date desc limit 1
 	</select>
 
 	<select id="getByNotifyIdAndNotifyUser" resultType="WorkProjectNotify">
@@ -981,4 +981,15 @@
 		WHERE a.process_instance_id = #{processInstanceId}
 		limit 1
 	</select>
+
+	<delete id="deleteByNotifyUser">
+		delete from work_project_notify
+		where id not in (
+		select z.id from (
+			select id, max(create_date)
+			from work_project_notify
+			where content =#{content} and notify_user = #{userId}) z
+
+		) and content =#{content} and notify_user = #{userId}
+	</delete>
 </mapper>

+ 24 - 1
src/main/resources/mappings/modules/workreimbursement/WorkReimbursementDao.xml

@@ -34,7 +34,9 @@
 		a.ext AS "ext",
 		a.create_office as "createOffice",
 		a.type as "type",
-		a.reimbursement_type as "reimbursementType"
+		a.reimbursement_type as "reimbursementType",
+		a.payment_status as "paymentStatus",
+		a.payment_date as "paymentDate"
 	</sql>
 
 	<sql id="workReimbursementJoins">
@@ -100,6 +102,9 @@
 			<if test="status != '' and status != null">
 				AND a.status = #{status}
 			</if>
+			<if test="paymentStatus != '' and paymentStatus != null">
+				AND a.payment_status = #{paymentStatus}
+			</if>
 			<!--<if test="officeId != '' and officeId != null">
 				AND wa.office_id = #{officeId}
 			</if>-->
@@ -190,6 +195,9 @@
 			<if test="status != '' and status != null">
 				AND a.status = #{status}
 			</if>
+			<if test="paymentStatus != '' and paymentStatus != null">
+				AND a.payment_status = #{paymentStatus}
+			</if>
 			<!--<if test="officeId != '' and officeId != null">
 				AND wa.office_id = #{officeId}
 			</if>-->
@@ -1055,4 +1063,19 @@
 		left join sys_user su on su.id = a.create_by
 		where a.id = #{id}
 	</select>
+
+	<update id="paymentSave">
+		update work_reimbursement set
+		payment_status = #{paymentStatus},
+
+		<choose>
+			<when test="paymentStatus == 1">
+				payment_date = now()
+			</when>
+			<otherwise>
+				payment_date = null
+			</otherwise>
+		</choose>
+		where id = #{id}
+	</update>
 </mapper>

+ 3 - 1
src/main/resources/mappings/modules/workreimbursement/WorkReimbursementTypeDao.xml

@@ -30,6 +30,7 @@
 			<include refid="workReviewStandardColumns"/>
 		FROM work_reimbursement_type_info a
 		<where>
+			a.del_flag = 0
             <if test="standardDetail!=null and standardDetail != ''">
                 and a.standard_detail like concat('%',#{standardDetail},'%')
             </if>
@@ -125,7 +126,8 @@
 	
 	<!--物理删除-->
 	<update id="delete">
-		DELETE FROM work_reimbursement_type_info
+		update work_reimbursement_type_info set
+		del_flag = 1
 		WHERE id = #{id} OR find_in_set(#{id},parent_ids)
 	</update>
 	

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

@@ -578,6 +578,20 @@ function getAuditState(id)
     return result;
 }
 
+function getPaymentState(id)
+{
+    var result ={};
+    result.action = true;
+    switch(id)
+    {
+        case "0":result.label = "tempstore";result.status="未付款";result.action = false;break;
+        case "1":result.label = "signed";result.status="已付款";result.action = true;break;
+        default:
+            result.label = "unknown";result.status="未知";break;
+    }
+    return result;
+}
+
 function getWorkInvoiceAuditState(id)
 {
     var result ={};

+ 1 - 1
src/main/webapp/webpage/include/head.jsp

@@ -36,7 +36,7 @@
 
 <!-- jeeplus -->
 <link href="${ctxStatic}/common/jeeplus.css" type="text/css" rel="stylesheet" />
-<script src="${ctxStatic}/common/jeeplus.js?13" type="text/javascript"></script>
+<script src="${ctxStatic}/common/jeeplus.js?14" type="text/javascript"></script>
 <script type="text/javascript" src="${ctxStatic}/common/openShow.js"></script>
 
 <!-- jquery ui -->

+ 19 - 11
src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchList.jsp

@@ -239,18 +239,15 @@
                     <table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
                     <div class="commonQuery lw6">
                         <div class="layui-item query athird">
-                            <label class="layui-form-label">归档名称:</label>
+                            <label class="layui-form-label">归档批次:</label>
                             <div class="layui-input-block">
-                                <form:input path="filingName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+                                <form:input path="filingBatch" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
                             </div>
                         </div>
-                        <div class="layui-item query athird ">
-                            <label class="layui-form-label">状态:</label>
+                        <div class="layui-item query athird">
+                            <label class="layui-form-label">归档名称:</label>
                             <div class="layui-input-block">
-                                <form:select path="filingStatus" class=" form-control  simple-select">
-                                    <form:option value="" label=""/>
-                                    <form:options items="${fns:getRuralDictList('rural_report_audit_state')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
-                                </form:select>
+                                <form:input path="filingName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
                             </div>
                         </div>
                         <div class="layui-item athird">
@@ -268,6 +265,16 @@
                         <div style="    clear:both;"></div>
                     </div>
                     <div id="moresees" style="clear:both;display:none;" class="commonQuery lw6">
+                        <div class="layui-item query athird ">
+                            <label class="layui-form-label">状态:</label>
+                            <div class="layui-input-block">
+                                <form:select path="filingStatus" class=" form-control  simple-select">
+                                    <form:option value="" label=""/>
+                                    <form:options items="${fns:getRuralDictList('filing_archive_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                                </form:select>
+                            </div>
+                        </div>
+
                         <div class="layui-item query athird">
                             <label class="layui-form-label">创建时间:</label>
                             <div class="layui-input-block readOnlyFFF">
@@ -300,8 +307,8 @@
                         <shiro:hasPermission name="projectFilingBatch:projectFilingBatchInfo:add">
                             <a href="#" onclick="openDialogre('添加归档批次', '${ctx}/projectFilingBatch/projectFilingBatchInfo/form','95%', '95%','','送审,暂存,关闭')" class="layui-btn layui-btn-sm layui-bg-blue" > 添加</a>
                         </shiro:hasPermission>
-                        <shiro:hasPermission name="project:projectRecords:export">
-                            <table:exportExcel url="${ctx}/project/projectRecords/export"></table:exportExcel><!-- 导出按钮 -->
+                        <shiro:hasPermission name="projectFilingBatch:projectFilingBatchInfo:export">
+                            <table:exportExcel url="${ctx}/projectFilingBatch/projectFilingBatchInfo/export"></table:exportExcel><!-- 导出按钮 -->
                         </shiro:hasPermission>
                         <button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
                     </div>
@@ -351,6 +358,7 @@
         // 渲染表格
         var renderTable = function () {
             var filingName = $("#filingName").val();
+            var filingBatch = $("#filingBatch").val();
             var filingStatus = $("#filingStatus").val();
 
             var beginDate = $("#beginDate").val();
@@ -366,7 +374,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/projectFilingBatch/projectFilingBatchInfo/getFilingBatchList?filingName='+filingName+'&pageNo=${page.pageNo}&filingStatus='+filingStatus+'&beginDate='+beginDate+'&endDate='+endDate+'&createId='+createId+'&createName='+createName,
+                url: '${ctx}/projectFilingBatch/projectFilingBatchInfo/getFilingBatchList?filingName='+filingName+'&pageNo=${page.pageNo}&filingStatus='+filingStatus+'&beginDate='+beginDate+'&endDate='+endDate+'&createId='+createId+'&createName='+createName+'&filingBatch='+filingBatch,
                 page: false,
                 cols: [[
                     /*{type: 'numbers', align:'center', title: '序号' ,width:80},*/

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

@@ -18,7 +18,7 @@
 	<link href="${ctxStatic}/awesome/4.4/css/font-awesome.min.css" rel="stylesheet" />
 	<!-- jeeplus -->
 	<link href="${ctxStatic}/common/jeeplus.css" type="text/css" rel="stylesheet" />
-	<script src="${ctxStatic}/common/jeeplus.js?12" type="text/javascript"></script>
+	<script src="${ctxStatic}/common/jeeplus.js?14" type="text/javascript"></script>
 	<link rel="shortcut icon" href="images/favicon.png" type="image/png">
 	<!-- text fonts -->
 	<link rel="stylesheet" href="${ctxStatic }/common/login/ace-fonts.css" />

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

@@ -16,7 +16,7 @@
 		<link href="${ctxStatic}/awesome/4.4/css/font-awesome.min.css" rel="stylesheet" />
 		<!-- jeeplus -->
 		<link href="${ctxStatic}/common/jeeplus.css" type="text/css" rel="stylesheet" />
-		<script src="${ctxStatic}/common/jeeplus.js?12" type="text/javascript"></script>
+		<script src="${ctxStatic}/common/jeeplus.js?14" type="text/javascript"></script>
 		<link rel="shortcut icon" href="images/favicon.png" type="image/png">
 		<!-- text fonts -->
 		<link rel="stylesheet" href="${ctxStatic }/common/login/ace-fonts.css" />

+ 11 - 0
src/main/webapp/webpage/modules/workReimbursementType/reimbursementTypeList.jsp

@@ -107,6 +107,9 @@
 											</shiro:hasPermission>
 										</c:if>
 										<c:if test="${workReimbursementTypeInfo.grade ==2}">
+											<shiro:hasPermission name="reimbursementType:reimbursementType:add">
+												<a href="javascript:void(0);" onclick="openDialog('添加报销内容', '${ctx}/reimbursementType/reimbursementType/form?parent.id=${workReimbursementTypeInfo.id}','80%','60%')" class="layui-btn layui-btn-xs  layui-bg-blue"> 添加下级结构</a>
+											</shiro:hasPermission>
 											<shiro:hasPermission name="reimbursementType:reimbursementType:edit">
 												<a href="javascript:void(0);" onclick="openDialog('修改报销内容', '${ctx}/reimbursementType/reimbursementType/form?id=${workReimbursementTypeInfo.id}','80%','60%')" class="layui-btn layui-btn-xs layui-bg-green" > 修改</a>
 											</shiro:hasPermission>
@@ -114,6 +117,14 @@
 												<a href="${ctx}/reimbursementType/reimbursementType/delete?id=${workReimbursementTypeInfo.id}" onclick="return confirmx('确认要删除该报销内容吗?', this.href)"   class="layui-btn layui-btn-xs layui-bg-red"> 删除</a>
 											</shiro:hasPermission>
 										</c:if>
+											<c:if test="${workReimbursementTypeInfo.grade ==3}">
+												<shiro:hasPermission name="reimbursementType:reimbursementType:edit">
+													<a href="javascript:void(0);" onclick="openDialog('修改报销内容', '${ctx}/reimbursementType/reimbursementType/form?id=${workReimbursementTypeInfo.id}','80%','60%')" class="layui-btn layui-btn-xs layui-bg-green" > 修改</a>
+												</shiro:hasPermission>
+												<shiro:hasPermission name="reimbursementType:reimbursementType:del">
+													<a href="${ctx}/reimbursementType/reimbursementType/delete?id=${workReimbursementTypeInfo.id}" onclick="return confirmx('确认要删除该报销内容吗?', this.href)"   class="layui-btn layui-btn-xs layui-bg-red"> 删除</a>
+												</shiro:hasPermission>
+											</c:if>
 										</div>
 									</div>
 								</td>

File diff suppressed because it is too large
+ 11 - 1
src/main/webapp/webpage/modules/workreimbursement/all/workReimbursementAllFormDetail.jsp


+ 12 - 2
src/main/webapp/webpage/modules/workreimbursement/new/workReimbursementNewAudit.jsp

@@ -238,10 +238,20 @@
 					<input readonly="readonly" style="background-color: #f1f1f1" class="form-control layui-input" value="<fmt:formatDate value="${workReimbursement.submitterDate}" pattern="yyyy-MM-dd"/>"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6 with-textarea">
+
+			<shiro:hasPermission name="workreimbursement:workReimbursementAll:payment">
+				<div class="layui-item layui-col-sm6" >
+					<label class="layui-form-label">付款状态:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true" id="invoiceType"  class="form-control layui-input" <c:choose><c:when test="${workReimbursement.paymentStatus eq '1'}"> style=" font-weight: bold;color: red; background-color: #f1f1f1" </c:when><c:otherwise>style="background-color: #f1f1f1"</c:otherwise></c:choose> value="<c:choose><c:when test="${workReimbursement.paymentStatus eq '0'}">未付款 </c:when><c:when test="${workReimbursement.paymentStatus eq '1'}">已付款</c:when></c:choose>"/>
+					</div>
+				</div>
+			</shiro:hasPermission>
+
+			<div class="layui-item layui-col-sm12 with-textarea">
 				<label class="layui-form-label ">备注:</label>
 				<div class="layui-input-block">
-					<form:textarea path="remarks" placeholder="请输入备注" htmlEscape="false" rows="4"  maxlength="255" value="${workReimbursement.remarks}"  class="form-control "/>
+					<form:textarea path="remarks" readonly="true" placeholder="请输入备注" htmlEscape="false" rows="4"  maxlength="255" value="${workReimbursement.remarks}"  class="form-control "/>
 				</div>
 			</div>
 		</div>

+ 11 - 2
src/main/webapp/webpage/modules/workreimbursement/specific/workReimbursementSpecificAudit.jsp

@@ -200,10 +200,19 @@
 					<input readonly="readonly" style="background-color: #f1f1f1" class="form-control layui-input" value="<fmt:formatDate value="${workReimbursement.submitterDate}" pattern="yyyy-MM-dd"/>"/>
 				</div>
 			</div>
-			<div class="layui-item layui-col-sm6 with-textarea">
+
+			<shiro:hasPermission name="workreimbursement:workReimbursementAll:payment">
+				<div class="layui-item layui-col-sm6" >
+					<label class="layui-form-label">付款状态:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true" id="invoiceType"  class="form-control layui-input" <c:choose><c:when test="${workReimbursement.paymentStatus eq '1'}"> style=" font-weight: bold;color: red; background-color: #f1f1f1" </c:when><c:otherwise>style="background-color: #f1f1f1"</c:otherwise></c:choose> value="<c:choose><c:when test="${workReimbursement.paymentStatus eq '0'}">未付款 </c:when><c:when test="${workReimbursement.paymentStatus eq '1'}">已付款</c:when></c:choose>"/>
+					</div>
+				</div>
+			</shiro:hasPermission>
+			<div class="layui-item layui-col-sm12 with-textarea">
 				<label class="layui-form-label ">备注:</label>
 				<div class="layui-input-block">
-					<form:textarea path="remarks" placeholder="请输入备注" htmlEscape="false" rows="4"  maxlength="255" value="${workReimbursement.remarks}"  class="form-control "/>
+					<form:textarea path="remarks" readonly="true" placeholder="请输入备注" htmlEscape="false" rows="4"  maxlength="255" value="${workReimbursement.remarks}"  class="form-control "/>
 				</div>
 			</div>
 		</div>

+ 34 - 0
src/main/webapp/webpage/modules/workreimbursement/workReimbursementAllList.jsp

@@ -167,6 +167,16 @@
                                 </input>
                             </div>
                         </div>
+                        <div class="layui-item query athird">
+                            <label class="layui-form-label">付款状态:</label>
+                            <div class="layui-input-block">
+                                <form:select path="paymentStatus" class="form-control simple-select">
+                                    <form:option value="" label=""/>
+                                    <form:option value="0" label="未付款"/>
+                                    <form:option value="1" label="已付款"/>
+                                </form:select>
+                            </div>
+                        </div>
                         <div style="clear:both;"></div>
                     </div>
                 </form:form>
@@ -263,6 +273,17 @@
                             var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         return xml;
                     }}
+                ,{align:'center', title: '付款状态',  width:80,templet:function(d){
+                        var st = getPaymentState(d.paymentStatus);
+                        if(st.action){
+                            if (d.paymentStatus==="1"){
+                                var xml = "<span title='付款时间:"+ d.paymentDate +"' 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;
+                    }}
                 // ,{fixed: 'right',align:'center', toolbar: '#op',title:"操作"}
                 ,{align:'center',title:"操作",width:130,templet:function(d){
                         ////对操作进行初始化
@@ -275,6 +296,17 @@
                         {
                             xml+="<a href=\"#\" onclick=\"notifyDialogre('报销审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.notifyId +"&home=reimbursement&pageFlag=all','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
                         }
+                        <shiro:hasPermission name="workreimbursement:workReimbursementAll:payment">
+                            if(d.paymentStatus != undefined && d.paymentStatus !=null && "" != d.paymentStatus && d.paymentStatus == 0)
+                            {
+                                xml +="<a href=\"${ctx}/workreimbursement/workReimbursementAll/paymentSave?id=" + d.id + "&paymentStatus=1\" onclick=\"return confirmx('是否确认给报销编号为 " + d.number + " 的报销信息进行付款?', this.href)\"  class=\"layui-btn layui-btn-xs layui-bg-blue\">付款</a>";
+                            }
+                            if(d.paymentStatus != undefined && d.paymentStatus !=null && "" != d.paymentStatus && d.paymentStatus == 1)
+                            {
+                                xml +="<a href=\"${ctx}/workreimbursement/workReimbursementAll/paymentSave?id=" + d.id + "&paymentStatus=0\" onclick=\"return confirmx('是否确认对报销编号为 " + d.number + " 的报销信息进行撤回付款?', this.href)\"   class=\"layui-btn layui-btn-xs layui-bg-red\">撤回付款</a>";
+                            }
+                        </shiro:hasPermission>
+
                         if(d.cancancel != undefined && d.cancancel == "1")
                             xml += "<a href=\"${ctx}/workreimbursement/workReimbursementAll/cancelInvalidate?id=" + d.id + "\" onclick=\"return confirmx('确认要强制撤回?', this.href)\"   class=\"layui-btn layui-btn-xs layui-bg-red\">撤回</a>";
                         if(d.canedit1 != undefined && d.canedit1 == "1")
@@ -351,6 +383,8 @@
                     </shiro:hasPermission>
                     ,"businessTypeName":"${workReimbursement.businessTypeName}"
                     ,"projectNumber":"${workReimbursement.projectName}"
+                    ,"paymentStatus":"${workReimbursement.paymentStatus}"
+                    ,"paymentDate":"<fmt:formatDate value="${workReimbursement.paymentDate}" pattern="yyyy-MM-dd"/>"
                 }
                 </c:forEach>
                 </c:if>