Forráskód Böngészése

材料库清单功能部分提交

徐滕 2 napja
szülő
commit
2e8f2c7a35
39 módosított fájl, 399 hozzáadás és 441 törlés
  1. 0 6
      src/main/java/com/jeeplus/modules/externalUnit/service/ExternalUnitCapitalDemandService.java
  2. 0 6
      src/main/java/com/jeeplus/modules/externalUnit/service/ExternalUnitFeedbackService.java
  3. 3 60
      src/main/java/com/jeeplus/modules/filialeWorkInvoice/service/FilialeWorkInvoiceService.java
  4. 0 6
      src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectAccessoryService.java
  5. 0 6
      src/main/java/com/jeeplus/modules/projectAccessory/web/ProjectAccessoryController.java
  6. 0 2
      src/main/java/com/jeeplus/modules/projectConstruction/service/FollowArchiveService.java
  7. 0 2
      src/main/java/com/jeeplus/modules/projectConstruction/service/FollowService.java
  8. 0 5
      src/main/java/com/jeeplus/modules/projectFilingBatch/service/ProjectFilingBatchService.java
  9. 21 0
      src/main/java/com/jeeplus/modules/projectmaterialstorage/entity/ProjectMaterialStorage.java
  10. 18 0
      src/main/java/com/jeeplus/modules/projectmaterialstorage/entity/ProjectMaterialStorageImport.java
  11. 33 0
      src/main/java/com/jeeplus/modules/projectmaterialstorage/service/ProjectMaterialStorageService.java
  12. 88 21
      src/main/java/com/jeeplus/modules/projectmaterialstorage/web/ProjectMaterialStorageController.java
  13. 0 2
      src/main/java/com/jeeplus/modules/projectrecord/service/ProjectImplementEarlyService.java
  14. 0 5
      src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsService.java
  15. 0 6
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageElectronicSealService.java
  16. 0 35
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java
  17. 0 2
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsOwnCaseBaseService.java
  18. 0 5
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  19. 0 4
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/changZhouSignature/RuralProjectMessageElectronicSealCZService.java
  20. 0 4
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/yanChengSignature/RuralProjectMessageElectronicSealYCService.java
  21. 0 35
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureCallBackController.java
  22. 0 4
      src/main/java/com/jeeplus/modules/serialnum/service/SerialNumTplService.java
  23. 0 1
      src/main/java/com/jeeplus/modules/signature/dailyOfficeWork/controller/DailyOfficeWorkSignatureCallBackController.java
  24. 0 2
      src/main/java/com/jeeplus/modules/signature/dailyOfficeWork/service/DailyOfficeWorkService.java
  25. 0 2
      src/main/java/com/jeeplus/modules/signature/projectReportSignatureWork/controller/ProjectReportSignatureCallBackController.java
  26. 0 4
      src/main/java/com/jeeplus/modules/signature/projectReportSignatureWork/service/ProjectReportSignatureWorkService.java
  27. 0 2
      src/main/java/com/jeeplus/modules/signatureManagement/businessSignature/service/BusinessSignatureService.java
  28. 0 6
      src/main/java/com/jeeplus/modules/signatureManagement/electronicSignature/service/DistrictDirectorApplicationService.java
  29. 0 2
      src/main/java/com/jeeplus/modules/signatureManagement/electronicSignature/service/ElectronicSignatureService.java
  30. 0 6
      src/main/java/com/jeeplus/modules/test/service/act/ActTestService.java
  31. 0 6
      src/main/java/com/jeeplus/modules/workadministrativeatamp/service/WorkAdministrativeAtampService.java
  32. 0 40
      src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoAllService.java
  33. 0 40
      src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoService.java
  34. 1 30
      src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceAllService.java
  35. 0 60
      src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceService.java
  36. 38 14
      src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageAddForm.jsp
  37. 191 1
      src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageList.jsp
  38. 0 3
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/reportForm.jsp
  39. 6 6
      src/main/webapp/webpage/modules/sys/gridMaterialProject.jsp

+ 0 - 6
src/main/java/com/jeeplus/modules/externalUnit/service/ExternalUnitCapitalDemandService.java

@@ -151,7 +151,6 @@ public class ExternalUnitCapitalDemandService extends CrudService<ExternalUnitCa
                         "待审批",
                         ""  //通知角色
                 );
-        long s6=System.currentTimeMillis();
         List<User> users = new ArrayList<>();
 //        List<User> jfsh = new ArrayList<>();
         List<User> wjbc = new ArrayList<>();
@@ -170,7 +169,6 @@ public class ExternalUnitCapitalDemandService extends CrudService<ExternalUnitCa
         wjbc.add(user1);
         //甲方复核
 //        jffh.addAll(members);
-        long s7=System.currentTimeMillis();
         if (StringUtils.isNotBlank(workActivityMenu.getId())) {
             workProjectNotify.setNotifyRole("");
             workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -233,16 +231,13 @@ public class ExternalUnitCapitalDemandService extends CrudService<ExternalUnitCa
         variables.put("type", processType);
         variables.put("busId", businessKey);
         variables.put("title", "项目-"+capitalDemand.getProject().getName()+"提资需求待审批");//设置标题;
-        long s8=System.currentTimeMillis();
         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
         capitalDemand.setProcessInstance(processInstance);
-        long s9=System.currentTimeMillis();
         if (StringUtils.isNotBlank(processInstanceId)) {
             workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
             workActivityProcessService.deleteProcessInstanceId(processInstanceId);
             workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
         }
-        long s10=System.currentTimeMillis();
         // 更新流程实例ID
         capitalDemand.setProcessInstanceId(processInstance.getId());
         capitalDemandDao.updateProcessInstanceId(capitalDemand);
@@ -251,7 +246,6 @@ public class ExternalUnitCapitalDemandService extends CrudService<ExternalUnitCa
         workProjectNotify.setWapBeginDate(new Date());
         workProjectNotifyService.save(workProjectNotify);
         List<Activity> list = workActivityMenu.getActivities();
-        long s11=System.currentTimeMillis();
         if (list != null && list.size() != 0) {
             workActivityProcessService.saveList(list, processInstance.getId());
         } else {

+ 0 - 6
src/main/java/com/jeeplus/modules/externalUnit/service/ExternalUnitFeedbackService.java

@@ -245,7 +245,6 @@ public class ExternalUnitFeedbackService extends CrudService<ExternalUnitFeedbac
                         "待审批",
                         ""  //通知角色
                 );
-        long s6=System.currentTimeMillis();
         List<User> users = new ArrayList<>();
         List<User> jyfk = new ArrayList<>();
         //审核人
@@ -260,7 +259,6 @@ public class ExternalUnitFeedbackService extends CrudService<ExternalUnitFeedbac
             workProjectNotifyService.readByNotifyId(notify);
         }
 
-        long s7=System.currentTimeMillis();
         if (StringUtils.isNotBlank(workActivityMenu.getId())) {
             workProjectNotify.setNotifyRole("");
             workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -322,16 +320,13 @@ public class ExternalUnitFeedbackService extends CrudService<ExternalUnitFeedbac
         variables.put("type", processType);
         variables.put("busId", businessKey);
         variables.put("title", "项目-"+feedback.getProject().getName()+"意见反馈待审批");//设置标题;
-        long s8=System.currentTimeMillis();
         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
         feedback.setProcessInstance(processInstance);
-        long s9=System.currentTimeMillis();
         if (StringUtils.isNotBlank(processInstanceId)) {
             workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
             workActivityProcessService.deleteProcessInstanceId(processInstanceId);
             workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
         }
-        long s10=System.currentTimeMillis();
         // 更新流程实例ID
         feedback.setProcessInstanceId(processInstance.getId());
         feedbackDao.updateProcessInstanceId(feedback);
@@ -340,7 +335,6 @@ public class ExternalUnitFeedbackService extends CrudService<ExternalUnitFeedbac
         workProjectNotify.setWapBeginDate(new Date());
         workProjectNotifyService.save(workProjectNotify);
         List<Activity> list = workActivityMenu.getActivities();
-        long s11=System.currentTimeMillis();
         if (list != null && list.size() != 0) {
             workActivityProcessService.saveList(list, processInstance.getId());
         } else {

+ 3 - 60
src/main/java/com/jeeplus/modules/filialeWorkInvoice/service/FilialeWorkInvoiceService.java

@@ -507,25 +507,20 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 	 */
 	@Transactional(readOnly = false)
 	public String save(FilialeWorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 			if (StringUtils.isBlank(workInvoice.getNumber())) {
 				synchronized (SYN_BYTE) {
 					workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), FilialeWorkInvoice.SERIAL_BIZCODE));
 				}
 			}
-		long s2=System.currentTimeMillis();
 			super.save(workInvoice);
-		long s3=System.currentTimeMillis();
 			String str = "";
 			//所属部门
 			Office office = officeService.get(workInvoice.getOffice().getId());
 			String userName = UserUtils.get(workInvoice.getCreateBy().getId()).getName();
 			str = "发票申请编号:"+workInvoice.getNumber()+",实际开票单位:"+workInvoice.getClient().getName()+",创建人:"+userName+",所属部门:"+office.getName();
 			String title = "实际开票单位:"+workInvoice.getClient().getName();
-		long s4=System.currentTimeMillis();
 		//处理发票明细
 			updateWorkInvoiceInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 			// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 			identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 			// 启动流程
@@ -546,14 +541,12 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 							"待审批",
 							""
 					);
-		long s6=System.currentTimeMillis();
 			List<User> users = new ArrayList<>();
 			List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
 			List<User> scbzrs = UserUtils.getByRoleActivityEnname("scfgld",1,office.getId(),"5",workInvoice.getCreateBy());
 			//List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",1,office.getId(),"5",workInvoice.getCreateBy());
 		//财务主任
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwzg",1,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 				workProjectNotify.setNotifyRole("");
 				workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -623,16 +616,13 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 			variables.put("type", processType);
 			variables.put("busId", businessKey);
 			variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 			ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 			workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(processInstanceId)) {
 				workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 				workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 				workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 			}
-		long s10=System.currentTimeMillis();
 			// 更新流程实例ID
 			workInvoice.setProcessInstanceId(processInstance.getId());
 			workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -640,7 +630,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		workProjectNotify.setProcessInstanceId(processInstance.getId());
 		workProjectNotifyService.save(workProjectNotify);
 			List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 			if (list != null && list.size() != 0) {
 				workActivityProcessService.saveList(list, processInstance.getId());
 			} else {
@@ -660,10 +649,7 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 				workActivityProcessService.insertAuditsByType(scbzrs,processInstance.getId(),2,0);
 				workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),3,0);
 			}
-		long s12=System.currentTimeMillis();
-			logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-					+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-					+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
+
 			logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 					ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";
@@ -706,7 +692,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 	 */
 	@Transactional(readOnly = false)
 	public String saveBranch(FilialeWorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), FilialeWorkInvoice.SERIAL_BIZCODE));
@@ -715,11 +700,9 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		String officeId = UserUtils.getUser().getOffice().getId();
 		Office office = officeService.get(officeId);
 		workInvoice.setOffice(office);
-		long s2=System.currentTimeMillis();
 			super.save(workInvoice);
 		//保存附件
 		this.saveAttachments(workInvoice);
-		long s3=System.currentTimeMillis();
 		String str = "";
 		//所属部门
 
@@ -731,12 +714,10 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		String title = "项目【"+ projectNameStr +"】发票申请待审批";
 		str = "发票金额:" + workInvoice.getMoney() + "(元)。项目【"+ projectNameStr +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
 
-		long s4=System.currentTimeMillis();
 		//开票明细处理
 		updateWorkInvoiceInfo(workInvoice);
 		//开票与项目关系处理
 		updateWorkInvoiceProjectRelationInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 			// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 			identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 			// 启动流程
@@ -757,13 +738,11 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 							"待审批",
 							""  //通知角色
 					);
-		long s6=System.currentTimeMillis();
 			List<User> users = new ArrayList<>();
 			//List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
 			//List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
 		//财务员工
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwygevod",3,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 				workProjectNotify.setNotifyRole("");
 				workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -827,16 +806,13 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 			variables.put("type", processType);
 			variables.put("busId", businessKey);
 			variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 			ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 			workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(processInstanceId)) {
 				workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 				workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 				workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 			}
-		long s10=System.currentTimeMillis();
 			// 更新流程实例ID
 			workInvoice.setProcessInstanceId(processInstance.getId());
 			workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -845,7 +821,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		workProjectNotify.setWapBeginDate(new Date());
 		workProjectNotifyService.save(workProjectNotify);
 			List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 			if (list != null && list.size() != 0) {
 				workActivityProcessService.saveList(list, processInstance.getId());
 			} else {
@@ -861,10 +836,7 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 				workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),1,1);
 				//workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
 			}
-		long s12=System.currentTimeMillis();
-		logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-				+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-				+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
+
 			logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 					ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";
@@ -876,7 +848,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 	 */
 	@Transactional(readOnly = false)
 	public String saveNotProjectBranch(FilialeWorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), FilialeWorkInvoice.SERIAL_BIZCODE));
@@ -885,11 +856,9 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		String officeId = UserUtils.getUser().getOffice().getId();
 		Office office = officeService.get(officeId);
 		workInvoice.setOffice(office);
