Explorar o código

报销申请调整

user5 hai 1 ano
pai
achega
3074e12706

+ 5 - 3
src/main/java/com/jeeplus/modules/projectFilingBatch/web/ProjectFilingBatchController.java

@@ -242,9 +242,11 @@ public class ProjectFilingBatchController extends BaseController {
             projectFilingBatch = projectFilingBatchService.get(projectFilingBatch.getId());
             List<ProjectFilingBatch> projectFilingBatches = projectFilingBatchService.getProjectFilingBatchRelationList(projectFilingBatch.getId());
             for (ProjectFilingBatch filingBatch : projectFilingBatches) {
-                RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(filingBatch.getProjectId());
-                ruralProjectRecords.setProjectReportNumber(filingBatch.getNumber());
-                ruralProjectRecordsList.add(ruralProjectRecords);
+                if(null != filingBatch.getProjectId()){
+                    RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(filingBatch.getProjectId());
+                    ruralProjectRecords.setProjectReportNumber(filingBatch.getNumber());
+                    ruralProjectRecordsList.add(ruralProjectRecords);
+                }
             }
             //获取归档人
             projectFilingBatch.setCreateBy(UserUtils.get(projectFilingBatch.getCreateBy().getId()));

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

@@ -110,7 +110,7 @@ public class DailyOfficeWorkSignatureCallBackController extends BaseController {
 
             // 检查是否存在 / 和 .,以及 . 是否在 / 之后
             if (lastSlashIndex != -1 && lastDotIndex != -1 && lastSlashIndex < lastDotIndex) {
-                String result = input.substring(lastSlashIndex + 1, lastDotIndex);
+                String result = input.substring(lastSlashIndex + 1, input.length());
                 //添加文件名称
                 dailyOfficeWork.setSignatureFileName(result);
             }

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

@@ -1391,68 +1391,8 @@ public class WorkProjectNotifyController extends BaseController {
 						return "modules/workreimbursement/workReimbursementFormDetail";
 					}
 
-				}else if (workProjectNotify.getType().equals("102")) {    //新报销
-					WorkReimbursement workReimbursement = workReimbursementService.get(workProjectNotify.getNotifyId());
-					//判断报销类型状态并添加报销类型信息数据
-					if(StringUtils.isNotBlank(workReimbursement.getType())){
-						WorkReimbursementTypeInfo workReimbursementTypeInfo = workReimbursementTypeService.get(workReimbursement.getType());
-						workReimbursement.setWorkReimbursementTypeInfo(workReimbursementTypeInfo);
-						if(StringUtils.isNotBlank(workReimbursementTypeInfo.getStandardDetail())){
-							workReimbursement.setTypeName(workReimbursementTypeInfo.getStandardDetail());
-						}
-					}
-					workReimbursement.setAct(getByAct(workReimbursement.getProcessInstanceId()));
-					if(StringUtils.isNotBlank(workProjectNotify.getHome())){
-						workReimbursement.setHome(workProjectNotify.getHome());
-					}else{
-						workReimbursement.setHome("home");
-					}
-					model.addAttribute("workReimbursement", workReimbursement);
-					String param=UserUtils.getSysParam("check_subjects",UserUtils.getUser());
-					if("是".equals(param)){
-						model.addAttribute("isShow", '1');
-					}else{
-						model.addAttribute("isShow", '0');
-					}
-
-					switch (workReimbursement.getReimbursementType()){
-						case "0" :
-							workReimbursement.setReimbursementTypeStr("普通报销");
-							break;
-						case "1" :
-							workReimbursement.setReimbursementTypeStr("电子发票报销");
-							break;
-
-					}
-
-					if(null != workReimbursement.getReimbursementElectronicInvoiceVATTaxes() && workReimbursement.getReimbursementElectronicInvoiceVATTaxes().size()>0){
-						//获取专业类型
-						List<MainDictDetail> certificateMajor = DictUtils.getMainDictList("invoiceReimbursementType");
-						for (ReimbursementVATTax vatTax : workReimbursement.getReimbursementElectronicInvoiceVATTaxes()) {
-							for (MainDictDetail dictDetail : certificateMajor) {
-								if(dictDetail.getValue().equals(vatTax.getInvoiceType())){
-									vatTax.setInvoiceTypeStr(dictDetail.getLabel());
-								}
-							}
-						}
-					}
-
-					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
-						return "modules/workreimbursement/workReimbursementFormDetail";
-					}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
-						model.addAttribute("identification","workreimbursement");
-						model.addAttribute("identificationName","报销审核意见");
-						/*if (workReimbursement.getAct() != null && StringUtils.isNotBlank(workReimbursement.getAct().getTaskDefKey()) && "cw".equals(workReimbursement.getAct().getTaskDefKey())) {
-							return "modules/workreimbursement/new/workReimbursementCWNewAudit";
-						}*/
-						return "modules/workreimbursement/new/workReimbursementNewAudit";
-					} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
-						User user=UserUtils.getUser();
-						model.addAttribute("user", user);
-						return "modules/workreimbursement/new/workReimbursementNewModifyApply";
-					} else {
-						return "modules/workreimbursement/workReimbursementFormDetail";
-					}
+				}else if (workProjectNotify.getType().equals("102") || workProjectNotify.getType().equals("108") || workProjectNotify.getType().equals("109")) {    //新报销
+					return this.workReimbursementAudit(workProjectNotify,model);
 
 				}else if (workProjectNotify.getType().equals("106")) {    //电子发票报销
 
@@ -1657,7 +1597,7 @@ public class WorkProjectNotifyController extends BaseController {
 							dailyOfficeWork.setSignatureUrlFlag(1);
 							//处理文件路径
 							//如果文件路径中包含 /xg-qz 则表示文件存储在签章的对应文件库中需要单独进行处理
-							if(dailyOfficeWork.getSignatureUrl().contains("/xg-qz")){
+							/*if(dailyOfficeWork.getSignatureUrl().contains("/xg-qz")){
 								if(StringUtils.isNotBlank(dailyOfficeWork.getSignatureUrl())){
 									String signatureUrl = dailyOfficeWork.getSignatureUrl().replace("/xg-qz","");
 									dailyOfficeWork.setSignatureUrl(signatureUrl);
@@ -1665,7 +1605,7 @@ public class WorkProjectNotifyController extends BaseController {
 								dailyOfficeWork.setSignatureUrl(new OSSClientUtil().getQzFileTemporaryLookUrl(aliyunUrl + dailyOfficeWork.getSignatureUrl()));
 							}else{
 								dailyOfficeWork.setSignatureUrl(new OSSClientUtil().getFileTemporaryLookUrl(aliyunUrl + dailyOfficeWork.getSignatureUrl()));
-							}
+							}*/
 						}else{
 							dailyOfficeWork.setSignatureUrlFlag(0);
 						}
@@ -10015,5 +9955,69 @@ public class WorkProjectNotifyController extends BaseController {
 		}
 	}
 
+	private String workReimbursementAudit(WorkProjectNotify workProjectNotify,Model model) {
+		WorkReimbursement workReimbursement = workReimbursementService.get(workProjectNotify.getNotifyId());
+		//判断报销类型状态并添加报销类型信息数据
+		if(StringUtils.isNotBlank(workReimbursement.getType())){
+			WorkReimbursementTypeInfo workReimbursementTypeInfo = workReimbursementTypeService.get(workReimbursement.getType());
+			workReimbursement.setWorkReimbursementTypeInfo(workReimbursementTypeInfo);
+			if(StringUtils.isNotBlank(workReimbursementTypeInfo.getStandardDetail())){
+				workReimbursement.setTypeName(workReimbursementTypeInfo.getStandardDetail());
+			}
+		}
+		workReimbursement.setAct(getByAct(workReimbursement.getProcessInstanceId()));
+		if(StringUtils.isNotBlank(workProjectNotify.getHome())){
+			workReimbursement.setHome(workProjectNotify.getHome());
+		}else{
+			workReimbursement.setHome("home");
+		}
+		model.addAttribute("workReimbursement", workReimbursement);
+		String param=UserUtils.getSysParam("check_subjects",UserUtils.getUser());
+		if("是".equals(param)){
+			model.addAttribute("isShow", '1');
+		}else{
+			model.addAttribute("isShow", '0');
+		}
+
+		switch (workReimbursement.getReimbursementType()){
+			case "0" :
+				workReimbursement.setReimbursementTypeStr("普通报销");
+				break;
+			case "1" :
+				workReimbursement.setReimbursementTypeStr("电子发票报销");
+				break;
+
+		}
+
+		if(null != workReimbursement.getReimbursementElectronicInvoiceVATTaxes() && workReimbursement.getReimbursementElectronicInvoiceVATTaxes().size()>0){
+			//获取专业类型
+			List<MainDictDetail> certificateMajor = DictUtils.getMainDictList("invoiceReimbursementType");
+			for (ReimbursementVATTax vatTax : workReimbursement.getReimbursementElectronicInvoiceVATTaxes()) {
+				for (MainDictDetail dictDetail : certificateMajor) {
+					if(dictDetail.getValue().equals(vatTax.getInvoiceType())){
+						vatTax.setInvoiceTypeStr(dictDetail.getLabel());
+					}
+				}
+			}
+		}
+
+		if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
+			return "modules/workreimbursement/workReimbursementFormDetail";
+		}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
+			model.addAttribute("identification","workreimbursement");
+			model.addAttribute("identificationName","报销审核意见");
+						/*if (workReimbursement.getAct() != null && StringUtils.isNotBlank(workReimbursement.getAct().getTaskDefKey()) && "cw".equals(workReimbursement.getAct().getTaskDefKey())) {
+							return "modules/workreimbursement/new/workReimbursementCWNewAudit";
+						}*/
+			return "modules/workreimbursement/new/workReimbursementNewAudit";
+		} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
+			User user=UserUtils.getUser();
+			model.addAttribute("user", user);
+			return "modules/workreimbursement/new/workReimbursementNewModifyApply";
+		} else {
+			return "modules/workreimbursement/workReimbursementFormDetail";
+		}
+	}
+
 
 }

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1437 - 247
src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementNewService.java


+ 24 - 0
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementController.java

@@ -183,6 +183,8 @@ public class WorkReimbursementController extends BaseController {
 		typeList.add("102");
 		typeList.add("106");
 		typeList.add("107");
+		typeList.add("108");
+		typeList.add("109");
 		String types = org.apache.commons.lang3.StringUtils.join(typeList,',');
 		workProjectNotify.setTypes(types);
 		//添加发票对应编号
@@ -240,6 +242,28 @@ public class WorkReimbursementController extends BaseController {
 					}
 					break;
 				}
+				//报告归档资料缺失说明修改权限处理
+				if(notify.getNotifyId().equals(info.getId()) && "108".equals(notify.getType())){
+					info.setNotifyId(notify.getId());
+					if("重新申请".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+						info.setNotifyFlag(4);
+					}
+					if("待审批".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+						info.setNotifyFlag(3);
+					}
+					break;
+				}
+				//报告归档资料缺失说明修改权限处理
+				if(notify.getNotifyId().equals(info.getId()) && "109".equals(notify.getType())){
+					info.setNotifyId(notify.getId());
+					if("重新申请".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+						info.setNotifyFlag(4);
+					}
+					if("待审批".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+						info.setNotifyFlag(3);
+					}
+					break;
+				}
 			}
 		}
 		model.addAttribute("page", page);