-		long s2=System.currentTimeMillis();
 			super.save(workInvoice);
 		//保存附件
 		this.saveAttachments(workInvoice);
-		long s3=System.currentTimeMillis();
 		String str = "";
 		//所属部门
 
@@ -901,12 +870,10 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		String title = "项目【"+ projectNameStr +"】发票申请待审批";
 		str = "发票金额:" + workInvoice.getMoney() + "(元)。项目【"+ projectNameStr +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
 
-		long s4=System.currentTimeMillis();
 		//开票明细处理
 		updateWorkInvoiceInfo(workInvoice);
 		//开票与项目关系处理
 		updateWorkInvoiceProjectRelationInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 			// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 			identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 			// 启动流程
@@ -927,7 +894,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 							"待审批",
 							""  //通知角色
 					);
-		long s6=System.currentTimeMillis();
 			List<User> users = new ArrayList<>();
 		//获取部门主任
 			List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
@@ -935,7 +901,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 			//List<User> zjls = UserUtils.getByRoleActivityEnname("zjl",3,office.getId(),"5",workInvoice.getCreateBy());
 		//财务员工
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwygevod",3,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 				workProjectNotify.setNotifyRole("");
 				workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -999,16 +964,13 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 			variables.put("type", processType);
 			variables.put("busId", businessKey);
 			variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 			ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 			workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(processInstanceId)) {
 				workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 				workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 				workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 			}
-		long s10=System.currentTimeMillis();
 			// 更新流程实例ID
 			workInvoice.setProcessInstanceId(processInstance.getId());
 			workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -1017,7 +979,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		workProjectNotify.setWapBeginDate(new Date());
 		workProjectNotifyService.save(workProjectNotify);
 			List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 			if (list != null && list.size() != 0) {
 				workActivityProcessService.saveList(list, processInstance.getId());
 			} else {
@@ -1033,10 +994,7 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 				workActivityProcessService.insertAuditsByType(bmzrs,processInstance.getId(),1,1);
 				workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
 			}
-		long s12=System.currentTimeMillis();
-		logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-				+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-				+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
+
 			logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 					ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";
@@ -1050,7 +1008,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 	 */
 	@Transactional(readOnly = false)
 	public String saveBranchExamine(FilialeWorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), FilialeWorkInvoice.SERIAL_BIZCODE));
@@ -1059,11 +1016,9 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		String officeId = UserUtils.getUser().getOffice().getId();
 		Office office = officeService.get(officeId);
 		workInvoice.setOffice(office);
-		long s2=System.currentTimeMillis();
 		super.save(workInvoice);
 		//保存附件
 		this.saveAttachments(workInvoice);
-		long s3=System.currentTimeMillis();
 		String str = "";
 		//所属部门
 
@@ -1075,12 +1030,10 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		String title = "项目【"+ projectNameStr +"】发票申请待审批";
 		str = "项目【"+ projectNameStr +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
 
-		long s4=System.currentTimeMillis();
 		//开票明细处理
 		updateWorkInvoiceInfo(workInvoice);
 		//开票与项目关系处理
 		updateWorkInvoiceProjectRelationInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 		// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 		identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 		// 启动流程
@@ -1101,13 +1054,11 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 						"待审批",
 						""
 				);
-		long s6=System.currentTimeMillis();
 		List<User> users = new ArrayList<>();
 		List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
 		//List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
 		//财务员工
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwygevod",3,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 		if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 			workProjectNotify.setNotifyRole("");
 			workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -1171,16 +1122,13 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		variables.put("type", processType);
 		variables.put("busId", businessKey);
 		variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 		workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 		if (StringUtils.isNotBlank(processInstanceId)) {
 			workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 			workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 			workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 		}
-		long s10=System.currentTimeMillis();
 		// 更新流程实例ID
 		workInvoice.setProcessInstanceId(processInstance.getId());
 		workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -1189,7 +1137,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 		workProjectNotify.setWapBeginDate(new Date());
 		workProjectNotifyService.save(workProjectNotify);
 		List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 		if (list != null && list.size() != 0) {
 			workActivityProcessService.saveList(list, processInstance.getId());
 		} else {
@@ -1204,10 +1151,6 @@ public class FilialeWorkInvoiceService extends CrudService<FilialeWorkInvoiceDao
 			workActivityProcessService.insertAuditsByType(bmzrs,processInstance.getId(),1,1);
 			workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
 		}
-		long s12=System.currentTimeMillis();
-		logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-				+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-				+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
 		logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 				ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";

+ 0 - 6
src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectAccessoryService.java

@@ -265,7 +265,6 @@ public class ProjectAccessoryService extends TreeService<ProjectAccessoryDao, Pr
      */
     @Transactional(readOnly = false)
     public void saveWorkAttachment(ProjectAccessoryTree projectAccessory){
-        long t1 = System.currentTimeMillis();
         //判断附件信息是否为空
         if(null != projectAccessory.getWorkAttachments()){
             for (WorkClientAttachment workClientAttachment : projectAccessory.getWorkAttachments()) {
@@ -296,8 +295,6 @@ public class ProjectAccessoryService extends TreeService<ProjectAccessoryDao, Pr
                 }
             }
         }
-        long t2 = System.currentTimeMillis();
-        System.out.println("上传文件service层消耗时间:" + (t2-t1));
     }
 
     /**
@@ -402,7 +399,6 @@ public class ProjectAccessoryService extends TreeService<ProjectAccessoryDao, Pr
      */
     @Transactional(readOnly = false)
     public void saveWorkAttachmentOverAll(ProjectAccessoryTree projectAccessory){
-        long t1 = System.currentTimeMillis();
         //判断附件信息是否为空
         if(null != projectAccessory.getWorkAttachments()){
             for (WorkClientAttachment workClientAttachment : projectAccessory.getWorkAttachments()) {
@@ -433,8 +429,6 @@ public class ProjectAccessoryService extends TreeService<ProjectAccessoryDao, Pr
                 }
             }
         }
-        long t2 = System.currentTimeMillis();
-        System.out.println("上传文件service层消耗时间:" + (t2-t1));
     }
 
 

+ 0 - 6
src/main/java/com/jeeplus/modules/projectAccessory/web/ProjectAccessoryController.java

@@ -434,7 +434,6 @@ public class ProjectAccessoryController extends BaseController {
 	@RequestMapping("saveWorkAttachment")
 	@ResponseBody
 	public Object saveWorkAttachment(ProjectAccessoryTree projectAccessory){
-		long t1 = System.currentTimeMillis();
 		Map<String,Object> map = new HashMap<>();
 		//新增修改删除附件信息
 		projectAccessoryService.saveWorkAttachment(projectAccessory);
@@ -458,8 +457,6 @@ public class ProjectAccessoryController extends BaseController {
 			projectMaterialStorageService.modifyProjectMaterialStorageStatus(ruralProjectRecords);
 		}
 
-		long t2 = System.currentTimeMillis();
-		System.out.println("上传文件controller层消耗时间:" + (t2-t1));
 		return map;
 	}
 
@@ -688,7 +685,6 @@ public class ProjectAccessoryController extends BaseController {
 	@RequestMapping("saveWorkAttachmentOverAll")
 	@ResponseBody
 	public Object saveWorkAttachmentOverAll(ProjectAccessoryTree projectAccessory){
-		long t1 = System.currentTimeMillis();
 		Map<String,Object> map = new HashMap<>();
 		//新增修改删除附件信息
 		projectAccessoryService.saveWorkAttachmentOverAll(projectAccessory);
@@ -698,8 +694,6 @@ public class ProjectAccessoryController extends BaseController {
 			map.put("str","");
 		}
 
-		long t2 = System.currentTimeMillis();
-		System.out.println("上传文件controller层消耗时间:" + (t2-t1));
 		return map;
 	}
 }

+ 0 - 2
src/main/java/com/jeeplus/modules/projectConstruction/service/FollowArchiveService.java

@@ -252,9 +252,7 @@ public class FollowArchiveService extends CrudService<ContractDao,ConstructionCo
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + projectFollowReport.getProjectFollowName());//设置标题;

+ 0 - 2
src/main/java/com/jeeplus/modules/projectConstruction/service/FollowService.java

@@ -276,9 +276,7 @@ public class FollowService extends CrudService<ContractDao,ConstructionContract>
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + projectFollowReport.getProjectFollowName());//设置标题;

+ 0 - 5
src/main/java/com/jeeplus/modules/projectFilingBatch/service/ProjectFilingBatchService.java

@@ -540,7 +540,6 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
      */
     @Transactional(readOnly = false)
     public void saveProject(String[] proId,ProjectFilingBatch projectFilingBatch, ProjectStatusEnum projectStatus,String[] proInfos,String[] flags) throws Exception {
-        long t1 = System.currentTimeMillis();
         Integer oldStatus =0;
         if (StringUtils.isNotBlank(projectFilingBatch.getFilingBatch())){
             oldStatus = projectFilingBatch.getFilingStatus();
@@ -624,12 +623,10 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
         if (null != proInfos && proInfos.length!=0 ){
             this.insertProInfo(proInfos,flags,proId,projectFilingBatch.getId());
         }
-        long t4 = System.currentTimeMillis();
         //启动审批流程
         if (projectFilingBatch.getFilingStatus()== ProjectStatusEnum.IN_APRL.getValue()&&(oldStatus==null|| ProjectStatusEnum.REJECTED.getValue()!=oldStatus)) {
             this.startAudit(projectFilingBatch,projectFilingBatch.getProcessinstanceId());
         }
-        logger.info("保存项目耗时:{}ms;启动流程耗时:{}ms",t4-t1,System.currentTimeMillis()-t4);
     }
     /**
      * 启动审批流程
@@ -717,9 +714,7 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
                 extras.put("id",workProjectNotify.getId());
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "归档批次号:" + projectFilingBatch.getFilingBatch());//设置标题;

+ 21 - 0
src/main/java/com/jeeplus/modules/projectmaterialstorage/entity/ProjectMaterialStorage.java

@@ -249,6 +249,8 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
     public Date getQuotedPriceDate() {
         return quotedPriceDate;
     }
+    private String monomerProjectDescription ; //单体工程描述
+    private String priceSource ; //价格来源。 1:甲供、2:乙供、3:概算价
 
     public void setQuotedPriceDate(Date quotedPriceDate) {
         this.quotedPriceDate = quotedPriceDate;
@@ -334,6 +336,7 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
         this.distinctStr = distinctStr;
     }
 
+    @ExcelField(title="提醒", align=2, sort=14)
     public String getErrorMessage() {
         return errorMessage;
     }
@@ -341,4 +344,22 @@ public class ProjectMaterialStorage extends DataEntity<ProjectMaterialStorage> {
     public void setErrorMessage(String errorMessage) {
         this.errorMessage = errorMessage;
     }
+
+    @ExcelField(title="单体项目描述", align=2, sort=12)
+    public String getMonomerProjectDescription() {
+        return monomerProjectDescription;
+    }
+
+    public void setMonomerProjectDescription(String monomerProjectDescription) {
+        this.monomerProjectDescription = monomerProjectDescription;
+    }
+
+    @ExcelField(title="价格来源", align=2, sort=13)
+    public String getPriceSource() {
+        return priceSource;
+    }
+
+    public void setPriceSource(String priceSource) {
+        this.priceSource = priceSource;
+    }
 }

+ 18 - 0
src/main/java/com/jeeplus/modules/projectmaterialstorage/entity/ProjectMaterialStorageImport.java

@@ -31,6 +31,8 @@ public class ProjectMaterialStorageImport extends DataEntity<ProjectMaterialStor
 
     private Project project;  //项目
 
+    private String monomerProjectDescription ; //单体工程描述
+    private String priceSource ; //价格来源。 1:甲供、2:乙供、3:概算价
     private String distinctStr ; //用于去重用的临时参数
     private String errorMessage ; //错误原因
 
@@ -163,4 +165,20 @@ public class ProjectMaterialStorageImport extends DataEntity<ProjectMaterialStor
     public void setErrorMessage(String errorMessage) {
         this.errorMessage = errorMessage;
     }
+
+    public String getMonomerProjectDescription() {
+        return monomerProjectDescription;
+    }
+
+    public void setMonomerProjectDescription(String monomerProjectDescription) {
+        this.monomerProjectDescription = monomerProjectDescription;
+    }
+
+    public String getPriceSource() {
+        return priceSource;
+    }
+
+    public void setPriceSource(String priceSource) {
+        this.priceSource = priceSource;
+    }
 }

+ 33 - 0
src/main/java/com/jeeplus/modules/projectmaterialstorage/service/ProjectMaterialStorageService.java

@@ -191,6 +191,29 @@ public class ProjectMaterialStorageService extends CrudService<ProjectMaterialSt
             }
         }
 
+        // 1. 提取duplicateList中所有数据的唯一标识(distinctStr)
+        Set<String> duplicateDistinctSet = new HashSet<>();
+        for (ProjectMaterialStorageImport item : duplicateList) {
+            String distinctStr = item.getDistinctStr();
+            if (distinctStr != null) {
+                duplicateDistinctSet.add(distinctStr);
+            }
+        }
+
+        // 2. 遍历uniqueList,移除与duplicateList中重复的项
+        Iterator<ProjectMaterialStorageImport> uniqueListIterator = uniqueList.iterator();
+        while (uniqueListIterator.hasNext()) {
+            ProjectMaterialStorageImport item = uniqueListIterator.next();
+            String distinctStr = item.getDistinctStr();
+
+            // 如果当前项的distinctStr在duplicateList中存在,则从uniqueList移除
+            if (distinctStr != null && duplicateDistinctSet.contains(distinctStr)) {
+                uniqueListIterator.remove();
+                // 可选:如果需要将移除的项加入duplicateList,取消下面这行注释
+                // duplicateList.add(item);
+            }
+        }
+
         // 最终返回处理后的列表
         map.put("uniqueList", uniqueList);      // 仅包含本次新增且不与历史重复的数据
         map.put("duplicateList", duplicateList); // 包含自身重复和与历史重复的数据
@@ -507,5 +530,15 @@ public class ProjectMaterialStorageService extends CrudService<ProjectMaterialSt
                 .replace("&quot;", "\"")   // 双引号
                 .replace("&apos;", "'");   // 单引号
     }
+
+    /**
+     * 删除Redis中指定key的数据
+     * @param key 要删除的key
+     */
+    public void deleteRedisKey(String key) {
+        // 获取Jedis实例
+        Jedis jedis = JedisUtils.getResource();
+        jedis.del(key);
+    }
 }
 

+ 88 - 21
src/main/java/com/jeeplus/modules/projectmaterialstorage/web/ProjectMaterialStorageController.java

@@ -30,8 +30,10 @@ import redis.clients.jedis.Jedis;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.util.*;
 
 
@@ -161,14 +163,19 @@ public class ProjectMaterialStorageController extends BaseController {
      * @throws Exception
      */
     @RequestMapping(value = "storageSave")
-    public String storageSave(ProjectMaterialStorage projectMaterialStorage, Model model, RedirectAttributes redirectAttributes) throws Exception {
+    @ResponseBody
+    public Map<String, Object> storageSave(ProjectMaterialStorage projectMaterialStorage, Model model) throws Exception {
+        // 初始化返回结果Map
+        Map<String, Object> result = new HashMap<>(4);
+
         int i = 1;
         List<ProjectMaterialStorageImport> projectMaterialStorageList = Lists.newArrayList();
         List<ProjectMaterialStorageImport> metadataList = projectMaterialStorage.getProjectMaterialStorageList();
 
         if(null == metadataList || metadataList.isEmpty()){
-            addMessage(redirectAttributes, "请填写材料信息");
-            return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
+            result.put("success", false);
+            result.put("message", "请填写材料信息");
+            return result;
         }
 //        此处需要修改为迭代器形式
         Iterator<ProjectMaterialStorageImport> iterator = metadataList.iterator();
@@ -176,6 +183,8 @@ public class ProjectMaterialStorageController extends BaseController {
             ProjectMaterialStorageImport projectMaterialStorageImport = iterator.next();
             if("1".equals(projectMaterialStorageImport.getDelFlag())){
                 iterator.remove();
+            }else if(StringUtils.isBlank(projectMaterialStorageImport.getMaterialName()) || StringUtils.isBlank(projectMaterialStorageImport.getUnit())){
+                iterator.remove();
             }else{
                 projectMaterialStorageList.add(projectMaterialStorageImport);
             }
@@ -209,8 +218,8 @@ public class ProjectMaterialStorageController extends BaseController {
             String spec = (info.getSpecifications() != null) ? info.getSpecifications() : "";
             String projectPriceIncludingTaxStr = (info.getProjectPriceIncludingTax() != null) ? info.getProjectPriceIncludingTax().toString() : "";
             // 以逗号分隔组合
-            String result = name + "," + spec + "," + projectPriceIncludingTaxStr;
-            info.setDistinctStr(result);
+            String resultStr = name + "," + spec + "," + projectPriceIncludingTaxStr;
+            info.setDistinctStr(resultStr);
         }
 
         Map<String,List<ProjectMaterialStorageImport>> map = projectMaterialStorageService.distinctProjectMaterialStorage(effectiveList,projectMaterialStorage.getProjectId());
@@ -241,26 +250,36 @@ public class ProjectMaterialStorageController extends BaseController {
         //元数据:metadataList
         //判定,如果 错误数据 中存在数据,则表示前端传过来的数据并没有完全保存。需要将数据转存成exce文档并给下载接口
         //可先将数据存储到redis中,保存的redis 的key可以按照 项目id + 登陆人id + uniqueList 这种格式
-        if(!duplicateList.isEmpty()){
+        Map<String, String> redisKeys = new HashMap<>();
+        if(!duplicateList.isEmpty() || !errorList.isEmpty()){
             User user = UserUtils.getUser();
             String uniqueRedisKey = projectMaterialStorage.getProjectId() + "_" + user.getId() + "_uniqueList";
             String errorRedisKey = projectMaterialStorage.getProjectId() + "_" + user.getId() + "_errorList";
             String duplicateRedisKey = projectMaterialStorage.getProjectId() + "_" + user.getId() + "_duplicateList";
             String metadataRedisKey = projectMaterialStorage.getProjectId() + "_" + user.getId() + "_metadataList";
 
-            // 分别存储各个列表
+            // 保存前先删除对应key的原有数据
+            projectMaterialStorageService.deleteRedisKey(errorRedisKey);
+            projectMaterialStorageService.deleteRedisKey(uniqueRedisKey);
+            projectMaterialStorageService.deleteRedisKey(duplicateRedisKey);
+            projectMaterialStorageService.deleteRedisKey(metadataRedisKey);
 
+            // 分别存储各个列表
             if (!errorList.isEmpty()) {
                 projectMaterialStorageService.saveListToZSet(errorRedisKey, errorList);
+                redisKeys.put("errorRedisKey", errorRedisKey);
             }
             if (!uniqueList.isEmpty()) {
                 projectMaterialStorageService.saveListToZSet(uniqueRedisKey, uniqueList);
+                redisKeys.put("uniqueRedisKey", uniqueRedisKey);
             }
             if (!duplicateList.isEmpty()) {
                 projectMaterialStorageService.saveListToZSet(duplicateRedisKey, duplicateList);
+                redisKeys.put("duplicateRedisKey", duplicateRedisKey);
             }
-            if (!metadataList.isEmpty()) {
-                projectMaterialStorageService.saveListToZSet(metadataRedisKey, metadataList);
+            if (!projectMaterialStorageList.isEmpty()) {
+                projectMaterialStorageService.saveListToZSet(metadataRedisKey, projectMaterialStorageList);
+                redisKeys.put("metadataRedisKey", metadataRedisKey);
             }
 
         }
@@ -272,10 +291,25 @@ public class ProjectMaterialStorageController extends BaseController {
             projectMaterialStorageService.modifyProjectMaterialStorageStatus(ruralProjectRecords);
         }
 
-        return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
+        // 封装返回结果
+        result.put("success", true);
+        result.put("message", "处理完成");
+        //元数据总数据量
+        result.put("metadataCount", projectMaterialStorageList.size());
+        //成功数据量
+        result.put("uniqueCount", uniqueList.size());
+        //错误数据量
+        result.put("errorCount", errorList.size());
+        //重复数据量
+        result.put("duplicateCount", duplicateList.size());
+        result.put("redisKeys", redisKeys);
+        result.put("projectId", projectMaterialStorage.getProjectId());
+
+        return result;
     }
 
 
+
     /**
      * 修改材料库
      */
@@ -311,10 +345,10 @@ public class ProjectMaterialStorageController extends BaseController {
      * 下载处理后的文档信息
      */
     @RequiresPermissions("project:projectMaterialStorage:export")
-    @RequestMapping(value = "export", method= RequestMethod.POST)
-    public String exportFile(ProjectMaterialStorage projectMaterialStorage, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
+    @RequestMapping(value = "export", method = RequestMethod.POST)
+    public void exportFile(ProjectMaterialStorage projectMaterialStorage, HttpServletRequest request,
+                           HttpServletResponse response, RedirectAttributes redirectAttributes) {
         try {
-            projectMaterialStorage.setProjectId("c8e0cb8a12f84403b0acce09bfbd0191");
             // 1. 创建多页签导出工具实例
             ExportMultipleTabsExcel exporter = new ExportMultipleTabsExcel();
 
@@ -338,23 +372,56 @@ public class ProjectMaterialStorageController extends BaseController {
             List<ProjectMaterialStorage> metadataList = projectMaterialStorageService.convertFromRedis(
                     projectId + "_" + userId + "_metadataList");
 
+            // 处理可能的空列表,避免导出工具报错
+            errorList = errorList == null ? Collections.emptyList() : errorList;
+            duplicateList = duplicateList == null ? Collections.emptyList() : duplicateList;
+            uniqueList = uniqueList == null ? Collections.emptyList() : uniqueList;
+            metadataList = metadataList == null ? Collections.emptyList() : metadataList;
+
             // 3. 添加Sheet页(页签名称、标题、实体类、数据列表)
-            exporter.addSheet("错误数据", "材料库导入错误数据", ProjectMaterialStorage.class, errorList);
-            exporter.addSheet("重复数据", "材料库导入重复数据", ProjectMaterialStorage.class, duplicateList);
-            exporter.addSheet("有效数据", "材料库导入有效数据", ProjectMaterialStorage.class, uniqueList);
-            exporter.addSheet("原数据", "材料库导入原数据", ProjectMaterialStorage.class, metadataList);
+            if (!errorList.isEmpty()) {
+                exporter.addSheet("错误数据", "材料库导入错误数据", ProjectMaterialStorage.class, errorList);
+            }
+            if (!duplicateList.isEmpty()) {
+                exporter.addSheet("重复数据", "材料库导入重复数据", ProjectMaterialStorage.class, duplicateList);
+            }
+            if (!uniqueList.isEmpty()) {
+                exporter.addSheet("有效数据", "材料库导入有效数据", ProjectMaterialStorage.class, uniqueList);
+            }
+            if (!metadataList.isEmpty()) {
+                exporter.addSheet("原数据", "材料库导入原数据", ProjectMaterialStorage.class, metadataList);
+            }
 
-            // 4. 导出文件
+            // 4. 导出文件(关键:设置响应头,确保浏览器正确下载)
             String fileName = "材料库导入数据汇总_" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+            // 设置响应类型为Excel
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            // 设置文件名(解决中文乱码)
+            String encodedFileName = URLEncoder.encode(fileName, "UTF-8");
+            response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName);
+            // 禁用缓存
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            response.setDateHeader("Expires", 0);
+
+            // 修正:直接传递response对象给write方法(移除错误的类型转换)
             exporter.write(response, fileName);
             exporter.dispose(); // 清理资源
-            return null;
 
         } catch (Exception e) {
-            addMessage(redirectAttributes, "导出失败!错误信息:" + e.getMessage());
+            // 日志记录错误(文件导出失败时,前端可通过弹窗提示)
             logger.error("多页签导出异常", e);
+            // 若需向前端传递错误信息,可设置响应状态和消息
+            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            try {
+                // 确保响应未提交时才写入错误信息
+                if (!response.isCommitted()) {
+                    response.getWriter().write("导出失败:" + e.getMessage());
+                }
+            } catch (IOException ex) {
+                logger.error("响应错误信息失败", ex);
+            }
         }
-        return "redirect:"+Global.getAdminPath()+"/project/projectMaterialStorage/?repage";
     }
 
 

+ 0 - 2
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectImplementEarlyService.java

@@ -539,9 +539,7 @@ public class ProjectImplementEarlyService extends CrudService<ProjectImplementEa
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + projectFollowReport.getProjectFollowName());//设置标题;

+ 0 - 5
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsService.java

@@ -520,7 +520,6 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 	}
 	@Transactional(readOnly = false)
 	public void saveProject(ProjectRecords projectRecords,ProjectStatusEnum projectStatus) throws Exception {
-		long t1 = System.currentTimeMillis();
 
 		//合同对象
 		WorkContractInfo workContractInfo = null;
@@ -584,7 +583,6 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		//保存设计方联系信息5(新添代码)
 		List<WorkClientLinkman> designLinkmanList = projectRecords.getWorkDesignLinkmanList();
 		this.saveLinkmanInfos(projectRecords.getId(), designLinkmanList, "5");
-        long t4 = System.currentTimeMillis();
 		//保存项目计划附件信息
 		if (projectRecords.getProjectStatus()==ProjectStatusEnum.INVALID.getValue()) {
 			this.copyAttachments(projectRecords);
@@ -595,7 +593,6 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		if (projectRecords.getProjectStatus()==ProjectStatusEnum.IN_APRL.getValue()&&(oldStatus==null||ProjectStatusEnum.REJECTED.getValue()!=oldStatus)) {
 			this.startAudit(projectRecords,projectRecords.getProcessInstanceId());
 		}
-		logger.info("保存项目耗时:{}ms;启动流程耗时:{}ms",t4-t1,System.currentTimeMillis()-t4);
 	}
 
     private void copyAttachments(ProjectRecords projectRecords) {
@@ -873,9 +870,7 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + projectRecords.getProjectName());//设置标题;

+ 0 - 6
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageElectronicSealService.java

@@ -341,9 +341,7 @@ public class RuralProjectMessageElectronicSealService extends CrudService<RuralP
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + ruralProjectRecords.getProjectName());//设置标题;
@@ -1006,9 +1004,7 @@ public class RuralProjectMessageElectronicSealService extends CrudService<RuralP
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + ruralProjectRecords.getProjectName());//设置标题;
@@ -1161,9 +1157,7 @@ public class RuralProjectMessageElectronicSealService extends CrudService<RuralP
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + ruralProjectRecords.getProjectName());//设置标题;

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

@@ -7096,10 +7096,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
             professionalChapterAction.setActionOperators(actionOperators);
 
             //获取成员印章id信息
-            long s1=System.currentTimeMillis();
             String userSealId = SignaturePostUtil.getUserSealByMobile("15240492484","","徐滕个人签名");
-            long s2=System.currentTimeMillis();
-            System.out.println("第三个人员印章获取时间:" + (s2 - s1));
             if(StringUtils.isNotBlank(userSealId)){
                 for (String documentId: documentList) {
                     //添加盖章位置
@@ -7253,10 +7250,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
             professionalChapterAction.setActionOperators(actionOperators);
 
             //获取成员印章id信息
-            long s1=System.currentTimeMillis();
             String userSealId = SignaturePostUtil.getUserSealByMobile("15240492484","","徐滕个人签名");
-            long s2=System.currentTimeMillis();
-            System.out.println("第三个人员印章获取时间:" + (s2 - s1));
             if(StringUtils.isNotBlank(userSealId)){
                 for (String documentId: documentList) {
                     //添加盖章位置
@@ -7345,13 +7339,8 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
                 seal.setTenantName("江苏兴光项目管理有限公司");
                 seal.setStampers(professionalChapterLocations);
                 net.sf.json.JSONObject sealJson = net.sf.json.JSONObject.fromObject(seal);
-                System.out.println(sealJson.toString());
                 //访问个人章方法
-                long s7=System.currentTimeMillis();
                 String personalCareerSealMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/signbypractice", sealJson.toString());
-                long s8=System.currentTimeMillis();
-                System.out.println("访问第一个个人签字章方法获取时间:" + (s8 - s7));
-                System.out.println(personalCareerSealMapStr);
 
                 HashMap hashMapZY = JSON.parseObject(personalCareerSealMapStr, HashMap.class);
                 contractIdCode = hashMapZY.get("code").toString();
@@ -7632,12 +7621,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
             User user = UserUtils.get(principalUserId);
             if(null != user){
                 //获取成员印章id信息
-                long s1=System.currentTimeMillis();
                 String userSealId = SignaturePostUtil.getUserSealByMobile(user.getMobile(),"",user.getName() + "一级注册造价工程师章-竖");
-                long s2=System.currentTimeMillis();
-                System.out.println("第一个人员印章获取时间:" + (s2 - s1));
-
-
 
                 if(StringUtils.isNotBlank(userSealId)){
                     for (String documentId: documentList) {
@@ -7668,10 +7652,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         User technologyPrincipalUser = UserUtils.getByLoginName("陈红星");
         if(null != technologyPrincipalUser){
             //获取成员印章id信息
-            long s1=System.currentTimeMillis();
             String userSealId = SignaturePostUtil.getUserSealByMobile(technologyPrincipalUser.getMobile(),"","陈红星个人签名章-竖");
-            long s2=System.currentTimeMillis();
-            System.out.println("第二个人员印章获取时间:" + (s2 - s1));
 
             if(StringUtils.isNotBlank(userSealId)){
                 for (String documentId: documentList) {
@@ -7764,16 +7745,12 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         professionalChapterTwoAction.setActionOperators(actionTwoOperators);
 
         //获取成员印章id信息
-        long s3=System.currentTimeMillis();
         String userSealId2 = SignaturePostUtil.getUserSealByMobile("15151828251","","刘建春造价工程师章");
-        long s4=System.currentTimeMillis();
-        System.out.println("第四个人员印章获取时间:" + (s4 - s3));
 
         serialIdsList = new ArrayList<String>(professionalChapterTwoSerialIdSet);
         professionalChapterTwoAction.setSealIds("[" + String.join(",", serialIdsList) + "]");
         professionalChapterTwoAction.setLocations(professionalChapterTwoLocations);
         professionalChapterJson = net.sf.json.JSONObject.fromObject(professionalChapterTwoAction);
-        System.out.println(professionalChapterJson.toString());
         actions.add(professionalChapterTwoAction);
 
 
@@ -7795,12 +7772,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         signatureContract.setSn("");
         signatureContract.setSubject(ruralProjectRecords.getProjectName());//添加项目名称
         net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(signatureContract);
-        System.out.println(json.toString());
-        long s5=System.currentTimeMillis();
-        System.out.println(json.toString());
         String contractIdMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/createbycategory", json.toString());
-        long s6=System.currentTimeMillis();
-        System.out.println("获取合同id获取时间:" + (s6 - s5));
         hashMap = JSON.parseObject(contractIdMapStr, HashMap.class);
 
         //访问个人执业章接口信息
@@ -7854,11 +7826,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
                 net.sf.json.JSONObject sealJson = net.sf.json.JSONObject.fromObject(seal);
                 System.out.println(sealJson.toString());
                 //访问个人章方法
-                long s7=System.currentTimeMillis();
                 String personalCareerSealMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/signbypractice", sealJson.toString());
-                long s8=System.currentTimeMillis();
-                System.out.println("访问第一个个人签字章方法获取时间:" + (s8 - s7));
-                System.out.println(personalCareerSealMapStr);
 
                 hashMap = JSON.parseObject(personalCareerSealMapStr, HashMap.class);
                 contractIdCode = hashMap.get("code").toString();
@@ -7880,10 +7848,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
                 sealTwo.setStampers(professionalChapterTwoLocations);
                 net.sf.json.JSONObject sealTwoJson = net.sf.json.JSONObject.fromObject(sealTwo);
                 System.out.println(sealTwoJson.toString());
-                long s9=System.currentTimeMillis();
                 String personalCareerSealTwoMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/signbypractice", sealTwoJson.toString());
-                long s10=System.currentTimeMillis();
-                System.out.println("访问第二个个人签字章方法获取时间:" + (s10 - s9));
                 System.out.println(personalCareerSealTwoMapStr);
 
                 hashMap = JSON.parseObject(personalCareerSealTwoMapStr, HashMap.class);

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

@@ -187,9 +187,7 @@ public class RuralProjectRecordsOwnCaseBaseService extends CrudService<RuralProj
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + ruralProjectRecords.getProjectName());//设置标题;

+ 0 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -784,7 +784,6 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		if(null != projectRecords.getWorkContractInfo() && StringUtils.isNotBlank(projectRecords.getWorkContractInfo().getId())){
 			newWorkContractInfo = workContractInfoService.get(projectRecords.getWorkContractInfo().getId());
 		}
-		long t1 = System.currentTimeMillis();
 
 		WorkContractInfo workContractInfo = null;
 		WorkClientInfo workClientInfo = new WorkClientInfo();
@@ -934,7 +933,6 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		//保存施工方联系信息3
 		List<WorkClientLinkman> constructionLinkmanList = projectRecords.getWorkConstructionLinkmanList();
 		this.saveLinkmanInfos(projectRecords.getId(), constructionLinkmanList, 3);
-        long t4 = System.currentTimeMillis();
 		//保存项目计划附件信息
 		if (projectRecords.getProjectStatus()== ProjectStatusEnum.INVALID.getValue()) {
 			this.copyAttachments(projectRecords);
@@ -1037,7 +1035,6 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		}
 
 
-		logger.info("保存项目耗时:{}ms;启动流程耗时:{}ms",t4-t1,System.currentTimeMillis()-t4);
 	}
 
 	@Transactional(readOnly = false)
@@ -1469,9 +1466,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + projectRecords.getProjectName());//设置标题;

+ 0 - 4
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/changZhouSignature/RuralProjectMessageElectronicSealCZService.java

@@ -328,9 +328,7 @@ public class RuralProjectMessageElectronicSealCZService extends CrudService<Rura
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + ruralProjectRecords.getProjectName());//设置标题;
@@ -865,9 +863,7 @@ public class RuralProjectMessageElectronicSealCZService extends CrudService<Rura
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + ruralProjectRecords.getProjectName());//设置标题;

+ 0 - 4
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/yanChengSignature/RuralProjectMessageElectronicSealYCService.java

@@ -324,9 +324,7 @@ public class RuralProjectMessageElectronicSealYCService extends CrudService<Rura
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + ruralProjectRecords.getProjectName());//设置标题;
@@ -851,9 +849,7 @@ public class RuralProjectMessageElectronicSealYCService extends CrudService<Rura
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "审批单:" + ruralProjectRecords.getProjectName());//设置标题;

+ 0 - 35
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureCallBackController.java

@@ -94,7 +94,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getApprovalCoordinates", method=RequestMethod.POST)
     public String getApprovalCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
         ProjectReportData projectReportData = null;
@@ -297,8 +296,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
 
         projectApprovalSignature.setStatus(5);
         dao.updateApprovalSignature(projectApprovalSignature);
-        long t2 = System.currentTimeMillis();
-        System.out.println("审定单回调运行耗时:" + (t2-t1) + " 毫秒");
 
         //将文件存储到项目审定单列表中
         //签章完成则进行数据的保存
@@ -381,7 +378,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getApprovalYCCoordinates", method=RequestMethod.POST)
     public String getApprovalYCCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
         ProjectReportData projectReportData = null;
@@ -464,8 +460,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
 
         projectApprovalSignature.setStatus(5);
         dao.updateApprovalSignature(projectApprovalSignature);
-        long t2 = System.currentTimeMillis();
-        System.out.println("审定单回调运行耗时:" + (t2-t1) + " 毫秒");
 
         //将文件存储到项目审定单列表中
         //签章完成则进行数据的保存
@@ -510,7 +504,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getSignatureCoordinates", method=RequestMethod.POST)
     public String getSignatureCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
         //根据contractId查询对应的报告信息
@@ -748,10 +741,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
         dao.updateReportSignature(projectReportSignature);
 
 
-
-        long t2 = System.currentTimeMillis();
-        System.out.println("报告签章回调运行耗时:" + (t2-t1) + " 毫秒");
-
         if(StringUtils.isNotBlank(presignCallBack.getStoragePath())){
             signatureUrl = presignCallBack.getStoragePath().replace("oss:/","");
             String fileName = signatureUrl.substring(signatureUrl.lastIndexOf("/")+1,signatureUrl.length());
@@ -791,7 +780,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getReportInternalAuditSignatureCoordinates", method=RequestMethod.POST)
     public String getReportInternalAuditSignatureCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
         //根据contractId查询对应的报告信息
@@ -913,10 +901,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
         dao.updateReportInternalAuditSignature(projectReportSignature);
 
 
-
-        long t2 = System.currentTimeMillis();
-        System.out.println("报告签章回调运行耗时:" + (t2-t1) + " 毫秒");
-
         if(StringUtils.isNotBlank(signatureUrl)) {
             String fileName = signatureUrl.substring(signatureUrl.lastIndexOf("/")+1,signatureUrl.length());
             //将文件存储到对应的档案信息中的“咨询报告书正文”中
@@ -956,7 +940,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getSignatureYCCoordinates", method=RequestMethod.POST)
     public String getSignatureYCCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
         //根据contractId查询对应的报告信息
@@ -1078,10 +1061,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
         dao.updateReportSignature(projectReportSignature);
 
 
-
-        long t2 = System.currentTimeMillis();
-        System.out.println("报告签章回调运行耗时:" + (t2-t1) + " 毫秒");
-
         if(StringUtils.isNotBlank(signatureUrl)) {
             String fileName = signatureUrl.substring(signatureUrl.lastIndexOf("/")+1,signatureUrl.length());
             //将文件存储到对应的档案信息中的“咨询报告书正文”中
@@ -1124,7 +1103,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getJudgementCoordinates", method=RequestMethod.POST)
     public String getJudgementCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         String[] documentIds = presignCallBack.getDocumentId().split(",");
         //根据contractId查询对应的报告信息
         RuralProjectRecords records = projectRecordsService.getJudgementSignatureByDocumentId(documentIds[0]);
@@ -1202,10 +1180,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
         projectReportData.setStatus("5");
         projectReportDataDao.update(projectReportData);
 
-
-
-        long t2 = System.currentTimeMillis();
-        System.out.println("审定(内)签章回调运行耗时:" + (t2-t1) + " 毫秒");
         return null;
     }
 
@@ -1349,7 +1323,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getApprovalCZCoordinates", method=RequestMethod.POST)
     public String getApprovalCZCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
         ProjectReportData projectReportData = null;
@@ -1432,8 +1405,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
 
         projectApprovalSignature.setStatus(5);
         dao.updateApprovalSignature(projectApprovalSignature);
-        long t2 = System.currentTimeMillis();
-        System.out.println("审定单回调运行耗时:" + (t2-t1) + " 毫秒");
 
         //将文件存储到项目审定单列表中
         //签章完成则进行数据的保存
@@ -1477,7 +1448,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getSignatureCZCoordinates", method=RequestMethod.POST)
     public String getSignatureCZCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
         //根据contractId查询对应的报告信息
@@ -1598,11 +1568,6 @@ public class RuralProjectSignatureCallBackController extends BaseController {
         projectReportSignature.setStatus(5);
         dao.updateReportSignature(projectReportSignature);
 
-
-
-        long t2 = System.currentTimeMillis();
-        System.out.println("报告签章回调运行耗时:" + (t2-t1) + " 毫秒");
-
         if(StringUtils.isNotBlank(signatureUrl)) {
             String fileName = signatureUrl.substring(signatureUrl.lastIndexOf("/")+1,signatureUrl.length());
             //将文件存储到对应的档案信息中的“咨询报告书正文”中

+ 0 - 4
src/main/java/com/jeeplus/modules/serialnum/service/SerialNumTplService.java

@@ -77,7 +77,6 @@ public class SerialNumTplService extends CrudService<SerialNumTplDao, SerialNumT
 
 	@Transactional(readOnly = false,propagation = Propagation.REQUIRES_NEW)
 	public String genSerialNum(Office company, String bizCode) throws SerialGenException {
-        long ts0 = System.currentTimeMillis();
 		try {
             String branchOffice = UserUtils.getSelectOffice().getBranchOffice();
             if(StringUtils.isNotBlank(branchOffice)){
@@ -116,8 +115,6 @@ public class SerialNumTplService extends CrudService<SerialNumTplDao, SerialNumT
             Map<String, String> map = new HashMap<>();
 			String serialTpl = numTpl.getSerialTpl();
 			int i =dao.updateSerialNum(numTpl);
-            long t2 = System.currentTimeMillis();
-            logger.info("生成{}编号耗时:{}ms",bizCode,System.currentTimeMillis()-ts0);
             if (i!=1){
                 throw new Exception("生成编号失败,请稍后重试");
             }
@@ -142,7 +139,6 @@ public class SerialNumTplService extends CrudService<SerialNumTplDao, SerialNumT
 		} catch (Exception e) {
 			throw  new SerialGenException(e.getMessage());
 		}finally {
-		    logger.info("生成{}模板耗时:{}ms",bizCode,System.currentTimeMillis()-ts0);
         }
 	}
 

+ 0 - 1
src/main/java/com/jeeplus/modules/signature/dailyOfficeWork/controller/DailyOfficeWorkSignatureCallBackController.java

@@ -76,7 +76,6 @@ public class DailyOfficeWorkSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getDailyOfficeWorkCoordinates", method=RequestMethod.POST)
     public String getDailyOfficeWorkCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
 

+ 0 - 2
src/main/java/com/jeeplus/modules/signature/dailyOfficeWork/service/DailyOfficeWorkService.java

@@ -361,9 +361,7 @@ public class DailyOfficeWorkService extends CrudService<DailyOfficeWorkDao, Dail
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "签章描述:" + dailyOfficeWork.getSignatureName());//设置标题;

+ 0 - 2
src/main/java/com/jeeplus/modules/signature/projectReportSignatureWork/controller/ProjectReportSignatureCallBackController.java

@@ -59,7 +59,6 @@ public class ProjectReportSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getApprovalSignatureWorkCoordinates", method=RequestMethod.POST)
     public String getApprovalSignatureWorkCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
 
@@ -146,7 +145,6 @@ public class ProjectReportSignatureCallBackController extends BaseController {
      */
     @RequestMapping(value = "/getReportSignatureWorkCoordinates", method=RequestMethod.POST)
     public String getReportSignatureWorkCoordinates(PresignCallBack presignCallBack, HttpServletRequest request , HttpServletResponse response) {
-        long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
         String[] documentIds = presignCallBack.getDocumentId().split(",");
 

+ 0 - 4
src/main/java/com/jeeplus/modules/signature/projectReportSignatureWork/service/ProjectReportSignatureWorkService.java

@@ -814,9 +814,7 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "报告号:"+ report.getReportSignatureRelation().getReportDataNum()+",项目名称:"+report.getReportSignatureRelation().getProjectName()+"。报告签章");//设置标题;
@@ -958,9 +956,7 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "报告号:"+ approval.getReportSignatureRelation().getReportDataNum()+",项目名称:"+approval.getReportSignatureRelation().getProjectName()+"。审定单签章");//设置标题;

+ 0 - 2
src/main/java/com/jeeplus/modules/signatureManagement/businessSignature/service/BusinessSignatureService.java

@@ -440,9 +440,7 @@ public class BusinessSignatureService extends CrudService<BusinessSignatureDao,
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "业务用章申请描述:" + businessSignatureInfo.getName());//设置标题;

+ 0 - 6
src/main/java/com/jeeplus/modules/signatureManagement/electronicSignature/service/DistrictDirectorApplicationService.java

@@ -165,13 +165,11 @@ public class DistrictDirectorApplicationService extends CrudService<DistrictDire
                         "待审批",
                         ""  //通知角色
                 );
-        long s6=System.currentTimeMillis();
         List<User> users = new ArrayList<>();
         //List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
         //List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
         //地区申请管理员
         List<User> dqsqgly = UserUtils.getByRoleActivityEnname("dqsqgly",3,office.getId(),"5",directorApplication.getCreateBy());
-        long s7=System.currentTimeMillis();
         if (StringUtils.isNotBlank(workActivityMenu.getId())) {
             workProjectNotify.setNotifyRole("");
             workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -233,16 +231,13 @@ public class DistrictDirectorApplicationService extends CrudService<DistrictDire
         variables.put("type", processType);
         variables.put("busId", businessKey);
         variables.put("title", "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"待审批");//设置标题;
-        long s8=System.currentTimeMillis();
         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
         directorApplication.setProcessInstance(processInstance);
-        long s9=System.currentTimeMillis();
         if (StringUtils.isNotBlank(processInstanceId)) {
             workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
             workActivityProcessService.deleteProcessInstanceId(processInstanceId);
             workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
         }
-        long s10=System.currentTimeMillis();
         // 更新流程实例ID
         directorApplication.setProcessInstanceId(processInstance.getId());
         directorApplicationDao.updateProcessInstanceId(directorApplication);
@@ -251,7 +246,6 @@ public class DistrictDirectorApplicationService extends CrudService<DistrictDire
         workProjectNotify.setWapBeginDate(new Date());
         workProjectNotifyService.save(workProjectNotify);
         List<Activity> list = workActivityMenu.getActivities();
-        long s11=System.currentTimeMillis();
         if (list != null && list.size() != 0) {
             workActivityProcessService.saveList(list, processInstance.getId());
         } else {

+ 0 - 2
src/main/java/com/jeeplus/modules/signatureManagement/electronicSignature/service/ElectronicSignatureService.java

@@ -401,9 +401,7 @@ public class ElectronicSignatureService extends CrudService<ElectronicSignatureD
                 UserUtils.pushInfoToApp(titleStr,contentStr,extras,u.getId());
             }
 
-            long t1 = System.currentTimeMillis();
             UserUtils.pushIm(userIds,contentStr);
-            logger.info("推送消息耗时:{}ms",System.currentTimeMillis()-t1);
             variables.put("busId", businessKey);
             variables.put("type", processType);
             variables.put("title", "电子印章申请描述:" + electronicSignatureInfo.getName());//设置标题;

+ 0 - 6
src/main/java/com/jeeplus/modules/test/service/act/ActTestService.java

@@ -141,13 +141,11 @@ public class ActTestService extends CrudService<ActTestDao, ActTest> {
                         "待审批",
                         ""  //通知角色
                 );
-        long s6=System.currentTimeMillis();
         List<User> users = new ArrayList<>();
         //List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
         //List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
         //部门主任
         List<User> bmzr = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",actTest.getCreateBy());
-        long s7=System.currentTimeMillis();
         if (StringUtils.isNotBlank(workActivityMenu.getId())) {
             workProjectNotify.setNotifyRole("");
             workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -209,16 +207,13 @@ public class ActTestService extends CrudService<ActTestDao, ActTest> {
         variables.put("type", processType);
         variables.put("busId", businessKey);
         variables.put("title", "流程测试");//设置标题;
-        long s8=System.currentTimeMillis();
         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
         actTest.setProcessInstance(processInstance);
-        long s9=System.currentTimeMillis();
         if (StringUtils.isNotBlank(processInstanceId)) {
             workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
             workActivityProcessService.deleteProcessInstanceId(processInstanceId);
             workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
         }
-        long s10=System.currentTimeMillis();
         // 更新流程实例ID
         actTest.setProcessInstanceId(processInstance.getId());
         actTestDao.updateProcessInstanceId(actTest);
@@ -227,7 +222,6 @@ public class ActTestService extends CrudService<ActTestDao, ActTest> {
         workProjectNotify.setWapBeginDate(new Date());
         workProjectNotifyService.save(workProjectNotify);
         List<Activity> list = workActivityMenu.getActivities();
-        long s11=System.currentTimeMillis();
         if (list != null && list.size() != 0) {
             workActivityProcessService.saveList(list, processInstance.getId());
         } else {

+ 0 - 6
src/main/java/com/jeeplus/modules/workadministrativeatamp/service/WorkAdministrativeAtampService.java

@@ -122,11 +122,9 @@ public class WorkAdministrativeAtampService extends CrudService<WorkAdministrati
 	
 	@Transactional(readOnly = false)
 	public void save(WorkAdministrativeAtamp workAdministrativeAtamp) {
-        long t1 = System.currentTimeMillis();
         preSave(workAdministrativeAtamp);
 		super.save(workAdministrativeAtamp);
 		this.saveAttachments(workAdministrativeAtamp);
-		logger.info("保存行政签章耗时:{}ms",System.currentTimeMillis()-t1);
 	}
 
     private void preSave(WorkAdministrativeAtamp workAdministrativeAtamp) {
@@ -194,7 +192,6 @@ public class WorkAdministrativeAtampService extends CrudService<WorkAdministrati
      * 启动审批流程
      */
     private String startAudit(WorkAdministrativeAtamp workAdministrativeAtamp, String processInstanceId){
-        long t1 = System.currentTimeMillis();
         Map<String, Object> variables = new HashMap<String, Object>();
         identityService.setAuthenticatedUserId(workAdministrativeAtamp.getCurrentUser().getId());
         String contentStr = "申请编号:"+workAdministrativeAtamp.getNum()+",文档类型:"+ DictUtils.getDictLabel(workAdministrativeAtamp.getDocType(),"sign_doc_type","")+",印章类型:"+DictUtils.getMainDictLabel(workAdministrativeAtamp.getSealType(),"seal_type","")+",申请日期:"+ DateUtils.formatDate(workAdministrativeAtamp.getCreateDate());
@@ -278,9 +275,7 @@ public class WorkAdministrativeAtampService extends CrudService<WorkAdministrati
             extras.put("id",workProjectNotify.getId());
             UserUtils.pushInfoToApp(titleStr, contentStr,extras,u.getId());
         }
-        long t2 = System.currentTimeMillis();
         UserUtils.pushIm(userIds,contentStr);
-        logger.info("行政签章推送消息耗时:{}ms",System.currentTimeMillis()-t2);
 
         variables.put("busId", businessKey);
         variables.put("type", processType);
@@ -316,7 +311,6 @@ public class WorkAdministrativeAtampService extends CrudService<WorkAdministrati
         workAdministrativeAtamp.setProcessInstanceId(processInstance.getId());
         workAdministrativeAtamp.setState(ProjectStatusEnum.IN_APRL.getValue());
         dao.updateProcessIdAndStatus(workAdministrativeAtamp);
-        logger.info("启动行政签章审批流程耗时:{}ms",System.currentTimeMillis()-t1);
         return "";
     }
 

+ 0 - 40
src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoAllService.java

@@ -211,12 +211,9 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
 
         }
 
-        long t1 = System.currentTimeMillis();
         //根据项目类型获取对应的客户id个数
         int count = workClientInfoDao.queryCount(workClientInfo);
         page.setCount(count);
-        long t2 = System.currentTimeMillis();
-        logger.info("查询客户总数耗时:{}",t2-t1);
         page.setCountFlag(false);
         workClientInfo.setPage(page);
         List<WorkClientInfo> list = findList(workClientInfo);
@@ -224,8 +221,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
         for (WorkClientInfo clientInfo: list) {
             clientInfo.setJobTypeStr(workClientInfoDao.getJobTypeStr(clientInfo.getId()));
         }
-        long t3 = System.currentTimeMillis();
-        logger.info("查询客户列表耗时:{}",t3-t2);
         if(list!=null && list.size()>0){
             for (int i = 0; i < list.size(); i++) {
                 WorkClientInfo entity = list.get(i);
@@ -245,9 +240,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
                 entity.setWorkClientBankList(bankList);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("查询客户详情耗时:{}",t4-t3);
-        logger.info("查询客户总耗时:{}",t4-t1);
         page.setList(list);
         return page;
     }
@@ -260,12 +252,9 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
     public Page<WorkClientInfo> findAllPage(Page<WorkClientInfo> page, WorkClientInfo workClientInfo) {
         workClientInfo.setOfficeId(UserUtils.getSelectOffice().getId());
 //        workClientInfo.getSqlMap().put("dsf", dataScopeFilter(workClientInfo.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_CLIENT_INFO.getValue()));
-        long t1 = System.currentTimeMillis();
         //根据项目类型获取对应的客户id个数
         int count = workClientInfoDao.queryAllCount(workClientInfo);
         page.setCount(count);
-        long t2 = System.currentTimeMillis();
-        logger.info("查询客户总数耗时:{}",t2-t1);
         page.setCountFlag(false);
         workClientInfo.setPage(page);
         List<WorkClientInfo> list = workClientInfoDao.findAll(workClientInfo);
@@ -273,8 +262,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
         for (WorkClientInfo clientInfo: list) {
             clientInfo.setJobTypeStr(workClientInfoDao.getJobTypeStr(clientInfo.getId()));
         }
-        long t3 = System.currentTimeMillis();
-        logger.info("查询客户列表耗时:{}",t3-t2);
         if(list!=null && list.size()>0){
             for (int i = 0; i < list.size(); i++) {
                 WorkClientInfo entity = list.get(i);
@@ -294,9 +281,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
                 entity.setWorkClientBankList(bankList);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("查询客户详情耗时:{}",t4-t3);
-        logger.info("查询客户总耗时:{}",t4-t1);
         page.setList(list);
         return page;
     }
@@ -310,12 +294,9 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
      * @return
      */
     public Page<WorkClientInfo> findPageByContract(Page<WorkClientInfo> page, WorkClientInfo workClientInfo) {
-        long t1 = System.currentTimeMillis();
         //根据项目类型获取对应的客户id个数
         int count = workClientInfoDao.queryCount(workClientInfo);
         page.setCount(count);
-        long t2 = System.currentTimeMillis();
-        logger.info("查询客户总数耗时:{}",t2-t1);
         page.setCountFlag(false);
         workClientInfo.setPage(page);
         List<WorkClientInfo> list = findList(workClientInfo);
@@ -323,8 +304,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
         for (WorkClientInfo clientInfo: list) {
             clientInfo.setJobTypeStr(workClientInfoDao.getJobTypeStr(clientInfo.getId()));
         }
-        long t3 = System.currentTimeMillis();
-        logger.info("查询客户列表耗时:{}",t3-t2);
         if(list!=null && list.size()>0){
             for (int i = 0; i < list.size(); i++) {
                 WorkClientInfo entity = list.get(i);
@@ -344,9 +323,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
                 entity.setWorkClientBankList(bankList);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("查询客户详情耗时:{}",t4-t3);
-        logger.info("查询客户总耗时:{}",t4-t1);
         page.setList(list);
         return page;
     }
@@ -405,14 +381,11 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
             flag = true;
         }
 	    User user = UserUtils.getUser();
-        long t1 = System.currentTimeMillis();
         Area area = workClientInfo.getArea();
         area = areaDao.get(area.getId());
         workClientInfo.setArea(area);
         workClientInfo.setNumber(serialNumTplService.genSerialNum(user.getCompany(),"50"));
 		super.save(workClientInfo);
-        long t2 = System.currentTimeMillis();
-        logger.info("保存客户主表耗时:{}",t2-t1);
         //若为修改内容则删除对应的客户工作类型信息
         if(flag){
             if(StringUtils.isNotBlank(workClientInfo.getJobTypeStr())){
@@ -451,8 +424,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
 				workClientLinkmanDao.delete(workClientLinkman);
 			}
 		}
-        long t3 = System.currentTimeMillis();
-        logger.info("保存客户联系人耗时:{}",t3-t2);
 		//开户信息
         for (WorkClientBank workClientBank : workClientInfo.getWorkClientBankList()){
             if (workClientBank.getId() == null){
@@ -471,8 +442,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
                 workClientBankDao.delete(workClientBank);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("保存客户银行信息耗时:{}",t4-t3);
         //附件信息
         for (WorkClientAttachment workClientAttachment : workClientInfo.getWorkAttachments()){
             if (workClientAttachment.getId() == null){
@@ -491,7 +460,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
                 workClientAttachmentDao.delete(workClientAttachment);
             }
         }
-        logger.info("保存客户耗时:{}",System.currentTimeMillis()-t1);
 
 	}
 
@@ -797,18 +765,13 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
     public Page<WorkClientInfo> findPageUnit(Page<WorkClientInfo> page, WorkClientInfo workClientInfo) {
 //        workClientInfo.setOfficeId(UserUtils.getSelectOffice().getId());
 //        workClientInfo.getSqlMap().put("dsf", dataScopeFilter(workClientInfo.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_CLIENT_INFO.getValue()));
-        long t1 = System.currentTimeMillis();
         //根据项目类型获取对应的客户id个数
         int count =workClientInfoDao.getCount(workClientInfo);
       //  int count = workClientInfoDao.queryCount(workClientInfo);
         page.setCount(count);
-        long t2 = System.currentTimeMillis();
-        logger.info("查询客户总数耗时:{}",t2-t1);
         page.setCountFlag(false);
         workClientInfo.setPage(page);
         List<WorkClientInfo> list = findPageUnit(workClientInfo);
-        long t3 = System.currentTimeMillis();
-        logger.info("查询客户列表耗时:{}",t3-t2);
         if(list!=null && list.size()>0){
             for (int i = 0; i < list.size(); i++) {
                 WorkClientInfo entity = list.get(i);
@@ -828,9 +791,6 @@ public class WorkClientInfoAllService extends CrudService<WorkClientInfoDao, Wor
                 entity.setWorkClientBankList(bankList);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("查询客户详情耗时:{}",t4-t3);
-        logger.info("查询客户总耗时:{}",t4-t1);
         page.setList(list);
         return page;
     }

+ 0 - 40
src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoService.java

@@ -215,12 +215,9 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
             workClientInfo.setOfficeId(UserUtils.getSelectOffice().getId());
             workClientInfo.getSqlMap().put("dsf", dataScopeFilter(workClientInfo.getCurrentUser(), "o", "u", "s", MenuStatusEnum.WORK_CLIENT_INFO.getValue()));
         }
-        long t1 = System.currentTimeMillis();
         //根据项目类型获取对应的客户id个数
         int count = workClientInfoDao.queryCount(workClientInfo);
         page.setCount(count);
-        long t2 = System.currentTimeMillis();
-        logger.info("查询客户总数耗时:{}",t2-t1);
         page.setCountFlag(false);
         workClientInfo.setPage(page);
         List<WorkClientInfo> list = findList(workClientInfo);
@@ -228,8 +225,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
         for (WorkClientInfo clientInfo: list) {
             clientInfo.setJobTypeStr(workClientInfoDao.getJobTypeStr(clientInfo.getId()));
         }
-        long t3 = System.currentTimeMillis();
-        logger.info("查询客户列表耗时:{}",t3-t2);
         if(list!=null && list.size()>0){
             for (int i = 0; i < list.size(); i++) {
                 WorkClientInfo entity = list.get(i);
@@ -249,9 +244,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
                 entity.setWorkClientBankList(bankList);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("查询客户详情耗时:{}",t4-t3);
-        logger.info("查询客户总耗时:{}",t4-t1);
         page.setList(list);
         return page;
     }
@@ -264,12 +256,9 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
     public Page<WorkClientInfo> findAllPage(Page<WorkClientInfo> page, WorkClientInfo workClientInfo) {
         workClientInfo.setOfficeId(UserUtils.getSelectOffice().getId());
 //        workClientInfo.getSqlMap().put("dsf", dataScopeFilter(workClientInfo.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_CLIENT_INFO.getValue()));
-        long t1 = System.currentTimeMillis();
         //根据项目类型获取对应的客户id个数
         int count = workClientInfoDao.queryAllCount(workClientInfo);
         page.setCount(count);
-        long t2 = System.currentTimeMillis();
-        logger.info("查询客户总数耗时:{}",t2-t1);
         page.setCountFlag(false);
         workClientInfo.setPage(page);
         List<WorkClientInfo> list = workClientInfoDao.findAll(workClientInfo);
@@ -277,8 +266,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
         for (WorkClientInfo clientInfo: list) {
             clientInfo.setJobTypeStr(workClientInfoDao.getJobTypeStr(clientInfo.getId()));
         }
-        long t3 = System.currentTimeMillis();
-        logger.info("查询客户列表耗时:{}",t3-t2);
         if(list!=null && list.size()>0){
             for (int i = 0; i < list.size(); i++) {
                 WorkClientInfo entity = list.get(i);
@@ -298,9 +285,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
                 entity.setWorkClientBankList(bankList);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("查询客户详情耗时:{}",t4-t3);
-        logger.info("查询客户总耗时:{}",t4-t1);
         page.setList(list);
         return page;
     }
@@ -314,12 +298,9 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
      * @return
      */
     public Page<WorkClientInfo> findPageByContract(Page<WorkClientInfo> page, WorkClientInfo workClientInfo) {
-        long t1 = System.currentTimeMillis();
         //根据项目类型获取对应的客户id个数
         int count = workClientInfoDao.queryCount(workClientInfo);
         page.setCount(count);
-        long t2 = System.currentTimeMillis();
-        logger.info("查询客户总数耗时:{}",t2-t1);
         page.setCountFlag(false);
         workClientInfo.setPage(page);
         List<WorkClientInfo> list = findList(workClientInfo);
@@ -327,8 +308,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
         for (WorkClientInfo clientInfo: list) {
             clientInfo.setJobTypeStr(workClientInfoDao.getJobTypeStr(clientInfo.getId()));
         }
-        long t3 = System.currentTimeMillis();
-        logger.info("查询客户列表耗时:{}",t3-t2);
         if(list!=null && list.size()>0){
             for (int i = 0; i < list.size(); i++) {
                 WorkClientInfo entity = list.get(i);
@@ -348,9 +327,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
                 entity.setWorkClientBankList(bankList);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("查询客户详情耗时:{}",t4-t3);
-        logger.info("查询客户总耗时:{}",t4-t1);
         page.setList(list);
         return page;
     }
@@ -409,14 +385,11 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
             flag = true;
         }
 	    User user = UserUtils.getUser();
-        long t1 = System.currentTimeMillis();
         Area area = workClientInfo.getArea();
         area = areaDao.get(area.getId());
         workClientInfo.setArea(area);
         workClientInfo.setNumber(serialNumTplService.genSerialNum(user.getCompany(),"50"));
 		super.save(workClientInfo);
-        long t2 = System.currentTimeMillis();
-        logger.info("保存客户主表耗时:{}",t2-t1);
         //若为修改内容则删除对应的客户工作类型信息
         if(flag){
             if(StringUtils.isNotBlank(workClientInfo.getJobTypeStr())){
@@ -459,8 +432,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
 				workClientLinkmanDao.delete(workClientLinkman);
 			}
 		}
-        long t3 = System.currentTimeMillis();
-        logger.info("保存客户联系人耗时:{}",t3-t2);
 		//开户信息
         for (WorkClientBank workClientBank : workClientInfo.getWorkClientBankList()){
             if (workClientBank.getId() == null){
@@ -479,8 +450,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
                 workClientBankDao.delete(workClientBank);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("保存客户银行信息耗时:{}",t4-t3);
         //附件信息
         for (WorkClientAttachment workClientAttachment : workClientInfo.getWorkAttachments()){
             if (workClientAttachment.getId() == null){
@@ -499,7 +468,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
                 workClientAttachmentDao.delete(workClientAttachment);
             }
         }
-        logger.info("保存客户耗时:{}",System.currentTimeMillis()-t1);
 
 	}
 
@@ -805,18 +773,13 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
     public Page<WorkClientInfo> findPageUnit(Page<WorkClientInfo> page, WorkClientInfo workClientInfo) {
 //        workClientInfo.setOfficeId(UserUtils.getSelectOffice().getId());
 //        workClientInfo.getSqlMap().put("dsf", dataScopeFilter(workClientInfo.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_CLIENT_INFO.getValue()));
-        long t1 = System.currentTimeMillis();
         //根据项目类型获取对应的客户id个数
         int count =workClientInfoDao.getCount(workClientInfo);
       //  int count = workClientInfoDao.queryCount(workClientInfo);
         page.setCount(count);
-        long t2 = System.currentTimeMillis();
-        logger.info("查询客户总数耗时:{}",t2-t1);
         page.setCountFlag(false);
         workClientInfo.setPage(page);
         List<WorkClientInfo> list = findPageUnit(workClientInfo);
-        long t3 = System.currentTimeMillis();
-        logger.info("查询客户列表耗时:{}",t3-t2);
         if(list!=null && list.size()>0){
             for (int i = 0; i < list.size(); i++) {
                 WorkClientInfo entity = list.get(i);
@@ -836,9 +799,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
                 entity.setWorkClientBankList(bankList);
             }
         }
-        long t4 = System.currentTimeMillis();
-        logger.info("查询客户详情耗时:{}",t4-t3);
-        logger.info("查询客户总耗时:{}",t4-t1);
         page.setList(list);
         return page;
     }

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

@@ -369,24 +369,19 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 	 */
 	@Transactional(readOnly = false)
 	public String save(WorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), WorkInvoice.SERIAL_BIZCODE));
 			}
 		}
-		long s2=System.currentTimeMillis();
 		super.save(workInvoice);
-		long s3=System.currentTimeMillis();
 		String str = "";
 		//所属部门
 		Office office = officeService.get(workInvoice.getOffice().getId());
 		String userName = UserUtils.get(workInvoice.getCreateBy().getId()).getName();
 		str = "发票申请编号:"+workInvoice.getNumber()+",实际开票单位:"+workInvoice.getClient().getName()+",创建人:"+userName+",所属部门:"+office.getName();
 		String title = "实际开票单位:"+workInvoice.getClient().getName();
-		long s4=System.currentTimeMillis();
 		updateWorkInvoiceInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 		// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 		identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 		// 启动流程
@@ -407,14 +402,12 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 						"待审批",
 						""
 				);
-		long s6=System.currentTimeMillis();
 		List<User> users = new ArrayList<>();
 		List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
 		List<User> scbzrs = UserUtils.getByRoleActivityEnname("scfgld",1,office.getId(),"5",workInvoice.getCreateBy());
 		//List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",1,office.getId(),"5",workInvoice.getCreateBy());
 		//财务主任
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwzg",1,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 		if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 			workProjectNotify.setNotifyRole("");
 			workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -484,16 +477,13 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 		variables.put("type", processType);
 		variables.put("busId", businessKey);
 		variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 		workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 		if (StringUtils.isNotBlank(processInstanceId)) {
 			workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 			workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 			workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 		}
-		long s10=System.currentTimeMillis();
 		// 更新流程实例ID
 		workInvoice.setProcessInstanceId(processInstance.getId());
 		workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -501,7 +491,6 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 		workProjectNotify.setProcessInstanceId(processInstance.getId());
 		workProjectNotifyService.save(workProjectNotify);
 		List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 		if (list != null && list.size() != 0) {
 			workActivityProcessService.saveList(list, processInstance.getId());
 		} else {
@@ -521,10 +510,7 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 			workActivityProcessService.insertAuditsByType(scbzrs,processInstance.getId(),2,0);
 			workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),3,0);
 		}
-		long s12=System.currentTimeMillis();
-		logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-				+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-				+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
+
 		logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 				ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";
@@ -608,7 +594,6 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 	 */
 	@Transactional(readOnly = false)
 	public String saveBranch(WorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), WorkInvoice.SERIAL_BIZCODE));
@@ -617,11 +602,9 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 		String officeId = UserUtils.getUser().getOffice().getId();
 		Office office = officeService.get(officeId);
 		workInvoice.setOffice(office);
-		long s2=System.currentTimeMillis();
 		super.save(workInvoice);
 		//保存附件
 		this.saveAttachments(workInvoice);
-		long s3=System.currentTimeMillis();
 		String str = "";
 		//所属部门
 
@@ -633,12 +616,10 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 		String title = "项目【"+ projectNameStr +"】发票申请待审批";
 		str = "发票金额:" + workInvoice.getMoney() + "(元)。项目【"+ projectNameStr +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
 
-		long s4=System.currentTimeMillis();
 		//开票明细处理
 		updateWorkInvoiceInfo(workInvoice);
 		//开票与项目关系处理
 		updateWorkInvoiceProjectRelationInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 		// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 		identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 		// 启动流程
@@ -659,13 +640,11 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 						"待审批",
 						""
 				);
-		long s6=System.currentTimeMillis();
 		List<User> users = new ArrayList<>();
 		//List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
 		//List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
 		//财务员工
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwygevod",3,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 		if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 			workProjectNotify.setNotifyRole("");
 			workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -729,16 +708,13 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 		variables.put("type", processType);
 		variables.put("busId", businessKey);
 		variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 		workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 		if (StringUtils.isNotBlank(processInstanceId)) {
 			workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 			workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 			workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 		}
-		long s10=System.currentTimeMillis();
 		// 更新流程实例ID
 		workInvoice.setProcessInstanceId(processInstance.getId());
 		workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -747,7 +723,6 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 		workProjectNotify.setWapBeginDate(new Date());
 		workProjectNotifyService.save(workProjectNotify);
 		List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 		if (list != null && list.size() != 0) {
 			workActivityProcessService.saveList(list, processInstance.getId());
 		} else {
@@ -763,10 +738,6 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
 			workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),1,1);
 			//workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
 		}
-		long s12=System.currentTimeMillis();
-		logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-				+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-				+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
 		logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 				ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";

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

@@ -587,25 +587,20 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	 */
 	@Transactional(readOnly = false)
 	public String save(WorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 			if (StringUtils.isBlank(workInvoice.getNumber())) {
 				synchronized (SYN_BYTE) {
 					workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), WorkInvoice.SERIAL_BIZCODE));
 				}
 			}
-		long s2=System.currentTimeMillis();
 			super.save(workInvoice);
-		long s3=System.currentTimeMillis();
 			String str = "";
 			//所属部门
 			Office office = officeService.get(workInvoice.getOffice().getId());
 			String userName = UserUtils.get(workInvoice.getCreateBy().getId()).getName();
 			str = "发票申请编号:"+workInvoice.getNumber()+",实际开票单位:"+workInvoice.getClient().getName()+",创建人:"+userName+",所属部门:"+office.getName();
 			String title = "实际开票单位:"+workInvoice.getClient().getName();
-		long s4=System.currentTimeMillis();
 		//处理发票明细
 			updateWorkInvoiceInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 			// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 			identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 			// 启动流程
@@ -626,14 +621,12 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 							"待审批",
 							""
 					);
-		long s6=System.currentTimeMillis();
 			List<User> users = new ArrayList<>();
 			List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
 			List<User> scbzrs = UserUtils.getByRoleActivityEnname("scfgld",1,office.getId(),"5",workInvoice.getCreateBy());
 			//List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",1,office.getId(),"5",workInvoice.getCreateBy());
 		//财务主任
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwzg",1,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 				workProjectNotify.setNotifyRole("");
 				workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -703,16 +696,13 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			variables.put("type", processType);
 			variables.put("busId", businessKey);
 			variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 			ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 			workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(processInstanceId)) {
 				workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 				workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 				workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 			}
-		long s10=System.currentTimeMillis();
 			// 更新流程实例ID
 			workInvoice.setProcessInstanceId(processInstance.getId());
 			workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -720,7 +710,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		workProjectNotify.setProcessInstanceId(processInstance.getId());
 		workProjectNotifyService.save(workProjectNotify);
 			List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 			if (list != null && list.size() != 0) {
 				workActivityProcessService.saveList(list, processInstance.getId());
 			} else {
@@ -740,10 +729,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 				workActivityProcessService.insertAuditsByType(scbzrs,processInstance.getId(),2,0);
 				workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),3,0);
 			}
-		long s12=System.currentTimeMillis();
-			logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-					+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-					+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
 			logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 					ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";
@@ -822,7 +807,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	 */
 	@Transactional(readOnly = false)
 	public String saveBranch(WorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), WorkInvoice.SERIAL_BIZCODE));
@@ -831,11 +815,9 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		String officeId = UserUtils.getUser().getOffice().getId();
 		Office office = officeService.get(officeId);
 		workInvoice.setOffice(office);
-		long s2=System.currentTimeMillis();
 			super.save(workInvoice);
 		//保存附件
 		this.saveAttachments(workInvoice);
-		long s3=System.currentTimeMillis();
 		String str = "";
 		//所属部门
 
@@ -850,12 +832,10 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		String title = "项目【"+ projectNameStr +"】发票申请待审批";
 		str = "发票金额:" + workInvoice.getMoney() + "(元)。项目【"+ projectNameStr +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
 
-		long s4=System.currentTimeMillis();
 		//开票明细处理
 		updateWorkInvoiceInfo(workInvoice);
 		//开票与项目关系处理
 		updateWorkInvoiceProjectRelationInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 			// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 			identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 			// 启动流程
@@ -876,13 +856,11 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 							"待审批",
 							""  //通知角色
 					);
-		long s6=System.currentTimeMillis();
 			List<User> users = new ArrayList<>();
 			//List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
 			//List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
 		//财务员工
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwygevod",3,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 				workProjectNotify.setNotifyRole("");
 				workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -946,16 +924,13 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			variables.put("type", processType);
 			variables.put("busId", businessKey);
 			variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 			ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 			workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(processInstanceId)) {
 				workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 				workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 				workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 			}
-		long s10=System.currentTimeMillis();
 			// 更新流程实例ID
 			workInvoice.setProcessInstanceId(processInstance.getId());
 			workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -964,7 +939,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		workProjectNotify.setWapBeginDate(new Date());
 		workProjectNotifyService.save(workProjectNotify);
 			List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 			if (list != null && list.size() != 0) {
 				workActivityProcessService.saveList(list, processInstance.getId());
 			} else {
@@ -980,10 +954,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 				workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),1,1);
 				//workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
 			}
-		long s12=System.currentTimeMillis();
-		logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-				+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-				+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
 			logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 					ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";
@@ -995,7 +965,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	 */
 	@Transactional(readOnly = false)
 	public String saveNotProjectBranch(WorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), WorkInvoice.SERIAL_BIZCODE));