+ 67 - 7
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementNewController.java

@@ -189,10 +189,49 @@ public class WorkReimbursementNewController extends BaseController {
 			workReimbursement.setCompanyId(UserUtils.getSelectCompany().getId());
 			workReimbursement.setCreateOffice(UserUtils.getSelectOffice().getId());
 			String str = "报销类型未选择";
-			if("0".equals(workReimbursement.getReimbursementType())){
-				str = workReimbursementNewService.save(workReimbursement, variables,processInstanceId);
-			}else if("1".equals(workReimbursement.getReimbursementType())){
-				str = workReimbursementNewService.electronicInvoiceReimbursementSave(workReimbursement, variables,processInstanceId);
+
+			LocalDate reimburseLocalDate = LocalDate.of(2024, 2, 21);
+
+			Date reimburseAuditDate = Date.from(reimburseLocalDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+
+			Date nowDate = new Date();
+
+			// 调用compareTo()方法进行比较
+			int reimburseResult = -1;
+			if(StringUtils.isNotBlank(workReimbursement.getId())){
+				reimburseResult = workReimbursement.getCreateDate().compareTo(reimburseAuditDate);
+			}else{
+				reimburseResult = nowDate.compareTo(reimburseAuditDate);
+			}
+
+			LocalDate localDate = LocalDate.of(2024, 1, 20);
+
+			Date auditDate = Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+			// 调用compareTo()方法进行比较
+			int result = nowDate.compareTo(auditDate);
+			//判定当前数据已经在数据库存在并且发起时间是在特定日期之后,并且部门是工程四部
+			User loginUser = UserUtils.getUser();
+			//如果当前登录人为工程四部,且当前时间在2024-01-20之前
+			if(StringUtils.isNotBlank(workReimbursement.getId()) && result > 0 && null != loginUser.getOffice() && "10de4a17d3484ba58135364bd53b88de".equals(loginUser.getOffice().getId())){
+				str = workReimbursementNewService.specificInvoiceReimbursementSave(workReimbursement, variables,processInstanceId);
+			}else{
+				if(result > 0 && null != loginUser.getOffice() && "10de4a17d3484ba58135364bd53b88de".equals(loginUser.getOffice().getId())){
+					str = workReimbursementNewService.specificInvoiceReimbursementSave(workReimbursement, variables,processInstanceId);
+				} else {
+					if("0".equals(workReimbursement.getReimbursementType())){
+						if(reimburseResult>0){
+							str = workReimbursementNewService.saveReimburseThree(workReimbursement, variables,processInstanceId);
+						}else{
+							str = workReimbursementNewService.save(workReimbursement, variables,processInstanceId);
+						}
+					}else if("1".equals(workReimbursement.getReimbursementType())){
+						if(reimburseResult>0){
+							str = workReimbursementNewService.electronicInvoiceReimbursementThreeSave(workReimbursement, variables,processInstanceId);
+						}else{
+							str = workReimbursementNewService.electronicInvoiceReimbursementSave(workReimbursement, variables,processInstanceId);
+						}
+					}
+				}
 			}
 			if (StringUtils.isNotBlank(str)){
 				addMessage(redirectAttributes, "报销申请提交失败:"+str);
@@ -221,6 +260,12 @@ public class WorkReimbursementNewController extends BaseController {
 			String taskDefKey = workReimbursement.getAct().getTaskDefKey();
 			List<User> users = null;
 
+			LocalDate reimburseLocalDate = LocalDate.of(2024, 2, 21);
+
+			Date reimburseAuditDate = Date.from(reimburseLocalDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+
+			// 调用compareTo()方法进行比较
+			int reimburseResult = workReimbursement.getCreateDate().compareTo(reimburseAuditDate);
 
 			LocalDate localDate = LocalDate.of(2024, 1, 20);
 
@@ -248,7 +293,11 @@ public class WorkReimbursementNewController extends BaseController {
 				if (users==null )
 					users = UserUtils.getByProssType(workReimbursement.getProcessInstanceId(),1);
 				if("0".equals(workReimbursement.getReimbursementType())){
-					users = UserUtils.getByRoleActivityEnname("zjbfzribvf",3,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
+					if(reimburseResult>0){
+						users = UserUtils.getByRoleActivityEnname("dzfpbxshybxsd",3,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
+					}else{
+						users = UserUtils.getByRoleActivityEnname("zjbfzribvf",3,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
+					}
 				}else if ("1".equals(workReimbursement.getReimbursementType())){
 					users = UserUtils.getByRoleActivityEnname("dzfpbxshybxsd",3,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
 				}
@@ -259,6 +308,9 @@ public class WorkReimbursementNewController extends BaseController {
 				//users = UserUtils.getByRoleActivityEnname("zjl",3,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
 			}else  if ("fpglys".equals(taskDefKey) || "dzfpbxshybxsd".equals(taskDefKey)){
 				users = UserUtils.getByProssType(workReimbursement.getProcessInstanceId(),3);
+				if(reimburseResult>0){
+					users = UserUtils.getByRoleActivityEnname("zjbfzribvf",3,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
+				}
 				if (users==null )
 					users = UserUtils.getByProssType(workReimbursement.getProcessInstanceId(),1);
 			}/*else  if ("zjl".equals(taskDefKey)){
@@ -289,9 +341,17 @@ public class WorkReimbursementNewController extends BaseController {
 						str = workReimbursementNewService.auditSpecificSave(workReimbursement,users);
 					} else {
 						if("0".equals(workReimbursement.getReimbursementType())){
-							str = workReimbursementNewService.auditSave(workReimbursement,users);
+							if(reimburseResult>0){
+								str = workReimbursementNewService.auditSaveThree(workReimbursement,users);
+							}else{
+								str = workReimbursementNewService.auditSave(workReimbursement,users);
+							}
 						}else if ("1".equals(workReimbursement.getReimbursementType())){
-							str = workReimbursementNewService.electronicInvoiceReimbursementAuditSave(workReimbursement,users);
+							if(reimburseResult>0){
+								str = workReimbursementNewService.electronicInvoiceReimbursementThreeAuditSave(workReimbursement,users);
+							}else{
+								str = workReimbursementNewService.electronicInvoiceReimbursementAuditSave(workReimbursement,users);
+							}
 						}
 					}
 				}

+ 4 - 0
src/main/resources/jeeplus.properties

@@ -324,6 +324,10 @@ reportedUrl = https://comp.jszj.com.cn:8031/api/addProject
 #approval_YC_category_id = 2933219658963918882
 ##报告用印流程id(盐城)
 #report_YC_category_id = 2933233335469383748
+##日常签章流程id
+#signature_daily_office_work = 3198093533650456821
+##报告签章流程id
+#signature_project_report_work = 3198093569524338954
 
 #192.168.2.6签章测试参数
 apptoken = uIJQmTwyGJ

+ 1 - 1
src/main/webapp/webpage/modules/workreimbursement/workReimbursementList.jsp

@@ -330,7 +330,7 @@
                         if(d.cancancel != undefined && d.cancancel == "1")
                             xml += "<a href=\"${ctx}/workreimbursement/workReimbursement/cancelInvalidate?id=" + d.id + "\" onclick=\"return confirmx('确认要强制撤回?', this.href)\"   class=\"layui-btn layui-btn-xs layui-bg-red\"> 撤回</a>";
                         if(d.canedit1 != undefined && d.canedit1 == "1")
-                            xml +="<a href=\"javascript:void(0)\" onclick=\"openDialogre('修改报销单', '${ctx}/workreimbursement/workReimbursement/form?id="+ d.id + "','95%','95%')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改</a>";
+                            xml +="<a href=\"javascript:void(0)\" onclick=\"openDialogre('修改报销单', '${ctx}/workReimbursementNew/workReimbursementNew/form?id="+ d.id + "','95%','95%')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改</a>";
                         if(d.canedit2 != undefined && d.canedit2 == "1")
                             //判断是什么流程(新旧流程)
                             if(d.notifyFlag != undefined && d.notifyFlag !=null && "" != d.notifyFlag && d.notifyFlag == 2){