@@ -1004,11 +973,9 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		String officeId = UserUtils.getUser().getOffice().getId();
 		Office office = officeService.get(officeId);
 		workInvoice.setOffice(office);
-		long s2=System.currentTimeMillis();
 			super.save(workInvoice);
 		//保存附件
 		this.saveAttachments(workInvoice);
-		long s3=System.currentTimeMillis();
 		String str = "";
 		//所属部门
 
@@ -1024,12 +991,10 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		String title = "项目【"+ projectNameStr +"】发票申请待审批";
 		str = "发票金额:" + workInvoice.getMoney() + "(元)。项目【"+ projectNameStr +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
 
-		long s4=System.currentTimeMillis();
 		//开票明细处理
 		updateWorkInvoiceInfo(workInvoice);
 		//开票与项目关系处理
 		updateWorkInvoiceProjectRelationInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 			// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 			identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 			// 启动流程
@@ -1050,7 +1015,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 							"待审批",
 							""  //通知角色
 					);
-		long s6=System.currentTimeMillis();
 			List<User> users = new ArrayList<>();
 		//获取部门主任
 			List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
@@ -1058,7 +1022,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			//List<User> zjls = UserUtils.getByRoleActivityEnname("zjl",3,office.getId(),"5",workInvoice.getCreateBy());
 		//财务员工
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwygevod",3,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 				workProjectNotify.setNotifyRole("");
 				workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -1122,16 +1085,13 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			variables.put("type", processType);
 			variables.put("busId", businessKey);
 			variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 			ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 			workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 			if (StringUtils.isNotBlank(processInstanceId)) {
 				workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 				workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 				workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 			}
-		long s10=System.currentTimeMillis();
 			// 更新流程实例ID
 			workInvoice.setProcessInstanceId(processInstance.getId());
 			workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -1140,7 +1100,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		workProjectNotify.setWapBeginDate(new Date());
 		workProjectNotifyService.save(workProjectNotify);
 			List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 			if (list != null && list.size() != 0) {
 				workActivityProcessService.saveList(list, processInstance.getId());
 			} else {
@@ -1156,10 +1115,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 				workActivityProcessService.insertAuditsByType(bmzrs,processInstance.getId(),1,1);
 				workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
 			}
-		long s12=System.currentTimeMillis();
-		logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-				+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-				+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
 			logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 					ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";
@@ -1173,7 +1128,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	 */
 	@Transactional(readOnly = false)
 	public String saveBranchExamine(WorkInvoice workInvoice,Map<String, Object> variables,String processInstanceId) {
-		long s1=System.currentTimeMillis();
 		if (StringUtils.isBlank(workInvoice.getNumber())) {
 			synchronized (SYN_BYTE) {
 				workInvoice.setNumber(serialNumTplService.genSerialNum(UserUtils.getSelectCompany(), WorkInvoice.SERIAL_BIZCODE));
@@ -1182,11 +1136,9 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		String officeId = UserUtils.getUser().getOffice().getId();
 		Office office = officeService.get(officeId);
 		workInvoice.setOffice(office);
-		long s2=System.currentTimeMillis();
 		super.save(workInvoice);
 		//保存附件
 		this.saveAttachments(workInvoice);
-		long s3=System.currentTimeMillis();
 		String str = "";
 		//所属部门
 
@@ -1202,12 +1154,10 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		String title = "项目【"+ projectNameStr +"】发票申请待审批";
 		str = "项目【"+ projectNameStr +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
 
-		long s4=System.currentTimeMillis();
 		//开票明细处理
 		updateWorkInvoiceInfo(workInvoice);
 		//开票与项目关系处理
 		updateWorkInvoiceProjectRelationInfo(workInvoice);
-		long s5=System.currentTimeMillis();
 		// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
 		identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
 		// 启动流程
@@ -1228,13 +1178,11 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 						"待审批",
 						""
 				);
-		long s6=System.currentTimeMillis();
 		List<User> users = new ArrayList<>();
 		List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
 		//List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
 		//财务员工
 		List<User> fpglys = UserUtils.getByRoleActivityEnname("cwygevod",3,office.getId(),"5",workInvoice.getCreateBy());
-		long s7=System.currentTimeMillis();
 		if (StringUtils.isNotBlank(workActivityMenu.getId())) {
 			workProjectNotify.setNotifyRole("");
 			workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
@@ -1298,16 +1246,13 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		variables.put("type", processType);
 		variables.put("busId", businessKey);
 		variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
-		long s8=System.currentTimeMillis();
 		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
 		workInvoice.setProcessInstance(processInstance);
-		long s9=System.currentTimeMillis();
 		if (StringUtils.isNotBlank(processInstanceId)) {
 			workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
 			workActivityProcessService.deleteProcessInstanceId(processInstanceId);
 			workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
 		}
-		long s10=System.currentTimeMillis();
 		// 更新流程实例ID
 		workInvoice.setProcessInstanceId(processInstance.getId());
 		workInvoiceDao.updateProcessInstanceId(workInvoice);
@@ -1316,7 +1261,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		workProjectNotify.setWapBeginDate(new Date());
 		workProjectNotifyService.save(workProjectNotify);
 		List<Activity> list = workActivityMenu.getActivities();
-		long s11=System.currentTimeMillis();
 		if (list != null && list.size() != 0) {
 			workActivityProcessService.saveList(list, processInstance.getId());
 		} else {
@@ -1331,10 +1275,6 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 			workActivityProcessService.insertAuditsByType(bmzrs,processInstance.getId(),1,1);
 			workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
 		}
-		long s12=System.currentTimeMillis();
-		logger.info("发票送审-------生成发票编号:"+(s2-s1)+"  保存发票信息:"+(s3-s2)+"  保存发票明细数据:"+(s5-s4)
-				+"  查询角色人员:"+(s7-s6)+"  流程启动:"+(s9-s8)+"  workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
-				+"  查询角色人员:"+(s12-s11)+"  总时间:"+(s12-s1));
 		logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
 				ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
 		return "";

+ 38 - 14
src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageAddForm.jsp

@@ -31,20 +31,44 @@
 	</style>
 	<script type="text/javascript">
         var validateForm;
-        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
-            //debugger
-            if(validateForm.form()){
-				if($("#projectMaterialStorageList tr").length==0){
-					top.layer.alert('请至少填写一条材料信息!', {icon: 0});
-					return;
+		function doSubmit(obj) {
+			// 返回Promise,让父页面的await可以等待后端响应
+			return new Promise((resolve, reject) => {
+				// 表单验证
+				if (validateForm.form()) {
+					// 检查是否至少有一条材料信息
+					if ($("#projectMaterialStorageList tr").length === 0) {
+						top.layer.alert('请至少填写一条材料信息!', { icon: 0 });
+						reject(new Error('请至少填写一条材料信息')); // 通知父页面验证失败
+						return;
+					}
+
+					// 异步提交表单(使用AJAX代替直接submit)
+					$.ajax({
+						url: $("#inputForm").attr("action"), // 表单提交的后端URL
+						type: $("#inputForm").attr("method") || "post", // 提交方式(默认post)
+						data: $("#inputForm").serialize(), // 序列化表单数据
+						dataType: "json", // 预期后端返回JSON格式(即后端Map转换的JSON)
+						success: function(response) {
+							// 后端处理完成后,将结果传递给父页面
+							resolve(response);
+						},
+						error: function(xhr, status, error) {
+							// 处理请求失败(如网络错误、后端500等)
+							const errorMsg = xhr.responseText || "提交失败,请重试";
+							parent.layer.msg(errorMsg, { icon: 5 });
+							reject(new Error(errorMsg)); // 通知父页面发生错误
+						}
+					});
+
+				} else {
+					// 表单验证失败
+					const errorMsg = "信息未填写完整!";
+					parent.layer.msg(errorMsg, { icon: 5 });
+					reject(new Error(errorMsg)); // 通知父页面验证失败
 				}
-				$("#inputForm").submit();
-                return true;
-            }else {
-				parent.layer.msg("信息未填写完整!", {icon: 5});
-			}
-            return false;
-        }
+			});
+		}
 
         $(document).ready(function() {
 
@@ -317,7 +341,7 @@
                             workInvoiceProjectRelationListRowIdx = ${fn:length(workInvoice.workInvoiceProjectRelationList)};
 						}*/
 						$(document).ready(function() {
-							<%--var data = ${fns:toJson(projectMaterialStorage.projectMaterialStorageList)};--%>
+							var data = ${fns:toJson(projectMaterialStorage.projectMaterialStorageList)};
 							for (var i=0; i<data.length; i++){
 								addRow1('#projectMaterialStorageList', projectMaterialStorageListRowIdx, projectMaterialStorageListTpl, data[i])
 								projectMaterialStorageListRowIdx = projectMaterialStorageListRowIdx + 1;

+ 191 - 1
src/main/webapp/webpage/modules/projectMaterialStorage/projectMaterialStorageList.jsp

@@ -13,8 +13,12 @@
 	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
 	<script type="text/javascript">
         $(document).ready(function() {
-			layui.use(['dropdown', 'util', 'layer'], function () {
+			layui.use(['dropdown', 'util', 'layer', 'jquery'], function () {
 				var form = layui.form;
+				var $ = layui.jquery;
+				var layer = layui.layer;
+				// 确保顶层窗口可访问
+				top.layui = layui;
 				$.ajax({
 					type : "POST",
 					url : "${ctx}/ruralProject/ruralProjectRecords/engineeringTreeMenu",
@@ -295,6 +299,192 @@
 			});
 
 		}
+		//打开对话框(添加修改)
+		function openDialog(title, url, width, height, target) {
+			if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {
+				width = 'auto';
+				height = 'auto';
+			}
+
+			top.layer.open({
+				type: 2,
+				area: [width, height],
+				title: title,
+				maxmin: true,
+				content: url,
+				skin: 'two-btns',
+				btn: ['提交', '关闭'],
+				yes: async function(index, layero) {
+					var body = top.layer.getChildFrame('body', index);
+					var iframeWin = layero.find('iframe')[0].contentWindow;
+					var inputForm = body.find('#inputForm');
+					var top_iframe;
+
+					if (target) {
+						top_iframe = target;
+					} else {
+						top_iframe = top.getActiveTab().attr("name");
+					}
+					inputForm.attr("target", top_iframe);
+
+					try {
+						// 关键:等待子页面doSubmit(已改为异步等待后端响应)
+						const result = await iframeWin.doSubmit();
+						// 此时一定是后端处理完成并返回数据后,才执行以下代码
+						console.log("后端返回数据:", result);
+
+						if (result.success) {
+							//原数据总数据量
+							const metadataCount = result.metadataCount
+							//成功数据量
+							const uniqueCount = result.uniqueCount
+							//错误数据量
+							const errorCount = result.errorCount
+							//重复数据量
+							const duplicateCount = result.duplicateCount
+							if(errorCount === 0 && duplicateCount === 0) {
+								var message = "保存成功!您总共上传了 " + metadataCount + " 条数据,保存成功 " + uniqueCount + " 条数据。";
+								//如果不存在错误数据、重复数据,则直接提示新增成功
+								parent.layer.msg(message, { icon: 0 });
+							}else{
+								var projectId = result.projectId
+								if(!projectId){
+									//对应的项目id不能为空
+									parent.layer.msg("未获取到对应报告信息,无法进行下载错误数据", { icon: 5 });
+								}else{
+									// 显示带确定和关闭按钮的弹窗
+									var message = "保存成功!您总共上传了 <span style='color:red'>" + metadataCount + "</span> 条数据。<br>";
+									message += "其中保存成功了 <span style='color:red'>" + uniqueCount + "</span> 条数据。<br>";
+
+									// 根据错误数据和重复数据拼接信息
+									if (errorCount > 0 && duplicateCount > 0) {
+										message += "有<span style='color:red'>" + errorCount + "</span>条错误数据,<br>";
+										message += "<span style='color:red'>" + duplicateCount + "</span>条重复数据。<br>";
+									} else if (errorCount > 0) {
+										message += "有<span style='color:red'>" + errorCount + "</span>条错误数据。<br>";
+									} else if (duplicateCount > 0) {
+										message += "有<span style='color:red'>" + duplicateCount + "</span>条重复数据。<br>";
+									}
+
+									message += "是否导出数据汇总?";
+
+									top.layer.confirm(
+											message,
+											{
+												title: "操作结果",
+												icon: 1,
+												btn: ['确定导出', '关闭']
+											},
+											function(confirmIndex) {
+												// 关闭确认弹窗
+												//top.layer.close(confirmIndex);
+												top.layer.close(index);
+												var $ = top.layui.jquery;
+												var layer = top.layui.layer;
+												var loading = layer.load(2);
+												// 关键:确保获取到正确的子页面弹窗索引(直接从顶层获取当前弹窗索引)
+												const currentLayerIndex = top.layer.index;
+												let isHandled = false;
+
+												// 准备参数
+												const projectId = result.projectId || '';
+												if (!projectId) {
+													layer.close(loading);
+													layer.msg("缺少projectId参数,无法导出", {icon: 5});
+													return;
+												}
+
+												// 创建表单和iframe
+												const form = $('<form>');
+												form.attr('action', "${ctx}/project/projectMaterialStorage/export");
+												form.attr('method', 'post');
+												form.attr('target', 'exportFrame');
+												form.append($('<input>').attr({
+													type: 'hidden',
+													name: 'projectId',
+													value: projectId
+												}));
+
+												var iframe = $('<iframe name="exportFrame" style="display:none;"></iframe>');
+												$('body', top.document).append(iframe);
+												$('body', top.document).append(form);
+
+												// 监听iframe加载
+												iframe.on('load', function() {
+													if (isHandled) return;
+													isHandled = true;
+
+													layer.close(loading);
+													try {
+														var content = $(this).contents().find('body').text().trim();
+														if (content && content.indexOf('导出失败') !== -1) {
+															layer.msg(content, {icon: 5});
+														} else {
+															layer.msg("文件导出成功", {icon: 1});
+															// 关闭子页面(使用顶层layer的close方法)
+															// 刷新父页面
+															//sortOrRefresh();
+														}
+													} catch (e) {
+														layer.msg("文件导出成功", {icon: 1});
+														//sortOrRefresh();
+													}
+
+													form.remove();
+													iframe.remove();
+												});
+
+												// 超时兜底逻辑
+												setTimeout(function() {
+													if (isHandled) return;
+													isHandled = true;
+
+													layer.close(loading);
+													try {
+														var content = iframe.contents().find('body').text().trim();
+														if (content && content.indexOf('导出失败') !== -1) {
+															layer.msg(content, {icon: 5});
+														} else {
+															layer.msg("文件导出成功", {icon: 1});
+															// 确保关闭子页面
+															//sortOrRefresh();
+														}
+													} catch (e) {
+														layer.msg("文件导出成功", {icon: 1});
+														//sortOrRefresh();
+													}
+
+													//form.remove();
+													//iframe.remove();
+												}, 100); // 延长超时时间到0.1秒,确保操作完成
+
+												// 提交表单
+												form.submit();
+											}
+											,
+											function(confirmIndex) {
+												top.layui.layer.close(confirmIndex);
+												setTimeout(() => {
+													top.layui.layer.close(index);
+												}, 100);
+												sortOrRefresh();
+											}
+									);
+								}
+							}
+
+
+						} else {
+							top.layer.msg(result.message || "操作失败", {icon: 5});
+						}
+					} catch (error) {
+						top.layer.msg("提交失败: " + error.message, {icon: 5});
+					}
+				},
+				cancel: function(index) {}
+			});
+		}
+
 	</script>
 </head>
 <body>

+ 0 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/reportForm.jsp

@@ -1611,7 +1611,6 @@
 			}
 		});
 		if(validateForm.form()){
-			var t1=new Date().getTime();
 			$($document.getElementById(inputForm)).ajaxSubmit({
 				success:function(data) {
 					var d = data;
@@ -1626,8 +1625,6 @@
 				}
 			});
 
-			var t2=new Date().getTime();
-			console.log(t2-t1);
 		}
 	}
 

+ 6 - 6
src/main/webapp/webpage/modules/sys/gridMaterialProject.jsp

@@ -88,15 +88,15 @@
 					<div class="project">
 						<div class="commonQuery">
 							<div class="layui-item query athird">
-								<span class="layui-form-label">项目名称:</span>
+								<span class="layui-form-label">报告号:</span>
 								<div class="layui-input-block">
-									<form:input path="${searchKey}" htmlEscape="false" maxlength="50" class=" form-control layui-input"/>
+									<form:input path="reportData.number" htmlEscape="false" maxlength="50" class=" form-control layui-input"/>
 								</div>
 							</div>
 							<div class="layui-item query athird">
-								<span class="layui-form-label">项目编号:</span>
+								<span class="layui-form-label">项目名称:</span>
 								<div class="layui-input-block">
-									<form:input path="projectId" htmlEscape="false" maxlength="50" class=" form-control layui-input"/>
+									<form:input path="${searchKey}" htmlEscape="false" maxlength="50" class=" form-control layui-input"/>
 								</div>
 							</div>
 							<div class="layui-item athird fr">
@@ -112,9 +112,9 @@
 						</div>
 						<div id="moresees" style="clear:both;display:none;">
 							<div class="layui-item query athird">
-								<span class="layui-form-label">报告号:</span>
+								<span class="layui-form-label">项目编号:</span>
 								<div class="layui-input-block">
-									<form:input path="reportData.number" htmlEscape="false" maxlength="50" class=" form-control layui-input"/>
+									<form:input path="projectId" htmlEscape="false" maxlength="50" class=" form-control layui-input"/>
 								</div>
 							</div>
 							<div style="clear:both;"></div>